diff --git a/cli/cloud/agent.mdx b/cli/cloud/agent.mdx index d07dd94c4..ac50b60a4 100644 --- a/cli/cloud/agent.mdx +++ b/cli/cloud/agent.mdx @@ -31,7 +31,7 @@ pipecat cloud agent start [ARGS] [OPTIONS] Public API key to authenticate the agent deployment. Will default to any key set in your config. -For more information, see [API keys](/deployment/pipecat-cloud/fundamentals/accounts-and-organizations#api-keys). +For more information, see [API keys](/pipecat-cloud/fundamentals/accounts-and-organizations#api-keys). @@ -39,7 +39,7 @@ For more information, see [API keys](/deployment/pipecat-cloud/fundamentals/acco Stringified JSON object to pass to the agent deployment. This data will be available to the agent as a `data` parameter in your `bot()` method. -More information [here](/deployment/pipecat-cloud/fundamentals/active-sessions#running-an-agent). +More information [here](/pipecat-cloud/fundamentals/active-sessions#running-an-agent). diff --git a/cli/cloud/auth.mdx b/cli/cloud/auth.mdx index 3a4d3d160..d5df0f693 100644 --- a/cli/cloud/auth.mdx +++ b/cli/cloud/auth.mdx @@ -47,7 +47,7 @@ pipecat cloud auth logout ## use-pat -Authenticates with a [Personal Access Token](/deployment/pipecat-cloud/guides/personal-access-tokens) instead of interactive OAuth login. Validates the token against the API and stores it in your local config file. +Authenticates with a [Personal Access Token](/pipecat-cloud/guides/personal-access-tokens) instead of interactive OAuth login. Validates the token against the API and stores it in your local config file. **Usage:** @@ -63,7 +63,7 @@ pipecat cloud auth use-pat You can also set the `PIPECAT_TOKEN` environment variable instead of storing - the token locally. See the [PAT guide](/deployment/pipecat-cloud/guides/personal-access-tokens) + the token locally. See the [PAT guide](/pipecat-cloud/guides/personal-access-tokens) for details. @@ -111,7 +111,7 @@ pipecat cloud --show-cli-config Managing your account and collaborating on agents as part of a team diff --git a/cli/cloud/deploy.mdx b/cli/cloud/deploy.mdx index 4492f25c4..e741d2b37 100644 --- a/cli/cloud/deploy.mdx +++ b/cli/cloud/deploy.mdx @@ -5,11 +5,11 @@ description: "Create or modify an agent deployment" The `deploy` command creates a new agent deployment or updates an existing one. It builds a deployment manifest with the provided parameters and monitors the deployment status until the agent is ready. -When no image is specified, the CLI will offer to build your agent using [Pipecat Cloud Build](/deployment/pipecat-cloud/guides/cloud-builds). This handles building and deploying without requiring you to manage a container registry. A `Dockerfile` must be present in your build context directory. +When no image is specified, the CLI will offer to build your agent using [Pipecat Cloud Build](/pipecat-cloud/guides/cloud-builds). This handles building and deploying without requiring you to manage a container registry. A `Dockerfile` must be present in your build context directory. If the agent name already exists, you'll be prompted to confirm the update unless the `--force` flag is used. -This command will wait for the active deployment / revision to enter a ready state before returning. If the deployment fails, the command will exit with an [error](/deployment/pipecat-cloud/fundamentals/error-codes) with more information. +This command will wait for the active deployment / revision to enter a ready state before returning. If the deployment fails, the command will exit with an [error](/pipecat-cloud/fundamentals/error-codes) with more information. ## Usage @@ -26,7 +26,7 @@ pipecat cloud deploy [ARGS] [OPTIONS] URL of the Docker image to deploy. Must be a valid Docker image URL. For example: `docker.io/my-repo/my-image:latest`. Not required when using [cloud - builds](/deployment/pipecat-cloud/guides/cloud-builds) or `--build-id`. + builds](/pipecat-cloud/guides/cloud-builds) or `--build-id`. **Options:** @@ -80,7 +80,7 @@ In addition to this flag, you also need to enable the `KrispVivaFilter()` for yo The agent profile to use for resource allocation. Valid values are: `agent-1x`, `agent-2x`, `agent-3x`. -See [Agent Profiles](/deployment/pipecat-cloud/fundamentals/deploy#agent-profiles) for more information. +See [Agent Profiles](/pipecat-cloud/fundamentals/deploy#agent-profiles) for more information. diff --git a/cli/cloud/organizations.mdx b/cli/cloud/organizations.mdx index ec865fb6b..b29a1aec6 100644 --- a/cli/cloud/organizations.mdx +++ b/cli/cloud/organizations.mdx @@ -232,7 +232,7 @@ pipecat cloud organizations default-region eu-central Managing your account and collaborating on agents as part of a team diff --git a/cli/cloud/secrets.mdx b/cli/cloud/secrets.mdx index 916b25222..10a4c1817 100644 --- a/cli/cloud/secrets.mdx +++ b/cli/cloud/secrets.mdx @@ -59,7 +59,7 @@ pipecat cloud secrets set [ARGS] [OPTIONS] List of secret key-value pairs e.g. `KEY1=value1 KEY2="value with spaces"`. -See [this note](/deployment/pipecat-cloud/fundamentals/secrets#special-characters) on using special +See [this note](/pipecat-cloud/fundamentals/secrets#special-characters) on using special characters in secret values. Example: @@ -238,7 +238,7 @@ pipecat cloud secrets image-pull-secret my-registry-creds https://index.docker.i Learn more about managing application secrets diff --git a/client/android/introduction.mdx b/client/android/introduction.mdx index a55dece59..9a2e76df8 100644 --- a/client/android/introduction.mdx +++ b/client/android/introduction.mdx @@ -48,15 +48,14 @@ client.startBotAndConnect(startBotParams).withCallback { ## Documentation + + SDK API documentation + - Complete SDK API documentation - - - - WebRTC implementation using Daily + Daily, Gemini, OpenAI WebRTC, and SmallWebRTC transports diff --git a/client/android/migration-guide.mdx b/client/android/migration-guide.mdx deleted file mode 100644 index ccadcb7d4..000000000 --- a/client/android/migration-guide.mdx +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: "RTVIClient Migration Guide for Android" -sidebarTitle: "Migration Guide" -description: "A Guide to migrating from RTVIClient to PipecatClient for Android" ---- - -This guide covers migrating from the `RTVIClient` to the new `PipecatClient` in an Android application. The new client introduces simplified configuration, modern messaging patterns, and improved function call handling. For an overview of the changes, see the top-level [RTVIClient Migration Guide](/client/migration-guide). - -## Key Changes - -### 1. Package and Class Names - -**Old** - -```kotlin -import ai.pipecat.client.RTVIClient -import ai.pipecat.client.RTVIClientOptions -import ai.pipecat.client.RTVIClientParams -import ai.pipecat.client.RTVIEventCallbacks -``` - -**New** - -```kotlin -import ai.pipecat.client.PipecatClient -import ai.pipecat.client.PipecatClientOptions -// RTVIClientParams has been removed -import ai.pipecat.client.PipecatEventCallbacks - -// Type alias for a Pipecat client using the Daily transport -import ai.pipecat.client.daily.PipecatClientDaily -``` - -### 2. Client and Transport Configuration - -Previously, the `RTVIClient` constructor accepted a transport factory parameter, whereas in v1.0.0 the transport is passed in directly. - -Parameters such as the connection URL are no longer passed in at construction time. These should be given to `startBot()`, `startBotAndConnect()`, or `connect()`. - -**Old** - -```kotlin -val options = RTVIClientOptions( - params = RTVIClientParams( - baseUrl = baseUrl, - endpoints = RTVIURLEndpoints(), - ) -) - -val client = RTVIClient(DailyTransport.Factory(context), callbacks, options) -``` - -**New** - -```kotlin -val options = PipecatClientOptions(callbacks = callbacks) -val client = PipecatClient(DailyTransport(context), options) -``` - -### 3. Connection - -Previously, the `connect()` method did a POST request to your bot's HTTP endpoint, which returned the connection details (such as room URL and token), before making the actual connection. - -This functionality has been split out into `startBot()`, which provides more flexibility in how the request is performed. - -A helper method `startBotAndConnect()` unifies the two steps and is the equivalent of the original `connect()` method. You can call `connect()` directly if you wish to skip the POST step. - -**Old** - -```kotlin -// Uses parameters passed into the constructor -client.connect().await() -``` - -**New** - -```kotlin -// Parameters now passed in at connection time -client.startBotAndConnect( - APIRequest( - endpoint = url, - requestData = Value.Object() - ) -).await() -``` - -### 4. Function Call Handling - -Helpers like `LLMHelper` have been removed. You now register function call handlers directly on the `PipecatClient`. - -```kotlin -client.registerFunctionCallHandler("get_my_current_location") { data, onResult -> - thread { - val location = getCurrentLocation(data.args) - onResult(location) - } -} -``` - -### 5. Pipeline Configuration Initialization - -Previously, you could provide a pipeline configuration as part of the `RTVIClient` constructor, and it was expected to be in a specific format. Now, if you would like to pass any initial pipeline configurations, you do so as `requestData` added to the endpoint you provide to `startBot()` or `startBotAndConnect()`. In both cases, you would need server-side code to parse and apply these settings, but now you can define the structure and what pieces of configuration you want to send. - -Check out [this section of docs](../js/api-reference/messages#connection-time-configuration) for an example, complete with server-side code showing how to initialize the pipeline configuration at connection time. - -### 6. LLM Context Updates - -Previously, context updates were done via helpers. Now, use `appendToContext()`: - -```kotlin -client.appendToContext( - message = LLMContextMessage( - role = LLMContextMessage.Role.User, - content = "Tell me a joke.", - runImmediately = true - ) -) -``` - -### 7. Pipeline Configuration Updates - -Previously, the client supported updating the pipeline configuration using a specific method that took a configuration object in a generic format. Dynamic and predefined configuration updates, however, are a security concern, allowing clients to override settings and potentially abuse API keys. For this reason, it has been removed and most configuration updates need to be handled custom by your application. To do so, you should take advantage of the client-server messaging system, which allows you to send messages to the server and handle responses. This way, you can implement your own logic for updating configurations securely. - -New messaging types replace old action/config helpers: - -```kotlin -client.sendClientMessage(msgType = "set-voice", data = Value.Str("Janice")).await() - -val llmVendor = client.sendClientRequest(msgType = "get-llm-vendor").await().data?.content -Log.i("Example", "LLM Vendor: $llmVendor") -``` - -Check out [this section of docs](../js/api-reference/messages#sending-custom-messages-to-the-server) for a more complete example, along with an example on making a request (`sendClientRequest()`) to wait for a response. - -### 8. Disconnecting - -```kotlin -client.unregisterFunctionCallHandler() -client.disconnect().await() -``` - -## Breaking Changes - -1. **Constructor Params Removed**: No pipeline or endpoint config in constructor. -2. **Helpers Removed**: RTVIClientHelper, LLMHelper are gone. -3. **Configs Removed**: All configuration-related methods, events, and types have been removed: `getConfig()`, `updateConfig()`, `describeConfig()`, `onConfigUpdated`, `onConfigDescribed`, etc. -4. **Actions Removed**: All actions-related methods, events, and types have been removed: `action()`, `describeActions()`, `onActionsAvailable`, etc. -5. **New Messaging Methods**: - - `appendToContext()` - - `sendClientRequest()` - - `sendClientMessage()` - - `disconnectBot()` - - `registerFunctionCallHandler()` / `unregisterFunctionCallHandler()` / `unregisterAllFunctionCallHandlers()` diff --git a/client/c++/api-reference.mdx b/client/c++/api-reference.mdx deleted file mode 100644 index f9c92fa9a..000000000 --- a/client/c++/api-reference.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "API Reference" -url: "https://github.com/pipecat-ai/pipecat-client-cxx" ---- diff --git a/client/ios/introduction.mdx b/client/ios/introduction.mdx index a0d50bb1d..2f7f71960 100644 --- a/client/ios/introduction.mdx +++ b/client/ios/introduction.mdx @@ -62,28 +62,28 @@ self.pipecatClientIOS?.startBotAndConnect(startBotParams: startBotParams) { (res ## Documentation - - Complete SDK API documentation + + SDK API documentation + + + Daily, Gemini, OpenAI WebRTC, and SmallWebRTC transports - Pipecat Client iOS + Pipecat Client iOS on GitHub - - Simple Chatbot Demo - - WebRTC implementation using Daily - diff --git a/client/ios/migration-guide.mdx b/client/ios/migration-guide.mdx deleted file mode 100644 index ad12a1b42..000000000 --- a/client/ios/migration-guide.mdx +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: "RTVIClient Migration Guide for IOS" -sidebarTitle: "Migration Guide" -description: "A Guide to migrating from RTVIClient to PipecatClient for iOS" ---- - -This guide covers migrating from the `RTVIClient` to the new `PipecatClient` in an iOS (Swift) application. The new client introduces simplified configuration, modern messaging patterns, and improved function call handling. For an overview of the changes, see the top-level [RTVIClient Migration Guide](/client/migration-guide). - -## Key Changes - -### 1. Package and Class Names - -**Old** - -```swift -import RTVIClient -import RTVIClientIOSDaily -``` - -**New** - -```swift -import PipecatClientIOS -import PipecatClientIOSDaily -``` - -### 2. Client and Transport Configuration - -Previously, the client constructor accepted parameters like pipeline or endpoint configuration. Now, the configuration is passed explicitly to the `startBotAndConnect()` or `connect()` methods, and the constructor takes only transport options. - -**Old** - -```swift -let client = RTVIClient(params: ...) -``` - -**New** - -```swift -let pipecatClientOptions = PipecatClientOptions( - transport: DailyTransport(), - enableMic: true, - enableCam: false -) - -let client = PipecatClient(options: pipecatClientOptions) -``` - -### 3. Connection Method - -The connection process is now explicit and supports modern async handling. - -**Old** - -```swift -client.connect() -``` - -**New** - -```swift -let startBotParams = APIRequest(endpoint: URL(string: "https://your-server/connect")!) -client.startBotAndConnect(startBotParams: startBotParams) { result in - switch result { - case .success(let connectionParams): - print("Connected successfully: \(connectionParams)") - case .failure(let error): - print("Connection failed: \(error)") - } -} -``` - -### 4. Function Call Handling - -Helpers like `LLMHelper` have been removed. You now register function call handlers directly on the `PipecatClient`. - -**Old** - -```swift -let llmHelper = LLMHelper() -client.registerHelper("llm", llmHelper) -llmHelper?.delegate = self - -extension CallContainerModel: LLMHelperDelegate { - enum ToolsFunctions: String { - case getMyCurrentLocation = "get_my_current_location" - case setRestaurantLocation = "set_restaurant_location" - } - func onLLMFunctionCall(functionCallData: LLMFunctionCallData, onResult: ((Value) async -> Void)) async { - var result = Value.object([:]) - if let selectedFunction = ToolsFunctions(rawValue: functionCallData.functionName) { - // Use a switch to handle the different enum cases - switch selectedFunction { - case .getMyCurrentLocation: - result = await self.getCurrentLocation() - case .setRestaurantLocation: - self.handleRestaurantLocation(restaurantInfo: functionCallData.args) - result = .string("success") - } - } else { - print("Invalid function received \(functionCallData.functionName)") - } - await onResult(result) - } -} - -``` - -**New** - -```swift -client.registerFunctionCallHandler(functionName: "get_my_current_location") { functionCallData, onResult in - let location = await getCurrentLocation() - await onResult(location) -} - -client.registerFunctionCallHandler(functionName: "set_restaurant_location") { functionCallData, onResult in - handleRestaurantLocation(functionCallData.args) - await onResult(.string("success")) -} -``` - -### 5. Pipeline Configuration Initialization - -Previously, you could provide a pipeline configuration as part of the `RTVIClient` constructor and it was expected to be in a specific format. Now, if you would like to pass any initial pipeline configurations, you do so as `requestData` added to the endpoint you provide to `startBot()` or `startBotAndConnect()`. In both cases, you would need server-side code to parse and apply these settings, but now you can define the structure and what pieces of configuration you want to send. - -Check out [this section of docs](../js/api-reference/messages#connection-time-configuration) for an example, complete with server-side code showing how to initialize the pipeline configuration at connection time. - -### 6. LLM Context Updates - -Previously, context updates were done via helpers. Now, use `appendToContext()`: - -```swift -client.appendToContext( - role: "user", - content: "Tell me a joke.", - run_immediately: true -) -``` - -### 7. Pipeline Configuration Updates - -Previously, the client supported updating the pipeline configuration using a specific method that took a configuration object in a generic format. Dynamic and predefined configuration updates, however, are a security concern, allowing clients to override settings and potentially abuse API keys. For this reason, it has been removed and most configuration updates need to be handled custom by your application. To do so, you should take advantage of the client-server messaging system, which allows you to send messages to the server and handle responses. This way, you can implement your own logic for updating configurations securely. - -New messaging types replace old action/config helpers: - -```swift -try client.sendClientMessage(msgType: "set-voice", data: .string("Janice")) - -let llmVendor = try await client.sendClientRequest(msgType: "get-llm-vendor").d?.asString -print("LLM Vendor: \(llmVendor ?? "")") -``` - -Check out [this section of docs](../js/api-reference/messages#sending-custom-messages-to-the-server) for a more complete example, along with an example on making a request (`sendClientRequest()`) to wait for a response. - -### 8. Disconnecting - -```swift -client.unregisterAllFunctionCallHandlers() -client.disconnect(completion: nil) -``` - -## Breaking Changes - -1. **Constructor Params Removed**: No pipeline or endpoint config in constructor. -2. **Helpers Removed**: RTVIClientHelper, LLMHelper are gone. -3. **Configs Removed**: All configuration-related methods, events, and types have been removed: `getConfig()`, `updateConfig()`, `describeConfig()`, `onConfigUpdated`, `onConfigDescribed`, etc. -4. **Actions Removed**: All actions-related methods, events, and types have been removed: `action()`, `describeActions()`, `onActionsAvailable`, etc. -5. **New Messaging Methods**: - - `appendToContext()` - - `sendClientRequest()` - - `sendClientMessage()` - - `disconnectBot()` - - `registerFunctionCallHandler()` / `unregisterFunctionCallHandler()` / `unregisterAllFunctionCallHandlers()` - -## Migration Steps - -1. Update imports to `PipecatClientIOS` and `PipecatClientIOSDaily`. -2. Move connection configuration from constructor to `startBotAndConnect()` or `connect()` methods. -3. Replace helper-based function calls with `registerFunctionCallHandler()`. -4. Replace context updates with `appendToContext()`. -5. Replace all action and config related methods, events, and types with `sendClientMessage()` or `sendClientRequest()` for custom messages. -6. Ensure proper disconnection via `unregisterAllFunctionCallHandlers()` and `disconnect()`. - ---- - -For detailed examples, see [Travel Companion iOS Example](https://github.com/pipecat-ai/pipecat-examples/blob/main/travel-companion/client/ios/TravelCompanion/model/CallContainerModel.swift). diff --git a/client/js/api-reference/callbacks.mdx b/client/js/api-reference/callbacks.mdx index 632f0c1b0..fa2c17a31 100644 --- a/client/js/api-reference/callbacks.mdx +++ b/client/js/api-reference/callbacks.mdx @@ -218,7 +218,7 @@ pcClient.on(RTVIEvent.BotReady, () => console.log("Bot ready via event")); The server has started ignoring audio from the client (server-side muting). The client should continue sending audio normally but may want to show an indication to the user that their input is not being processed. See [User - Input Muting](/guides/fundamentals/user-input-muting) for more details. + Input Muting](/pipecat/fundamentals/user-input-muting) for more details. @@ -417,7 +417,7 @@ Callback receives a `TranscriptData` object: Pipeline mterics data provided by Pipecat. [Learn - more](/guides/fundamentals/metrics). + more](/pipecat/fundamentals/metrics). ## Events diff --git a/client/js/introduction.mdx b/client/js/introduction.mdx index 9c4a0c91e..271f1f376 100644 --- a/client/js/introduction.mdx +++ b/client/js/introduction.mdx @@ -70,8 +70,19 @@ pcClient.connect({ > Core methods for interacting with your bot - - Detailed documentation of all available APIs + + Handle bot events, messages, and state changes + + + Daily, SmallWebRTC, WebSocket, and other transports diff --git a/client/js/migration-guide.mdx b/client/js/migration-guide.mdx deleted file mode 100644 index f096743d1..000000000 --- a/client/js/migration-guide.mdx +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: "RTVIClient Migration Guide for JavaScript" -sidebarTitle: "Migration Guide" -description: "A Guide to migrating from a JavaScript RTVIClient to PipecatClient" ---- - -This guide covers migrating from RTVIClient to the new `PipecatClient` in a JavaScript application. The new client introduces simplified configuration and improved client-server messaging. For an overview of the changes, see the top-level [RTVIClient Migration Guide](/client/migration-guide). - -## Key Changes - -### 1. Package and Class Names - -**Old** - -```javascript -import { RTVIClient } from "@pipecat-ai/client-js"; -``` - -**New** - -```javascript -// New -import { PipecatClient } from "@pipecat-ai/client-js"; -``` - -### 2. Client and Transport Configuration - -The core difference here is that the client no longer accepts a `params` field. The configuration that used to be provided here is no longer supported and hitting a `/connect` endpoint is now an explicit step and provided directly to either the `startBot()` or `startBotAndConnect()` method. - -**Old** - -```javascript -const transport = new DailyTransport(); -const client = new RTVIClient({ - transport, - params: { - baseUrl: "http://localhost:7860", - endpoints: { - connect: "/connect", - }, - }, -}); -``` - -**New** - -```javascript -const client = new PipecatClient({ - transport: new DailyTransport(), - // Connection params moved to startBotAndConnect() call -}); -``` - -### 3. Connection Method - -Previously, `connect()` was called on the client instance without parameters. Now, you provide connection parameters directly to the `connect()` method. This allows for more flexibility and customization of the connection process. For ease of use, we've also introduced a `startBot()` and `startBotAndConnect()` method where you can provide an API endpoint that returns the connection parameters. - -**Old** - -```javascript -await client.connect(); -``` - -**New** - -There are three options for connecting now. For migration purposes, you are likely to use option 3 (`startBotAndConnect()`): - -1. **Direct Connection**: Provide the connection details directly to `connect()`. - -```javascript -const cxnDetails = { - url: "https://your-daily-room-url", - token: "your-daily-token", -}; -await client.connect(cxnDetails); -``` - -2. **Using startBot()**: Fetch connection details from an API endpoint and pass them to `connect()`. - -```javascript -let cxnDetails = await client.startBot({ - endpoint: "http://localhost:7860/connect", - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: "openai", - initial_prompt: "You are a pirate captain", - // Any additional data - }, -}); -cxnDetails = modifyCxnDetails(cxnDetails); // Modify if needed -await client.connect(cxnDetails); -``` - -3. **Using startBotAndConnect()**: Fetch connection details and connect in one step. - -```javascript -await client.startBotAndConnect({ - endpoint: "http://localhost:7860/connect", - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: "openai", - initial_prompt: "You are a pirate captain", - // Any additional data - }, -}); -``` - -### 4. Function Call Handling - -Previously, you would use a helper class to handle function calls and provide a single callback to handle any/all function calls. Now, you can register a callback for each function call by name directly on the `PipecatClient` instance. - -**Old** - -```javascript -let llmHelper = new LLMHelper({}); -llmHelper.handleFunctionCall(async (data) => { - return await this.handleFunctionCall(data.functionName, data.arguments); -}); -client.registerHelper("openai", llmHelper); -``` - -**New** - -```javascript -client.registerFunctionCallHandler("functionName", async (data) => { - // Handle function call - return result; -}); -``` - -### 5. Pipeline Configuration Initialization - -Previously, you could provide a pipeline configuration as part of the `RTVIClient` constructor and it was expected to be in a specific format. Now, if you would like to pass any initial pipeline configurations, you do so as `requestData` added to the endpoint you provide to `connect()`. In both cases, you would need server-side code to parse and apply these settings, but now you can define the structure and what pieces of configuration you want to send. - -**Old** - -```javascript -const pipelineConfig = [{ - "service": "llm", - "options": [ - { - "name": "initial_messages", - "value": [ - { - "role": "system", - "content": `You are a pirate captain.` - } - ] - }, - ], -}, -{ - "service": "tts", - "options": [ - { - "name": "language", - "value": "en-US" - } - ] -}]; - -const rtviClient = new RTVIClient({ - ... - params: { - ... - config: pipelineConfig - }, -}); -rtviClient.connect(); -``` - -**New** - -Check out [this section of docs](./api-reference/messages#connection-time-configuration) for an example, complete with server-side code showing how to initialize the pipeline configuration at connection time. - -```javascript -try { - pcClient.startBotAndConnect({ - endpoint: "https://your-server/connect", - requestData: { - initial_prompt: "You are a pirate captain", - preferred_language: "en-US", - }, - }); -} catch (error) { - console.error("Error connecting to server:", error); -} -``` - -### 6. Pipeline Configuration Updates - -Previously, the client supported updating the pipeline configuration using a specific method that took a configuration object in a generic format. Dynamic and predifined configuration updates, however, are a security concern, allowing clients to override settings and potentially abuse API keys. For this reason, it has been removed and most configuration updates need to be handled custom by your application. To do so, you should take advantage of the client-server messaging system, which allows you to send messages to the server and handle responses. This way, you can implement your own logic for updating configurations securely. - -**Old** - -```javascript -const updatedConfig = [{ - "service": "tts", - "options": [ - { - "name": "voice", - "value": "Janice" - } - ] -}]; -try { - await rtviClient.updateConfig( - updatedConfig as RTVIClientConfigOption[], - true - ); -} catch (e) { - console.error("Failed to update config", e); -} -``` - -**New** - -Check out [this section of docs](./api-reference/messages#sending-custom-messages-to-the-server) for a more complete example, along with an example on making a request (`sendClientRequest()`) to wait for a response. - -```javascript -try { - pcClient.sendClientMessage("set-voice", { voice: "Janice" }); -} catch (error) { - console.error("Error sending message to server:", error); -} -``` - -### 7. LLM Context Updates - -Previously, you would use a helper class to update the context. This could be a security concern for the same reasons as mentioned above and should now be done using the [client-server messaging system](./api-reference/messages). However, in the case where you simply wish to add to the user's context, you can use the [`sendText()`](./api-reference/client-methods#sendtext) method on the `PipecatClient` instance. This allows for easy, built-in support for text-based context updates without needing to implement custom messaging. - -**Old** - -```javascript -let llmHelper = new LLMHelper({}); -client.registerHelper("llm", llmHelper); -await llmHelper.setContext( - { - messages: [ - { - role: "user", - content: "Tell me a joke.", - }, - ], - }, - true, -); -``` - -**New** - -```javascript -client.sendText("Tell me a joke."); -``` - -## Breaking Changes - -1. **Configuration Structure**: Connection parameters are now passed to connect() instead of constructor -2. **Helper System**: Removed in favor of direct `PipecatClient` member functions or client-server messaging. - -## Migration Steps - -1. Update package imports to use new names -2. Move connection configuration from constructor to startBot()/startBotAndConnect()/connect() methods -3. Replace any helper classes with corresponding `PipecatClient` methods or custom messaging -4. Update any TypeScript types referencing old names diff --git a/client/migration-guide.mdx b/client/migration-guide.mdx deleted file mode 100644 index 2df2ca651..000000000 --- a/client/migration-guide.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "RTVIClient Migration Guide" -description: "A Guide to migrating from RTVIClient to PipecatClient" ---- - -This guide will cover the high-level changes between the old `RTVIClient` and the new `PipecatClient`. For specific code updates, refer to the platform-specific migration guides. - -## Key changes - -- **Client Name**: The class name has changed from `RTVIClient` to `PipecatClient`. -- **Pipeline Connection**: Previously, the client expected a REST endpoint for gathering connection information as part of the constructor and was difficult to update or bypass. The new client expects connection information to be provided directly as part of the `connect()` method. For convenience in typical setups where the connection information is obtained from an API endpoint that also launches the server-side bot, we've introduced `startBot()` for hitting the endpoint and returning the response as well as `startBotAndConnect()` which does both the fetching and connecting and assumes the response contains the necessary connection details. -- **Actions and helpers**: These have gone away in favor of some built-in methods for doing common actions like function call handling and appending to the llm context or in the case of custom actions, a simple set of methods for sending messages to the bot and handling responses. See `registerFunctionCallHandler()`, `sendText()`, `sendClientMessage()`, and `sendClientRequest()` for more details. -- **Bot Configuration**: This functionality as been removed as a security measure, so that a client cannot inherently have the ability to override a bot configuration and use credentials to its own whims. If you need the client to initialize or update the bot configuration, you will need to do so through an API call to your backend or building on top of the client-server messaging, which has now been made easier. - -## Migration guides - - - - Migrate your JavaScript client code to the new `PipecatClient` - - - Update your React components to use the new `PipecatClient` - - - Update your iOS components to use the new `PipecatClient` - - - Migrate your Android client code to the new `PipecatClient` - - - Update your React Native components to use the new `PipecatClient` - - diff --git a/client/react-native/introduction.mdx b/client/react-native/introduction.mdx index bcc32d6d0..362ace508 100644 --- a/client/react-native/introduction.mdx +++ b/client/react-native/introduction.mdx @@ -90,22 +90,33 @@ The Pipecat React Native SDK leverages the Pipecat JavaScript SDK for seamless i > Just ensure you use the appropriate transport layer for React Native. - + + React Native-specific API documentation + + + Daily and SmallWebRTC transports for React Native + + Configure your client instance with transport and callbacks Core methods for interacting with your bot - - Detailed documentation of all available APIs - diff --git a/client/react-native/migration-guide.mdx b/client/react-native/migration-guide.mdx deleted file mode 100644 index 8f6963825..000000000 --- a/client/react-native/migration-guide.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "RTVIClient Migration Guide for React Native" -sidebarTitle: "Migration Guide" -description: "A Guide to migrating from a React Native RTVIClient to PipecatClient" ---- - -This guide covers migrating from RTVIClient to the new `PipecatClient` in a React Native application. The new client introduces simplified configuration and improved client-server messaging. For an overview of the changes, see the top-level [RTVIClient Migration Guide](/client/migration-guide). - -## Key Changes - - - As primarily a wrapper around the JavaScript SDK with a unique Transport, the - changes are the same as those in the [JavaScript migration - guide](/client/js/migration-guide) with only the following transport-specific - updates. PLEASE REFER TO THE JAVASCRIPT MIGRATION GUIDE FOR FULL DETAILS. - - -### 1. Transport Configuration - -Same as with the JavaScript transports, the `RNDailyTransport` now accepts a constructor argument, allowing for providing a [Daily configuration](https://docs.daily.co/reference/rn-daily-js/daily-call-client/properties). - -**Old** - -```javascript -const client = new RTVIClient({ - transport: new RNDailyTransport(), - ... -}); -``` - -**New** - -```javascript -const client = new PipecatClient({ - transport: new RNDailyTransport({ - userName: "Tina", - reactNativeConfig: { disableAutoDeviceManagement: { audio: true } }, - }), -}); -``` - -### 2. Connection Methods - -Again, same as with the JavaScript transport, you can provide a [Daily configuration](https://docs.daily.co/reference/rn-daily-js/daily-call-client/properties) via one of the connection methods (`connect()` or `startBotAndConnect()`) on the `PipecatClient`. - -**Old** - -```javascript -await client.connect(); -``` - -**New** - -There are three options for connecting now. For migration purposes, you are likely to use option 3 (`startBotAndConnect()`): - -1. **Direct Connection**: Provide the connection details directly to `connect()`. - -```javascript -const cxnDetails = { - url: "https://your-daily-room-url", - token: "your-daily-token", - userData: { favoriteFlower: "black-eyed susan" }, -}; -await client.connect(cxnDetails); -``` - -2. **Using startBot()**: Fetch connection details from an API endpoint and pass them to `connect()`. - -```javascript -let cxnDetails = await client.startBot({ - endpoint: "http://localhost:7860/connect", - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: "openai", - initial_prompt: "You are a pirate captain", - // Any additional data - }, -}); -cxnDetails = modifyCxnDetails(cxnDetails); // Modify if needed -await client.connect(cxnDetails); -``` - -3. **Using startBotAndConnect()**: Fetch connection details and connect in one step. - - - When using `startBotAndConnect()`, the response from your endpoint is passed directly to the transport and should match the Daily configuration type. - -```javascript -await client.startBotAndConnect({ - endpoint: 'http://localhost:7860/connect', - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: 'openai', - initial_prompt: "You are a pirate captain", - // Any additional data - } -}); -``` diff --git a/client/react/migration-guide.mdx b/client/react/migration-guide.mdx deleted file mode 100644 index 63d658e8a..000000000 --- a/client/react/migration-guide.mdx +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: "RTVIClient Migration Guide for React" -sidebarTitle: "Migration Guide" -description: "A Guide to migrating from an RTVIClient to PipecatClient in React" ---- - -This guide covers migrating from RTVIClient to the new `PipecatClient` in a React application. The new client introduces simplified configuration and improved client-server messaging. For an overview of the changes, see the top-level [RTVIClient Migration Guide](/client/migration-guide). - -## Key Changes - -### 1. Package and Class Names - -**Old** - -```javascript -import { RTVIClient } from "@pipecat-ai/client-js"; -``` - -**New** - -```javascript -import { PipecatClient } from "@pipecat-ai/client-js"; -``` - -### 2. React Components and Hooks - -**Old** - -```javascript -import { - RTVIClientProvider, - RTVIClientAudio, - RTVIClientVideo, - useRTVIClient, - useRTVIClientTransportState, -} from "@pipecat-ai/client-react"; -``` - -**New** - -```javascript -import { - PipecatClientProvider, - PipecatClientAudio, - PipecatClientVideo, - usePipecatClient, - usePipecatClientTransportState, -} from "@pipecat-ai/client-react"; -``` - -### 3. Client and Transport Configuration - -**Old** - -```javascript -const transport = new DailyTransport(); -const client = new RTVIClient({ - transport, - params: { - baseUrl: "http://localhost:7860", - endpoints: { - connect: "/connect", - }, - }, -}); -``` - -**New** - -```javascript -const client = new PipecatClient({ - transport: new DailyTransport(), - // Connection params moved to connect() call -}); -``` - -### 4. Connection Method - -Previously, `connect()` was called on the client instance without parameters. Now, you provide connection parameters directly to the `connect()` method. This allows for more flexibility and customization of the connection process. For ease of use, we've also introduced a `startBot()` and `startBotAndConnect()` method where you can provide an API endpoint that returns the connection parameters. - -**Old** - -```javascript -await client.connect(); -``` - -**New** - -There are three options for connecting now. For migration purposes, you are likely to use option 3 (`startBotAndConnect()`): - -1. **Direct Connection**: Provide the connection details directly to `connect()`. - -```javascript -const cxnDetails = { - url: "https://your-daily-room-url", - token: "your-daily-token", -}; -await client.connect(cxnDetails); -``` - -2. **Using startBot()**: Fetch connection details from an API endpoint and pass them to `connect()`. - -```javascript -let cxnDetails = await client.startBot({ - endpoint: "http://localhost:7860/connect", - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: "openai", - initial_prompt: "You are a pirate captain", - // Any additional data - }, -}); -cxnDetails = modifyCxnDetails(cxnDetails); // Modify if needed -await client.connect(cxnDetails); -``` - -3. **Using startBotAndConnect()**: Fetch connection details and connect in one step. - -```javascript -await client.startBotAndConnect({ - endpoint: "http://localhost:7860/connect", - requestData: { - // Any custom data your /connect endpoint requires - llm_provider: "openai", - initial_prompt: "You are a pirate captain", - // Any additional data - }, -}); -``` - -### 5. Function Call Handling - -**Old** - -```javascript -let llmHelper = new LLMHelper({}); -llmHelper.handleFunctionCall(async (data) => { - return await this.handleFunctionCall(data.functionName, data.arguments); -}); -client.registerHelper("openai", llmHelper); -``` - -**New** - -```javascript -client.registerFunctionCallHandler("functionName", async (data) => { - // Handle function call - return result; -}); -``` - -## Breaking Changes - -1. **Configuration Structure**: Connection parameters are now passed to connect() instead of constructor -2. **Helper System**: Removed in favor of direct `PipecatClient` member functions or client-server messaging. -3. **Component Names**: All React components renamed from RTVI prefix to Pipecat prefix -4. **Hook Names**: All React hooks renamed from useRTVI prefix to usePipecat prefix - -## Migration Steps - -1. Update package imports to use new names -2. Move connection configuration from constructor to startBot()/startBotAndConnect()/connect() methods -3. Replace any helper classes with corresponding `PipecatClient` methods or custom messaging -4. Update React component and hook names -5. Update any TypeScript types referencing old names diff --git a/client/voice-ui-kit.mdx b/client/voice-ui-kit.mdx new file mode 100644 index 000000000..6763a2cd2 --- /dev/null +++ b/client/voice-ui-kit.mdx @@ -0,0 +1,34 @@ +--- +title: "Voice UI Kit" +description: "Pre-built React components for building voice AI interfaces with Pipecat." +--- + +The [Voice UI Kit](https://github.com/pipecat-ai/voice-ui-kit) provides pre-built React components and custom hooks that accelerate building voice AI applications on top of the Pipecat JavaScript and React SDKs. + +## Features + +- Ready-to-use voice interface components +- Built on the Pipecat React SDK +- Customizable themes and styling +- Handles common UI patterns for voice AI (indicators, transcripts, controls) + +## Getting Started + +```bash +npm install @pipecat-ai/voice-ui-kit +``` + +## Resources + + + + Source code, documentation, and examples. + + + Learn about the underlying Pipecat React SDK. + + diff --git a/deployment/pipecat-cloud/images/hero-dark.svg b/deployment/pipecat-cloud/images/hero-dark.svg deleted file mode 100644 index 4c85b6b4b..000000000 --- a/deployment/pipecat-cloud/images/hero-dark.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/deployment/pipecat-cloud/images/hero-light.svg b/deployment/pipecat-cloud/images/hero-light.svg deleted file mode 100644 index 9be52f395..000000000 --- a/deployment/pipecat-cloud/images/hero-light.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/deployment/pipecat-cloud/introduction.mdx b/deployment/pipecat-cloud/introduction.mdx deleted file mode 100644 index 31324ffd7..000000000 --- a/deployment/pipecat-cloud/introduction.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Introduction -description: "Deploy your AI agents to production at scale" ---- - -Pipecat Cloud is a managed platform for hosting and scaling AI agents into production. Purpose-built for the Pipecat framework, Pipecat Cloud makes it easy for developers -to deploy Pipecat pipelines or custom agentic workflows. - - - - - -**Platform summary:** - -- Built from the ground up for agentic use-cases and the Pipecat ecosystem -- Flexible configuration options for customizing your deployment -- Blazing fast availability and performance tuned for agentic use-cases -- Cross-platform client SDKs for frictionless application development -- Real-time monitoring and observability -- Cost effective and scalable -- Secure and compliant -- First-party integrations from best-in-class providers -- Pre-made templates for common agentic workflows - -Pipecat Cloud is built by [Daily ](https://daily.co), leveraging over a decade of experience building infrastructure -management and real-time voice and video capabilities. - ---- - - - - - - diff --git a/deployment/platforms/pipecat-cloud.mdx b/deployment/platforms/pipecat-cloud.mdx deleted file mode 100644 index b13c69b0a..000000000 --- a/deployment/platforms/pipecat-cloud.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Pipecat Cloud" -description: "Deploy Pipecat agents with managed infrastructure" ---- - -[Pipecat Cloud](https://pipecat.daily.co) is a managed platform for hosting and scaling Pipecat agents in production. - - - Visit the complete Pipecat Cloud documentation to deploy your first agent - diff --git a/docs.json b/docs.json index d04bf5879..3e9116104 100644 --- a/docs.json +++ b/docs.json @@ -14,39 +14,48 @@ "navigation": { "tabs": [ { - "tab": "Getting Started", + "tab": "Overview", "groups": [ { - "group": "Get Started", + "group": "Overview", "pages": [ - "getting-started/introduction", - "getting-started/quickstart", - "getting-started/build-your-next-bot", - "getting-started/ecosystem", - "getting-started/ai-tools", - "getting-started/next-steps" + "overview/introduction", + "overview/pipecat", + "overview/clients", + "overview/flows", + "overview/cloud" ] } ] }, { - "tab": "Guides", + "tab": "Pipecat", "groups": [ + { + "group": "Get Started", + "pages": [ + "pipecat/get-started/introduction", + "pipecat/get-started/quickstart", + "pipecat/get-started/build-your-next-bot", + "pipecat/get-started/ai-tools", + "pipecat/get-started/next-steps" + ] + }, { "group": "Learning Pipecat", "pages": [ - "guides/learn/overview", - "guides/learn/session-initialization", - "guides/learn/pipeline", - "guides/learn/transports", - "guides/learn/speech-input", - "guides/learn/speech-to-text", - "guides/learn/context-management", - "guides/learn/llm", - "guides/learn/function-calling", - "guides/learn/text-to-speech", - "guides/learn/pipeline-termination", - "guides/learn/whats-next" + "pipecat/learn/overview", + "pipecat/learn/session-initialization", + "pipecat/learn/pipeline", + "pipecat/learn/transports", + "pipecat/learn/speech-input", + "pipecat/learn/speech-to-text", + "pipecat/learn/context-management", + "pipecat/learn/llm", + "pipecat/learn/function-calling", + "pipecat/learn/text-to-speech", + "pipecat/learn/pipeline-termination", + "pipecat/learn/whats-next" ] }, { @@ -76,381 +85,55 @@ { "group": "Features", "pages": [ - "guides/features/pipecat-flows", - "guides/features/krisp-viva", - "guides/features/whatsapp", - "guides/features/gemini-live", - "guides/features/openai-audio-models-and-apis" + "pipecat/features/krisp-viva", + "pipecat/features/whatsapp", + "pipecat/features/gemini-live", + "pipecat/features/openai-audio-models-and-apis" ] }, { "group": "Telephony", "pages": [ - "guides/telephony/overview", - "guides/telephony/daily-phone-numbers", - "guides/telephony/daily-pstn", - "guides/telephony/twilio-daily-sip", - "guides/telephony/twilio-websockets", - "guides/telephony/telnyx-websockets", - "guides/telephony/plivo-websockets", - "guides/telephony/exotel-websockets" - ] - } - ] - }, - { - "tab": "Server APIs", - "groups": [ - { - "group": " ", - "pages": ["server/introduction"] - }, - { - "group": "API Reference", - "pages": ["server/links/server-reference"] - }, - { - "group": "Services", - "pages": [ - "server/services/supported-services", - "server/services/community-integrations", - { - "group": "Transport", - "pages": [ - "server/services/transport/daily", - "server/services/transport/fastapi-websocket", - "server/services/transport/heygen", - "server/services/transport/lemonslice", - "server/services/transport/livekit", - "server/services/transport/small-webrtc", - "server/services/transport/tavus", - "server/services/transport/websocket-server", - "server/services/transport/whatsapp", - "server/services/transport/transport-params" - ] - }, - { - "group": "Serializers", - "pages": [ - "server/services/serializers/introduction", - "server/services/serializers/exotel", - "server/services/serializers/genesys", - "server/services/serializers/plivo", - "server/services/serializers/twilio", - "server/services/serializers/telnyx", - "server/services/serializers/vonage" - ] - }, - { - "group": "Speech-to-Text", - "pages": [ - "server/services/stt/assemblyai", - "server/services/stt/aws", - "server/services/stt/azure", - "server/services/stt/cartesia", - "server/services/stt/deepgram", - "server/services/stt/elevenlabs", - "server/services/stt/fal", - "server/services/stt/gladia", - "server/services/stt/google", - "server/services/stt/groq", - "server/services/stt/nvidia", - "server/services/stt/openai", - "server/services/stt/sarvam", - "server/services/stt/soniox", - "server/services/stt/speechmatics", - "server/services/stt/whisper" - ] - }, - { - "group": "LLM", - "pages": [ - "server/services/llm/anthropic", - "server/services/llm/aws", - "server/services/llm/azure", - "server/services/llm/cerebras", - "server/services/llm/deepseek", - "server/services/llm/fireworks", - "server/services/llm/google", - "server/services/llm/google-vertex", - "server/services/llm/grok", - "server/services/llm/groq", - "server/services/llm/mistral", - "server/services/llm/nvidia", - "server/services/llm/novita", - "server/services/llm/ollama", - "server/services/llm/openai", - "server/services/llm/openai-responses", - "server/services/llm/openpipe", - "server/services/llm/openrouter", - "server/services/llm/perplexity", - "server/services/llm/qwen", - "server/services/llm/sambanova", - "server/services/llm/sarvam", - "server/services/llm/together" - ] - }, - { - "group": "Text-to-Speech", - "pages": [ - "server/services/tts/asyncai", - "server/services/tts/aws", - "server/services/tts/azure", - "server/services/tts/camb", - "server/services/tts/cartesia", - "server/services/tts/deepgram", - "server/services/tts/elevenlabs", - "server/services/tts/fish", - "server/services/tts/google", - "server/services/tts/groq", - "server/services/tts/hume", - "server/services/tts/inworld", - "server/services/tts/kokoro", - "server/services/tts/lmnt", - "server/services/tts/minimax", - "server/services/tts/neuphonic", - "server/services/tts/nvidia", - "server/services/tts/openai", - "server/services/tts/piper", - "server/services/tts/resembleai", - "server/services/tts/rime", - "server/services/tts/sarvam", - "server/services/tts/smallest", - "server/services/tts/speechmatics", - "server/services/tts/xai", - "server/services/tts/xtts" - ] - }, - { - "group": "Speech-to-Speech", - "pages": [ - "server/services/s2s/aws", - "server/services/s2s/gemini-live", - "server/services/s2s/gemini-live-vertex", - "server/services/s2s/grok", - "server/services/s2s/openai", - "server/services/s2s/ultravox" - ] - }, - { - "group": "Image Generation", - "pages": [ - "server/services/image-generation/azure", - "server/services/image-generation/fal", - "server/services/image-generation/google", - "server/services/image-generation/openai" - ] - }, - { - "group": "Video", - "pages": [ - "server/services/video/heygen", - "server/services/video/simli", - "server/services/video/tavus" - ] - }, - { - "group": "Memory", - "pages": ["server/services/memory/mem0"] - }, - { - "group": "Vision", - "pages": ["server/services/vision/moondream"] - }, - { - "group": "Analytics & Monitoring", - "pages": ["server/services/analytics/sentry"] - } - ] - }, - { - "group": "Utilities", - "pages": [ - { - "group": "Advanced Frame Processors", - "pages": [ - "server/utilities/frame/llm-text-processor", - "server/utilities/frame/producer-consumer", - "server/utilities/user-idle-processor" - ] - }, - { - "group": "Audio Processing", - "pages": [ - "server/utilities/audio/aic-filter", - "server/utilities/audio/audio-buffer-processor", - "server/utilities/audio/koala-filter", - "server/utilities/audio/krisp-viva-filter", - "server/utilities/audio/krisp-viva-vad-analyzer", - "server/utilities/audio/rnnoise-filter", - "server/utilities/audio/silero-vad-analyzer", - "server/utilities/audio/soundfile-mixer" - ] - }, - { - "group": "Context", - "pages": ["server/utilities/context-summarization"] - }, - { - "group": "Extensions", - "pages": [ - "server/utilities/extensions/ivr", - "server/utilities/extensions/voicemail" - ] - }, - { - "group": "Frame Filters", - "pages": [ - "server/utilities/filters/frame-filter", - "server/utilities/filters/function-filter", - "server/utilities/filters/identify-filter", - "server/utilities/filters/null-filter", - "server/utilities/filters/stt-mute", - "server/utilities/filters/wake-check-filter", - "server/utilities/filters/wake-notifier-filter" - ] - }, - { - "group": "Metrics and Telemetry", - "pages": ["server/utilities/opentelemetry"] - }, - { - "group": "MCP", - "pages": ["server/utilities/mcp/mcp"] - }, - { - "group": "Observers", - "pages": [ - "server/utilities/observers/observer-pattern", - "server/utilities/observers/debug-observer", - "server/utilities/observers/llm-observer", - "server/utilities/observers/transcription-observer", - "server/utilities/observers/startup-timing-observer", - "server/utilities/observers/turn-tracking-observer", - "server/utilities/observers/user-bot-latency-observer" - ] - }, - { - "group": "Runner", - "pages": [ - "server/utilities/runner/guide", - "server/utilities/runner/transport-utils" - ] - }, - { - "group": "Service Utilities", - "pages": ["server/utilities/daily/rest-helper"] - }, - { - "group": "Service Switchers", - "pages": [ - "server/utilities/service-switchers/service-switcher", - "server/utilities/service-switchers/llm-switcher" - ] - }, - { - "group": "Smart Turn Detection", - "pages": [ - "server/utilities/turn-detection/smart-turn-overview", - "server/utilities/turn-detection/krisp-viva-turn", - "server/utilities/turn-detection/fal-smart-turn" - ] - }, - { - "group": "Telephony", - "pages": ["server/utilities/dtmf-aggregator"] - }, - { - "group": "Text Aggregators and Filters", - "pages": [ - "server/utilities/text/overview", - "server/utilities/text/markdown-text-filter", - "server/utilities/text/pattern-pair-aggregator" - ] - }, - { - "group": "User and Assistant Transcriptions", - "pages": ["server/utilities/transcript-processor"] - }, - { - "group": "User and Assistant Turn Management", - "pages": [ - "server/utilities/turn-management/user-turn-strategies", - "server/utilities/turn-management/user-mute-strategies", - "server/utilities/turn-management/filter-incomplete-turns", - "server/utilities/turn-management/turn-events", - "server/utilities/turn-management/transcriptions", - "server/utilities/turn-management/external-turn-management", - "server/utilities/turn-management/interruption-strategies" - ] - } - ] - }, - { - "group": "Events", - "pages": [ - "server/events/overview", - "server/events/frame-processor-events", - "server/events/service-events" + "pipecat/telephony/overview", + "pipecat/telephony/daily-phone-numbers", + "pipecat/telephony/daily-pstn", + "pipecat/telephony/twilio-daily-sip", + "pipecat/telephony/twilio-websockets", + "pipecat/telephony/telnyx-websockets", + "pipecat/telephony/plivo-websockets", + "pipecat/telephony/exotel-websockets" ] }, { - "group": "Frameworks", + "group": "Deployment", "pages": [ + "pipecat/deployment/overview", + "pipecat/deployment/pattern", { - "group": "RTVI", - "pages": [ - "server/frameworks/rtvi/introduction", - "server/frameworks/rtvi/rtvi-processor", - "server/frameworks/rtvi/rtvi-observer" - ] - }, - { - "group": "Pipecat Flows", + "group": "Hosting Platforms", "pages": [ - "server/frameworks/flows/pipecat-flows", - "server/frameworks/flows/flow-manager", - "server/frameworks/flows/types", - "server/frameworks/flows/exceptions" + "pipecat/deployment/platforms/fly", + "pipecat/deployment/platforms/cerebrium", + "pipecat/deployment/platforms/modal" ] } ] }, { - "group": "Frames", - "pages": [ - "server/frames/overview", - "server/frames/data-frames", - "server/frames/control-frames", - "server/frames/system-frames", - "server/frames/llm-frames" - ] - }, - { - "group": "Pipeline", - "pages": [ - "server/pipeline/pipeline-params", - "server/pipeline/pipeline-task", - "server/pipeline/pipeline-idle-detection", - "server/pipeline/heartbeats", - "server/pipeline/parallel-pipeline" - ] + "group": "Examples & Recipes", + "pages": ["pipecat/examples/overview", "pipecat/examples/recipes"] } ] }, { - "tab": "Client SDKs", + "tab": "Pipecat Clients", "groups": [ { "group": "Introduction", - "pages": [ - "client/introduction", - "client/rtvi-standard", - "client/migration-guide" - ] + "pages": ["client/introduction", "client/rtvi-standard"] }, { - "group": "Javascript SDK", + "group": "JavaScript SDK", "pages": [ "client/js/introduction", { @@ -464,7 +147,7 @@ ] }, { - "group": "Transport packages", + "group": "Transport Packages", "pages": [ "client/js/transports/transport", "client/js/transports/daily", @@ -473,8 +156,7 @@ "client/js/transports/gemini", "client/js/transports/openai-webrtc" ] - }, - "client/js/migration-guide" + } ] }, { @@ -484,8 +166,7 @@ { "group": "API Reference", "pages": ["client/react/components", "client/react/hooks"] - }, - "client/react/migration-guide" + } ] }, { @@ -494,13 +175,12 @@ "client/react-native/introduction", "client/react-native/api-reference", { - "group": "Transport packages", + "group": "Transport Packages", "pages": [ "client/react-native/transports/daily", "client/react-native/transports/small-webrtc" ] - }, - "client/react-native/migration-guide" + } ] }, { @@ -509,15 +189,14 @@ "client/ios/introduction", "client/ios/api-reference", { - "group": "Transport packages", + "group": "Transport Packages", "pages": [ "client/ios/transports/daily", "client/ios/transports/gemini-websocket", "client/ios/transports/openai-webrtc", "client/ios/transports/small-webrtc" ] - }, - "client/ios/migration-guide" + } ] }, { @@ -526,268 +205,603 @@ "client/android/introduction", "client/android/api-reference", { - "group": "Transport packages", + "group": "Transport Packages", "pages": [ "client/android/transports/daily", "client/android/transports/gemini-websocket", "client/android/transports/openai-webrtc", "client/android/transports/small-webrtc" ] - }, - "client/android/migration-guide" + } ] }, { "group": "C++ SDK", "pages": ["client/c++/introduction", "client/c++/transport"] + }, + { + "group": "Voice UI Kit", + "pages": ["client/voice-ui-kit"] } ] }, { - "tab": "CLI", + "tab": "Pipecat Flows", "groups": [ { - "group": " ", - "pages": ["cli/overview"] + "group": "Get Started", + "pages": [ + "pipecat-flows/introduction", + "pipecat-flows/guides/quickstart" + ] }, { - "group": "Commands", + "group": "Guides", "pages": [ - "cli/init", - "cli/tail", - { - "group": "cloud", - "pages": [ - "cli/cloud/agent", - "cli/cloud/auth", - "cli/cloud/build", - "cli/cloud/docker", - "cli/cloud/deploy", - "cli/cloud/organizations", - "cli/cloud/secrets", - "cli/cloud/regions" - ] - } + "pipecat-flows/guides/nodes-and-messages", + "pipecat-flows/guides/functions", + "pipecat-flows/guides/actions", + "pipecat-flows/guides/context-strategies", + "pipecat-flows/guides/state-management" ] + }, + { + "group": "Examples", + "pages": ["pipecat-flows/examples"] } ] }, { - "tab": "Deployment", + "tab": "Pipecat Cloud", "groups": [ { - "group": "Deploying your bot", - "pages": [ - "deployment/overview", - "deployment/pattern", - { - "group": "Hosting Platforms", - "pages": [ - "deployment/platforms/pipecat-cloud", - "deployment/platforms/fly", - "deployment/platforms/cerebrium", - "deployment/platforms/modal" - ] - } - ] + "group": "Get Started", + "pages": ["pipecat-cloud/introduction"] }, { - "group": "Pipecat Cloud", + "group": "Fundamentals", "pages": [ - "deployment/pipecat-cloud/introduction", - { - "group": "Fundamentals", - "pages": [ - "deployment/pipecat-cloud/fundamentals/accounts-and-organizations", - "deployment/pipecat-cloud/fundamentals/agent-images", - "deployment/pipecat-cloud/fundamentals/deploy", - "deployment/pipecat-cloud/fundamentals/active-sessions", - "deployment/pipecat-cloud/fundamentals/secrets", - "deployment/pipecat-cloud/fundamentals/scaling", - "deployment/pipecat-cloud/fundamentals/logging", - "deployment/pipecat-cloud/fundamentals/error-codes" - ] - }, - { - "group": "Guides", - "pages": [ - "deployment/pipecat-cloud/guides/cloud-builds", - "deployment/pipecat-cloud/guides/capacity-planning", - { - "group": "Container Registries", - "pages": [ - "deployment/pipecat-cloud/guides/container-registries/overview", - "deployment/pipecat-cloud/guides/container-registries/docker-hub", - "deployment/pipecat-cloud/guides/container-registries/aws-ecr", - "deployment/pipecat-cloud/guides/container-registries/gcp-artifact-registry" - ] - }, - "deployment/pipecat-cloud/guides/ci-with-github-actions", - "deployment/pipecat-cloud/guides/personal-access-tokens", - "deployment/pipecat-cloud/guides/daily-webrtc", - "deployment/pipecat-cloud/guides/krisp-viva", - { - "group": "Logging & Observability", - "pages": ["deployment/pipecat-cloud/guides/using-datadog"] - }, - "deployment/pipecat-cloud/guides/regions", - "deployment/pipecat-cloud/guides/session-api", - "deployment/pipecat-cloud/guides/smart-turn", - "deployment/pipecat-cloud/guides/whatsapp", - { - "group": "Telephony", - "pages": [ - "deployment/pipecat-cloud/guides/telephony/twilio-websocket", - "deployment/pipecat-cloud/guides/telephony/telnyx-websocket", - "deployment/pipecat-cloud/guides/telephony/plivo-websocket", - "deployment/pipecat-cloud/guides/telephony/exotel-websocket", - "deployment/pipecat-cloud/guides/telephony/daily-dial-in", - "deployment/pipecat-cloud/guides/telephony/daily-dial-out" - ] - } - ] - }, - { - "group": "Security & Compliance", - "pages": [ - "deployment/pipecat-cloud/security/security-and-compliance", - "deployment/pipecat-cloud/security/hipaa" - ] - } + "pipecat-cloud/fundamentals/accounts-and-organizations", + "pipecat-cloud/fundamentals/agent-images", + "pipecat-cloud/fundamentals/deploy", + "pipecat-cloud/fundamentals/active-sessions", + "pipecat-cloud/fundamentals/secrets", + "pipecat-cloud/fundamentals/scaling", + "pipecat-cloud/fundamentals/logging", + "pipecat-cloud/fundamentals/error-codes" ] }, { - "group": "Pipecat Cloud: REST Reference", + "group": "Guides", "pages": [ + "pipecat-cloud/guides/cloud-builds", + "pipecat-cloud/guides/capacity-planning", { - "group": "Agents", - "pages": [ - "deployment/pipecat-cloud/rest-reference/endpoint/agent-create", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-update", - "deployment/pipecat-cloud/rest-reference/endpoint/start", - "deployment/pipecat-cloud/rest-reference/endpoint/stop", - "deployment/pipecat-cloud/rest-reference/endpoint/session-proxy", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-get-logs", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-get-sessions", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-get-session", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-list-all", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-list-one", - "deployment/pipecat-cloud/rest-reference/endpoint/agent-delete" - ] - }, - { - "group": "Secrets", - "pages": [ - "deployment/pipecat-cloud/rest-reference/endpoint/secret-create-update", - "deployment/pipecat-cloud/rest-reference/endpoint/secret-list-all", - "deployment/pipecat-cloud/rest-reference/endpoint/secret-list-one", - "deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set", - "deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret" - ] - }, - { - "group": "Builds", + "group": "Container Registries", "pages": [ - "deployment/pipecat-cloud/rest-reference/endpoint/build-upload-url", - "deployment/pipecat-cloud/rest-reference/endpoint/build-create", - "deployment/pipecat-cloud/rest-reference/endpoint/build-list", - "deployment/pipecat-cloud/rest-reference/endpoint/build-get", - "deployment/pipecat-cloud/rest-reference/endpoint/build-get-logs" + "pipecat-cloud/guides/container-registries/overview", + "pipecat-cloud/guides/container-registries/docker-hub", + "pipecat-cloud/guides/container-registries/aws-ecr", + "pipecat-cloud/guides/container-registries/gcp-artifact-registry" ] }, + "pipecat-cloud/guides/ci-with-github-actions", + "pipecat-cloud/guides/personal-access-tokens", + "pipecat-cloud/guides/daily-webrtc", + "pipecat-cloud/guides/krisp-viva", { - "group": "Regions", - "pages": [ - "deployment/pipecat-cloud/rest-reference/endpoint/regions-list" - ] + "group": "Logging & Observability", + "pages": ["pipecat-cloud/guides/using-datadog"] }, + "pipecat-cloud/guides/regions", + "pipecat-cloud/guides/session-api", + "pipecat-cloud/guides/smart-turn", + "pipecat-cloud/guides/whatsapp", { - "group": "Organization", + "group": "Telephony", "pages": [ - "deployment/pipecat-cloud/rest-reference/endpoint/properties-get", - "deployment/pipecat-cloud/rest-reference/endpoint/properties-update" + "pipecat-cloud/guides/telephony/twilio-websocket", + "pipecat-cloud/guides/telephony/telnyx-websocket", + "pipecat-cloud/guides/telephony/plivo-websocket", + "pipecat-cloud/guides/telephony/exotel-websocket", + "pipecat-cloud/guides/telephony/daily-dial-in", + "pipecat-cloud/guides/telephony/daily-dial-out" ] } ] }, { - "group": "Pipecat Cloud: SDK Reference", + "group": "Security & Compliance", "pages": [ - "deployment/pipecat-cloud/sdk-reference/overview", - { - "group": "Reference", - "pages": [ - "deployment/pipecat-cloud/sdk-reference/sessions", - "deployment/pipecat-cloud/sdk-reference/session-arguments", - "deployment/pipecat-cloud/sdk-reference/exceptions", - "deployment/pipecat-cloud/sdk-reference/examples" - ] - } + "pipecat-cloud/security/security-and-compliance", + "pipecat-cloud/security/hipaa" ] } ] }, { - "tab": "Examples & Recipes", + "tab": "API Reference", "groups": [ { - "group": "Browse Examples & Recipes", - "pages": ["examples", "recipes"] - } - ] - } - ], - "global": { - "anchors": [ - { - "anchor": "Pipecat Events", - "href": "https://pipecat.ai/events", - "icon": "calendar" - }, - { - "anchor": "Community", - "href": "https://discord.gg/pipecat", - "icon": "discord" - }, - { - "anchor": "GitHub", - "href": "https://github.com/pipecat-ai/pipecat", - "icon": "github" - }, - { - "anchor": "Changelog", - "href": "https://github.com/pipecat-ai/pipecat/blob/main/CHANGELOG.md", - "icon": "file" - } - ] - } - }, - "logo": { - "light": "/logo/light.svg", - "dark": "/logo/dark.svg" - }, - "navbar": { - "links": [ - { - "label": "Join the Discord", - "href": "https://discord.gg/pipecat" - }, - { - "icon": "github", - "label": "Github", - "href": "https://github.com/pipecat-ai/pipecat" - } - ] - }, - "seo": { - "metatags": { - "og:site_name": "Pipecat", - "og:description": "Learn about Pipecat, the open source framework for building voice and multimodal AI agents.", - "og:url": "https://docs.pipecat.ai/", - "og:locale": "en_US", - "og:logo": "/logo/pipecat-logo.svg", - "article:publisher": "Pipecat AI", - "twitter:description": "Learn about Pipecat, the open source framework for building voice and multimodal AI agents.", + "group": "Pipecat Server", + "pages": [ + "server/introduction", + { + "group": "Services", + "pages": [ + "server/services/supported-services", + "server/services/community-integrations", + { + "group": "Transport", + "pages": [ + "server/services/transport/daily", + "server/services/transport/fastapi-websocket", + "server/services/transport/heygen", + "server/services/transport/lemonslice", + "server/services/transport/livekit", + "server/services/transport/small-webrtc", + "server/services/transport/tavus", + "server/services/transport/websocket-server", + "server/services/transport/whatsapp", + "server/services/transport/transport-params" + ] + }, + { + "group": "Serializers", + "pages": [ + "server/services/serializers/introduction", + "server/services/serializers/exotel", + "server/services/serializers/genesys", + "server/services/serializers/plivo", + "server/services/serializers/twilio", + "server/services/serializers/telnyx", + "server/services/serializers/vonage" + ] + }, + { + "group": "Speech-to-Text", + "pages": [ + "server/services/stt/assemblyai", + "server/services/stt/aws", + "server/services/stt/azure", + "server/services/stt/cartesia", + "server/services/stt/deepgram", + "server/services/stt/elevenlabs", + "server/services/stt/fal", + "server/services/stt/gladia", + "server/services/stt/google", + "server/services/stt/groq", + "server/services/stt/nvidia", + "server/services/stt/openai", + "server/services/stt/sarvam", + "server/services/stt/soniox", + "server/services/stt/speechmatics", + "server/services/stt/whisper", + "server/services/stt/gradium" + ] + }, + { + "group": "LLM", + "pages": [ + "server/services/llm/anthropic", + "server/services/llm/aws", + "server/services/llm/azure", + "server/services/llm/cerebras", + "server/services/llm/deepseek", + "server/services/llm/fireworks", + "server/services/llm/google", + "server/services/llm/google-vertex", + "server/services/llm/grok", + "server/services/llm/groq", + "server/services/llm/mistral", + "server/services/llm/nvidia", + "server/services/llm/novita", + "server/services/llm/ollama", + "server/services/llm/openai", + "server/services/llm/openai-responses", + "server/services/llm/openpipe", + "server/services/llm/openrouter", + "server/services/llm/perplexity", + "server/services/llm/qwen", + "server/services/llm/sambanova", + "server/services/llm/sarvam", + "server/services/llm/together" + ] + }, + { + "group": "Text-to-Speech", + "pages": [ + "server/services/tts/asyncai", + "server/services/tts/aws", + "server/services/tts/azure", + "server/services/tts/camb", + "server/services/tts/cartesia", + "server/services/tts/deepgram", + "server/services/tts/elevenlabs", + "server/services/tts/fish", + "server/services/tts/google", + "server/services/tts/groq", + "server/services/tts/hume", + "server/services/tts/inworld", + "server/services/tts/kokoro", + "server/services/tts/lmnt", + "server/services/tts/minimax", + "server/services/tts/neuphonic", + "server/services/tts/nvidia", + "server/services/tts/openai", + "server/services/tts/piper", + "server/services/tts/resembleai", + "server/services/tts/rime", + "server/services/tts/sarvam", + "server/services/tts/smallest", + "server/services/tts/speechmatics", + "server/services/tts/xai", + "server/services/tts/xtts", + "server/services/tts/gradium" + ] + }, + { + "group": "Speech-to-Speech", + "pages": [ + "server/services/s2s/aws", + "server/services/s2s/gemini-live", + "server/services/s2s/gemini-live-vertex", + "server/services/s2s/grok", + "server/services/s2s/openai", + "server/services/s2s/ultravox" + ] + }, + { + "group": "Image Generation", + "pages": [ + "server/services/image-generation/azure", + "server/services/image-generation/fal", + "server/services/image-generation/google", + "server/services/image-generation/openai" + ] + }, + { + "group": "Video", + "pages": [ + "server/services/video/heygen", + "server/services/video/simli", + "server/services/video/tavus" + ] + }, + { + "group": "Memory", + "pages": ["server/services/memory/mem0"] + }, + { + "group": "Vision", + "pages": ["server/services/vision/moondream"] + }, + { + "group": "Analytics & Monitoring", + "pages": ["server/services/analytics/sentry"] + } + ] + }, + { + "group": "Utilities", + "pages": [ + { + "group": "Advanced Frame Processors", + "pages": [ + "server/utilities/frame/llm-text-processor", + "server/utilities/frame/producer-consumer", + "server/utilities/user-idle-processor" + ] + }, + { + "group": "Audio Processing", + "pages": [ + "server/utilities/audio/aic-filter", + "server/utilities/audio/audio-buffer-processor", + "server/utilities/audio/koala-filter", + "server/utilities/audio/krisp-viva-filter", + "server/utilities/audio/krisp-viva-vad-analyzer", + "server/utilities/audio/rnnoise-filter", + "server/utilities/audio/silero-vad-analyzer", + "server/utilities/audio/soundfile-mixer" + ] + }, + { + "group": "Context", + "pages": ["server/utilities/context-summarization"] + }, + { + "group": "Extensions", + "pages": [ + "server/utilities/extensions/ivr", + "server/utilities/extensions/voicemail" + ] + }, + { + "group": "Frame Filters", + "pages": [ + "server/utilities/filters/frame-filter", + "server/utilities/filters/function-filter", + "server/utilities/filters/identify-filter", + "server/utilities/filters/null-filter", + "server/utilities/filters/stt-mute", + "server/utilities/filters/wake-check-filter", + "server/utilities/filters/wake-notifier-filter" + ] + }, + { + "group": "Metrics and Telemetry", + "pages": ["server/utilities/opentelemetry"] + }, + { + "group": "MCP", + "pages": ["server/utilities/mcp/mcp"] + }, + { + "group": "Observers", + "pages": [ + "server/utilities/observers/observer-pattern", + "server/utilities/observers/debug-observer", + "server/utilities/observers/llm-observer", + "server/utilities/observers/transcription-observer", + "server/utilities/observers/startup-timing-observer", + "server/utilities/observers/turn-tracking-observer", + "server/utilities/observers/user-bot-latency-observer" + ] + }, + { + "group": "Runner", + "pages": [ + "server/utilities/runner/guide", + "server/utilities/runner/transport-utils" + ] + }, + { + "group": "Service Utilities", + "pages": ["server/utilities/daily/rest-helper"] + }, + { + "group": "Service Switchers", + "pages": [ + "server/utilities/service-switchers/service-switcher", + "server/utilities/service-switchers/llm-switcher" + ] + }, + { + "group": "Smart Turn Detection", + "pages": [ + "server/utilities/turn-detection/smart-turn-overview", + "server/utilities/turn-detection/krisp-viva-turn", + "server/utilities/turn-detection/fal-smart-turn" + ] + }, + { + "group": "Telephony", + "pages": ["server/utilities/dtmf-aggregator"] + }, + { + "group": "Text Aggregators and Filters", + "pages": [ + "server/utilities/text/overview", + "server/utilities/text/markdown-text-filter", + "server/utilities/text/pattern-pair-aggregator" + ] + }, + { + "group": "User and Assistant Transcriptions", + "pages": ["server/utilities/transcript-processor"] + }, + { + "group": "User and Assistant Turn Management", + "pages": [ + "server/utilities/turn-management/user-turn-strategies", + "server/utilities/turn-management/user-mute-strategies", + "server/utilities/turn-management/filter-incomplete-turns", + "server/utilities/turn-management/turn-events", + "server/utilities/turn-management/transcriptions", + "server/utilities/turn-management/external-turn-management", + "server/utilities/turn-management/interruption-strategies" + ] + } + ] + }, + { + "group": "Events", + "pages": [ + "server/events/overview", + "server/events/frame-processor-events", + "server/events/service-events" + ] + }, + { + "group": "RTVI Framework", + "pages": [ + "server/frameworks/rtvi/introduction", + "server/frameworks/rtvi/rtvi-processor", + "server/frameworks/rtvi/rtvi-observer", + "server/frameworks/rtvi/google-rtvi-observer" + ] + }, + { + "group": "Frames", + "pages": [ + "server/frames/overview", + "server/frames/data-frames", + "server/frames/control-frames", + "server/frames/system-frames", + "server/frames/llm-frames" + ] + }, + { + "group": "Pipeline", + "pages": [ + "server/pipeline/pipeline-params", + "server/pipeline/pipeline-task", + "server/pipeline/pipeline-idle-detection", + "server/pipeline/heartbeats", + "server/pipeline/parallel-pipeline" + ] + } + ] + }, + { + "group": "Pipecat Flows", + "pages": [ + "pipecat-flows/reference/overview", + "pipecat-flows/reference/flow-manager", + "pipecat-flows/reference/types", + "pipecat-flows/reference/exceptions" + ] + }, + { + "group": "Pipecat Cloud", + "pages": [ + { + "group": "REST Reference", + "pages": [ + { + "group": "Agents", + "pages": [ + "pipecat-cloud/rest-reference/endpoint/agent-create", + "pipecat-cloud/rest-reference/endpoint/agent-update", + "pipecat-cloud/rest-reference/endpoint/start", + "pipecat-cloud/rest-reference/endpoint/stop", + "pipecat-cloud/rest-reference/endpoint/session-proxy", + "pipecat-cloud/rest-reference/endpoint/agent-get-logs", + "pipecat-cloud/rest-reference/endpoint/agent-get-sessions", + "pipecat-cloud/rest-reference/endpoint/agent-get-session", + "pipecat-cloud/rest-reference/endpoint/agent-list-all", + "pipecat-cloud/rest-reference/endpoint/agent-list-one", + "pipecat-cloud/rest-reference/endpoint/agent-delete" + ] + }, + { + "group": "Secrets", + "pages": [ + "pipecat-cloud/rest-reference/endpoint/secret-create-update", + "pipecat-cloud/rest-reference/endpoint/secret-list-all", + "pipecat-cloud/rest-reference/endpoint/secret-list-one", + "pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set", + "pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret" + ] + }, + { + "group": "Builds", + "pages": [ + "pipecat-cloud/rest-reference/endpoint/build-upload-url", + "pipecat-cloud/rest-reference/endpoint/build-create", + "pipecat-cloud/rest-reference/endpoint/build-list", + "pipecat-cloud/rest-reference/endpoint/build-get", + "pipecat-cloud/rest-reference/endpoint/build-get-logs" + ] + }, + { + "group": "Regions", + "pages": [ + "pipecat-cloud/rest-reference/endpoint/regions-list" + ] + }, + { + "group": "Organization", + "pages": [ + "pipecat-cloud/rest-reference/endpoint/properties-get", + "pipecat-cloud/rest-reference/endpoint/properties-update" + ] + } + ] + }, + { + "group": "SDK Reference", + "pages": [ + "pipecat-cloud/sdk-reference/overview", + "pipecat-cloud/sdk-reference/sessions", + "pipecat-cloud/sdk-reference/session-arguments", + "pipecat-cloud/sdk-reference/exceptions", + "pipecat-cloud/sdk-reference/examples" + ] + } + ] + }, + { + "group": "CLI", + "pages": [ + "cli/overview", + { + "group": "Commands", + "pages": [ + "cli/init", + "cli/tail", + { + "group": "cloud", + "pages": [ + "cli/cloud/agent", + "cli/cloud/auth", + "cli/cloud/build", + "cli/cloud/docker", + "cli/cloud/deploy", + "cli/cloud/organizations", + "cli/cloud/secrets", + "cli/cloud/regions" + ] + } + ] + } + ] + } + ] + } + ], + "global": { + "anchors": [ + { + "anchor": "Pipecat Events", + "href": "https://pipecat.ai/events", + "icon": "calendar" + }, + { + "anchor": "Community", + "href": "https://discord.gg/pipecat", + "icon": "discord" + }, + { + "anchor": "GitHub", + "href": "https://github.com/pipecat-ai/pipecat", + "icon": "github" + }, + { + "anchor": "Changelog", + "href": "https://github.com/pipecat-ai/pipecat/blob/main/CHANGELOG.md", + "icon": "file" + } + ] + } + }, + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + }, + "navbar": { + "links": [ + { + "label": "Join the Discord", + "href": "https://discord.gg/pipecat" + }, + { + "icon": "github", + "label": "Github", + "href": "https://github.com/pipecat-ai/pipecat" + } + ] + }, + "seo": { + "metatags": { + "og:site_name": "Pipecat", + "og:description": "Learn about Pipecat, the open source framework for building voice and multimodal AI agents.", + "og:url": "https://docs.pipecat.ai/", + "og:locale": "en_US", + "og:logo": "/logo/pipecat-logo.svg", + "article:publisher": "Pipecat AI", + "twitter:description": "Learn about Pipecat, the open source framework for building voice and multimodal AI agents.", "twitter:url": "https://docs.pipecat.ai/", "twitter:site": "@pipecat_ai", "og:image:width": "1200", @@ -803,52 +817,40 @@ } }, "redirects": [ - { - "source": "/guides/features/gemini-multimodal-live", - "destination": "/guides/features/gemini-live" - }, { "source": "/server/services/s2s/gemini", "destination": "/server/services/s2s/gemini-live" }, { - "source": "/getting-started/phone-bots", - "destination": "/getting-started/build-your-next-bot" - }, - { - "source": "/getting-started/web-mobile", - "destination": "/getting-started/build-your-next-bot" - }, - { - "source": "/deployment/pipecat-cloud/cli-reference/overview", + "source": "/pipecat-cloud/cli-reference/overview", "destination": "/cli/overview" }, { - "source": "/deployment/pipecat-cloud/cli-reference/init", + "source": "/pipecat-cloud/cli-reference/init", "destination": "/cli/init" }, { - "source": "/deployment/pipecat-cloud/cli-reference/auth", + "source": "/pipecat-cloud/cli-reference/auth", "destination": "/cli/cloud/auth" }, { - "source": "/deployment/pipecat-cloud/cli-reference/deploy", + "source": "/pipecat-cloud/cli-reference/deploy", "destination": "/cli/cloud/deploy" }, { - "source": "/deployment/pipecat-cloud/cli-reference/docker", + "source": "/pipecat-cloud/cli-reference/docker", "destination": "/cli/cloud/docker" }, { - "source": "/deployment/pipecat-cloud/cli-reference/agent", + "source": "/pipecat-cloud/cli-reference/agent", "destination": "/cli/cloud/agent" }, { - "source": "/deployment/pipecat-cloud/cli-reference/secrets", + "source": "/pipecat-cloud/cli-reference/secrets", "destination": "/cli/cloud/secrets" }, { - "source": "/deployment/pipecat-cloud/cli-reference/organizations", + "source": "/pipecat-cloud/cli-reference/organizations", "destination": "/cli/cloud/organizations" }, { @@ -858,6 +860,394 @@ { "source": "/server/services/llm/gemini", "destination": "/server/services/llm/google" + }, + { + "source": "/deployment/platforms/pipecat-cloud", + "destination": "/pipecat-cloud/introduction" + }, + { + "source": "/getting-started/introduction", + "destination": "/overview/introduction" + }, + { + "source": "/getting-started/ecosystem", + "destination": "/overview/introduction" + }, + { + "source": "/getting-started/quickstart", + "destination": "/pipecat/get-started/quickstart" + }, + { + "source": "/getting-started/build-your-next-bot", + "destination": "/pipecat/get-started/build-your-next-bot" + }, + { + "source": "/getting-started/phone-bots", + "destination": "/pipecat/get-started/build-your-next-bot" + }, + { + "source": "/getting-started/web-mobile", + "destination": "/pipecat/get-started/build-your-next-bot" + }, + { + "source": "/getting-started/ai-tools", + "destination": "/pipecat/get-started/ai-tools" + }, + { + "source": "/getting-started/next-steps", + "destination": "/pipecat/get-started/next-steps" + }, + { + "source": "/guides/learn/overview", + "destination": "/pipecat/learn/overview" + }, + { + "source": "/guides/learn/session-initialization", + "destination": "/pipecat/learn/session-initialization" + }, + { + "source": "/guides/learn/pipeline", + "destination": "/pipecat/learn/pipeline" + }, + { + "source": "/guides/learn/transports", + "destination": "/pipecat/learn/transports" + }, + { + "source": "/guides/learn/speech-input", + "destination": "/pipecat/learn/speech-input" + }, + { + "source": "/guides/learn/speech-to-text", + "destination": "/pipecat/learn/speech-to-text" + }, + { + "source": "/guides/learn/context-management", + "destination": "/pipecat/learn/context-management" + }, + { + "source": "/guides/learn/llm", + "destination": "/pipecat/learn/llm" + }, + { + "source": "/guides/learn/function-calling", + "destination": "/pipecat/learn/function-calling" + }, + { + "source": "/guides/learn/text-to-speech", + "destination": "/pipecat/learn/text-to-speech" + }, + { + "source": "/guides/learn/pipeline-termination", + "destination": "/pipecat/learn/pipeline-termination" + }, + { + "source": "/guides/learn/whats-next", + "destination": "/pipecat/learn/whats-next" + }, + { + "source": "/guides/fundamentals/context-summarization", + "destination": "/pipecat/fundamentals/context-summarization" + }, + { + "source": "/guides/fundamentals/custom-frame-processor", + "destination": "/pipecat/fundamentals/custom-frame-processor" + }, + { + "source": "/guides/fundamentals/detecting-user-idle", + "destination": "/pipecat/fundamentals/detecting-user-idle" + }, + { + "source": "/guides/fundamentals/ivr", + "destination": "/pipecat/fundamentals/ivr" + }, + { + "source": "/guides/fundamentals/metrics", + "destination": "/pipecat/fundamentals/metrics" + }, + { + "source": "/guides/fundamentals/user-input-muting", + "destination": "/pipecat/fundamentals/user-input-muting" + }, + { + "source": "/guides/fundamentals/recording-audio", + "destination": "/pipecat/fundamentals/recording-audio" + }, + { + "source": "/guides/fundamentals/saving-transcripts", + "destination": "/pipecat/fundamentals/saving-transcripts" + }, + { + "source": "/guides/fundamentals/service-settings", + "destination": "/pipecat/fundamentals/service-settings" + }, + { + "source": "/guides/fundamentals/stt-latency-tuning", + "destination": "/pipecat/fundamentals/stt-latency-tuning" + }, + { + "source": "/guides/fundamentals/voicemail", + "destination": "/pipecat/fundamentals/voicemail" + }, + { + "source": "/guides/features/pipecat-flows", + "destination": "/pipecat-flows/introduction" + }, + { + "source": "/pipecat/features/pipecat-flows", + "destination": "/pipecat-flows/introduction" + }, + { + "source": "/server/frameworks/flows/pipecat-flows", + "destination": "/pipecat-flows/reference/overview" + }, + { + "source": "/server/frameworks/flows/flow-manager", + "destination": "/pipecat-flows/reference/flow-manager" + }, + { + "source": "/server/frameworks/flows/types", + "destination": "/pipecat-flows/reference/types" + }, + { + "source": "/server/frameworks/flows/exceptions", + "destination": "/pipecat-flows/reference/exceptions" + }, + { + "source": "/guides/features/krisp-viva", + "destination": "/pipecat/features/krisp-viva" + }, + { + "source": "/guides/features/whatsapp", + "destination": "/pipecat/features/whatsapp" + }, + { + "source": "/guides/features/gemini-live", + "destination": "/pipecat/features/gemini-live" + }, + { + "source": "/guides/features/gemini-multimodal-live", + "destination": "/pipecat/features/gemini-live" + }, + { + "source": "/guides/features/openai-audio-models-and-apis", + "destination": "/pipecat/features/openai-audio-models-and-apis" + }, + { + "source": "/guides/telephony/overview", + "destination": "/pipecat/telephony/overview" + }, + { + "source": "/guides/telephony/daily-phone-numbers", + "destination": "/pipecat/telephony/daily-phone-numbers" + }, + { + "source": "/guides/telephony/daily-pstn", + "destination": "/pipecat/telephony/daily-pstn" + }, + { + "source": "/guides/telephony/twilio-daily-sip", + "destination": "/pipecat/telephony/twilio-daily-sip" + }, + { + "source": "/guides/telephony/twilio-websockets", + "destination": "/pipecat/telephony/twilio-websockets" + }, + { + "source": "/guides/telephony/telnyx-websockets", + "destination": "/pipecat/telephony/telnyx-websockets" + }, + { + "source": "/guides/telephony/plivo-websockets", + "destination": "/pipecat/telephony/plivo-websockets" + }, + { + "source": "/guides/telephony/exotel-websockets", + "destination": "/pipecat/telephony/exotel-websockets" + }, + { + "source": "/deployment/overview", + "destination": "/pipecat/deployment/overview" + }, + { + "source": "/deployment/pattern", + "destination": "/pipecat/deployment/pattern" + }, + { + "source": "/deployment/platforms/fly", + "destination": "/pipecat/deployment/platforms/fly" + }, + { + "source": "/deployment/platforms/cerebrium", + "destination": "/pipecat/deployment/platforms/cerebrium" + }, + { + "source": "/deployment/platforms/modal", + "destination": "/pipecat/deployment/platforms/modal" + }, + { + "source": "/guides/fundamentals/evaluations/overview", + "destination": "/pipecat/fundamentals/evaluations/overview" + }, + { + "source": "/guides/fundamentals/evaluations/bluejay", + "destination": "/pipecat/fundamentals/evaluations/bluejay" + }, + { + "source": "/examples", + "destination": "/pipecat/examples" + }, + { + "source": "/recipes", + "destination": "/pipecat/recipes" + }, + { + "source": "/deployment/pipecat-cloud/introduction", + "destination": "/pipecat-cloud/introduction" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/accounts-and-organizations", + "destination": "/pipecat-cloud/fundamentals/accounts-and-organizations" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/agent-images", + "destination": "/pipecat-cloud/fundamentals/agent-images" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/deploy", + "destination": "/pipecat-cloud/fundamentals/deploy" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/active-sessions", + "destination": "/pipecat-cloud/fundamentals/active-sessions" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/secrets", + "destination": "/pipecat-cloud/fundamentals/secrets" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/scaling", + "destination": "/pipecat-cloud/fundamentals/scaling" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/logging", + "destination": "/pipecat-cloud/fundamentals/logging" + }, + { + "source": "/deployment/pipecat-cloud/fundamentals/error-codes", + "destination": "/pipecat-cloud/fundamentals/error-codes" + }, + { + "source": "/deployment/pipecat-cloud/guides/cloud-builds", + "destination": "/pipecat-cloud/guides/cloud-builds" + }, + { + "source": "/deployment/pipecat-cloud/guides/capacity-planning", + "destination": "/pipecat-cloud/guides/capacity-planning" + }, + { + "source": "/deployment/pipecat-cloud/guides/container-registries/overview", + "destination": "/pipecat-cloud/guides/container-registries/overview" + }, + { + "source": "/deployment/pipecat-cloud/guides/container-registries/docker-hub", + "destination": "/pipecat-cloud/guides/container-registries/docker-hub" + }, + { + "source": "/deployment/pipecat-cloud/guides/container-registries/aws-ecr", + "destination": "/pipecat-cloud/guides/container-registries/aws-ecr" + }, + { + "source": "/deployment/pipecat-cloud/guides/container-registries/gcp-artifact-registry", + "destination": "/pipecat-cloud/guides/container-registries/gcp-artifact-registry" + }, + { + "source": "/deployment/pipecat-cloud/guides/ci-with-github-actions", + "destination": "/pipecat-cloud/guides/ci-with-github-actions" + }, + { + "source": "/deployment/pipecat-cloud/guides/personal-access-tokens", + "destination": "/pipecat-cloud/guides/personal-access-tokens" + }, + { + "source": "/deployment/pipecat-cloud/guides/daily-webrtc", + "destination": "/pipecat-cloud/guides/daily-webrtc" + }, + { + "source": "/deployment/pipecat-cloud/guides/krisp-viva", + "destination": "/pipecat-cloud/guides/krisp-viva" + }, + { + "source": "/deployment/pipecat-cloud/guides/using-datadog", + "destination": "/pipecat-cloud/guides/using-datadog" + }, + { + "source": "/deployment/pipecat-cloud/guides/regions", + "destination": "/pipecat-cloud/guides/regions" + }, + { + "source": "/deployment/pipecat-cloud/guides/session-api", + "destination": "/pipecat-cloud/guides/session-api" + }, + { + "source": "/deployment/pipecat-cloud/guides/smart-turn", + "destination": "/pipecat-cloud/guides/smart-turn" + }, + { + "source": "/deployment/pipecat-cloud/guides/whatsapp", + "destination": "/pipecat-cloud/guides/whatsapp" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/daily-dial-in", + "destination": "/pipecat-cloud/guides/telephony/daily-dial-in" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/daily-dial-out", + "destination": "/pipecat-cloud/guides/telephony/daily-dial-out" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/twilio-websocket", + "destination": "/pipecat-cloud/guides/telephony/twilio-websocket" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/telnyx-websocket", + "destination": "/pipecat-cloud/guides/telephony/telnyx-websocket" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/plivo-websocket", + "destination": "/pipecat-cloud/guides/telephony/plivo-websocket" + }, + { + "source": "/deployment/pipecat-cloud/guides/telephony/exotel-websocket", + "destination": "/pipecat-cloud/guides/telephony/exotel-websocket" + }, + { + "source": "/deployment/pipecat-cloud/security/security-and-compliance", + "destination": "/pipecat-cloud/security/security-and-compliance" + }, + { + "source": "/deployment/pipecat-cloud/security/hipaa", + "destination": "/pipecat-cloud/security/hipaa" + }, + { + "source": "/deployment/pipecat-cloud/sdk-reference/overview", + "destination": "/pipecat-cloud/sdk-reference/overview" + }, + { + "source": "/deployment/pipecat-cloud/sdk-reference/sessions", + "destination": "/pipecat-cloud/sdk-reference/sessions" + }, + { + "source": "/deployment/pipecat-cloud/sdk-reference/session-arguments", + "destination": "/pipecat-cloud/sdk-reference/session-arguments" + }, + { + "source": "/deployment/pipecat-cloud/sdk-reference/exceptions", + "destination": "/pipecat-cloud/sdk-reference/exceptions" + }, + { + "source": "/deployment/pipecat-cloud/sdk-reference/examples", + "destination": "/pipecat-cloud/sdk-reference/examples" } ] } diff --git a/getting-started/ecosystem.mdx b/getting-started/ecosystem.mdx deleted file mode 100644 index 7e1254334..000000000 --- a/getting-started/ecosystem.mdx +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "Ecosystem" -description: "Client SDKs, tools, and AI services in the Pipecat ecosystem" ---- - -Pipecat provides a complete ecosystem of client SDKs, developer tools, and AI service integrations to build voice and multimodal applications for any platform. - -## Client SDKs - -The client SDKs connect users to your bot via mobile or web applications. They handle real-time audio transport (using Daily WebRTC, SmallWebRTC, etc.) and provide built-in messaging and events to build responsive voice AI interfaces—tracking when your bot is speaking, what it's saying, and more. - -Build client applications for any platform with our official SDKs: - - - - Build web applications with vanilla JavaScript - - - Create React applications with hooks and components - - - Build mobile apps with React Native - - - Native iOS applications - - - Native Android applications - - - High-performance native applications - - - -## Tools & Frameworks - -### Pipecat CLI - -Command-line tool for scaffolding new projects, deploying to Pipecat Cloud, and monitoring live sessions. - - - Learn about scaffolding, deployment, and monitoring commands - - -### Pipecat Flows - -A conversation and context management library designed to help you handle complex, structured conversations with state management. - - - Build structured conversation flows - - -### Voice UI Kit - -Pre-built React components and custom hooks that accelerate building voice AI applications on top of the JavaScript and React SDKs. - - - Ready-to-use components for voice interfaces - - -### Tail - -A terminal dashboard for monitoring your Pipecat sessions in real-time with logs, conversations, metrics, and audio levels. - - - Real-time monitoring dashboard - - -## AI Services - -Pipecat is a modular system where you can plug in different AI services without changing your code. This flexibility is one of Pipecat's core strengths—swap Deepgram for Azure Speech, OpenAI for Anthropic, or Cartesia for ElevenLabs with minimal changes. - -The framework integrates with 70+ services across: - -- **Speech-to-Text (STT)** - Deepgram, Azure, Google, Whisper, and more -- **Language Models (LLM)** - OpenAI, Anthropic, Gemini, Groq, and more -- **Text-to-Speech (TTS)** - Cartesia, ElevenLabs, Azure, Google, and more -- **Vision** - Image and video analysis capabilities -- **Transports** - WebRTC, WebSockets, telephony providers -- **And more** - Image generation, memory systems, analytics - - - Browse the complete list of 70+ supported AI services - diff --git a/guides/features/pipecat-flows.mdx b/guides/features/pipecat-flows.mdx deleted file mode 100644 index 4035c5d8d..000000000 --- a/guides/features/pipecat-flows.mdx +++ /dev/null @@ -1,486 +0,0 @@ ---- -title: "Pipecat Flows" -description: "Learn how to create structured conversations using Pipecat's flow system" ---- - -## What is Pipecat Flows? - -Pipecat Flows is an add-on framework for Pipecat that allows you to build structured conversations in your AI applications. It enables you to define conversation paths while handling the complexities of state management and LLM interactions. - -Want to dive right in? Check out these examples: - - - - A great first Flow to show you the ropes - - - A simple, practical Flow example - - - -## How do Pipecat and Pipecat Flows work together? - -**Pipecat** defines the core capabilities of your bot. This includes the pipeline and processors which, at a minimum, enable your bot to: - -- Receive audio from a user -- Transcribe the user's input -- Run an LLM completion -- Convert the LLM response to audio -- Send audio back to the user - -**Pipecat Flows** complements Pipecat's core functionality by providing structure to a conversation, managing context and tools as the conversation progresses from one state to another. This is separate from the core pipeline, allowing you to separate conversation logic from core pipeline mechanics. - -## When to Use Pipecat Flows? - -Pipecat Flows is best suited for use cases where: - -- **You need precise control** over how a conversation progresses through specific steps -- **Your bot handles complex tasks** that can be broken down into smaller, manageable pieces -- **You want to improve LLM accuracy** by focusing the model on one specific task at a time instead of managing multiple responsibilities simultaneously - -This approach addresses a common problem: traditional methods often use large, monolithic prompts with many tools available at once, leading to hallucinations and lower accuracy. - -Pipecat Flows solves this by: - -- **Breaking complex tasks into focused steps** - Each node has a clear, single purpose -- **Providing relevant tools only when needed** - Functions are available only in the appropriate context -- **Giving clear, specific instructions** - Task messages focus the LLM on exactly what to do next - -## Technical Overview - -Pipecat Flows represents a conversation as a graph, where each step of the conversation is represented by a node. Nodes are of type `NodeConfig`, and may contain the following properties: - -- `name`: The name of the node; used as a reference to transition to the node. -- `role_message`: A `str` defining the bot's role/personality. Sent as the LLM's system instruction and persists across transitions until changed. Typically set once in the initial node. -- `task_messages`: A list of message `dicts` defining the current node's objectives. -- `functions`: A list of function call definitions and their corresponding handlers. -- `pre_actions`: Actions to execute before LLM inference. Actions run once upon transitioning to a node. -- `post_actions`: Actions to execute after LLM inference. Actions run once after the node's initial LLM inference. -- `context_strategy`: Strategy for updating context during transitions. The default behavior is to append messages to the context. -- `respond_immediately`: Whether to run LLM inference as soon as the node is set. The default is True. - - - The only required field is `task_messages`, as your bot always needs a prompt - to advance the conversation. - - -Now that we've defined the structure of a node, let's look at the components that make up a node. - -### Messages - -Messages define what your bot should do and how it should behave at each node in your conversation flow. - -#### Message Types - -There are two types of messages you can configure: - -**Role Message** (Optional) -Defines your bot's personality, tone, and overall behavior as a plain string. This is sent as the LLM's system instruction and persists across node transitions until a new node explicitly sets it again. Typically set once in the initial node. - -**Task Messages** (Required) -Define the specific objective your bot should accomplish in the current node. These messages focus the LLM on the immediate task at hand, such as asking a specific question or processing particular information. - -#### Message Format - -The role message is a plain string, while task messages use OpenAI format as a list of `dicts`: - -```python -"role_message": "You are an inquisitive child. Use very simple language. Ask simple questions. You must ALWAYS use one of the available functions to progress the conversation. Your responses will be converted to audio. Avoid outputting special characters and emojis.", -"task_messages": [ - { - "role": "system", - "content": "Say 'Hello world' and ask what is the user's favorite color.", - } -], -``` - -#### Cross-Provider Compatibility - -Task messages use Pipecat's default OpenAI message format and are automatically translated to work with your chosen LLM provider. The `role_message` is sent as the LLM's system instruction via `LLMUpdateSettingsFrame`, which is handled by each provider's implementation. - -### Functions - -Functions in Pipecat Flows serve two key purposes: - -1. **Process data** by interfacing with external systems and APIs to read or write information -2. **Progress the conversation** by transitioning between nodes in your flow - -#### How Functions Work - -When designing your nodes, clearly define the task in the `task_messages` and reference the available functions. The LLM will use these functions to complete the task and signal when it's ready to move forward. - -For example, if your node's job is to collect a user's favorite color: - -1. The LLM asks the question -2. The user provides their answer -3. The LLM calls the function with the answer -4. The function processes the data and determines the next node - -#### Function Definition - -Flows provides a universal `FlowsFunctionSchema` that works across all LLM providers: - -```python -from pipecat_flows import FlowsFunctionSchema - -record_favorite_color_func = FlowsFunctionSchema( - name="record_favorite_color_func", - description="Record the color the user said is their favorite.", - required=["color"], - handler=record_favorite_color_and_set_next_node, - properties={"color": {"type": "string"}}, -) -``` - -#### Function Handlers - -Each function has a corresponding `handler` where you implement your application logic and specify the next node: - -```python -async def record_favorite_color_and_set_next_node( - args: FlowArgs, flow_manager: FlowManager -) -> tuple[str, NodeConfig]: - """Function handler that records the color then sets the next node. - - Here "record" means print to the console, but any logic could go here: - Write to a database, make an API call, etc. - """ - print(f"Your favorite color is: {args['color']}") - return args["color"], create_end_node() -``` - -#### Handler Return Values - -Function handlers return a tuple containing: - -- **Result**: Data provided to the LLM for context in subsequent completions, or `None`. This can be any serializable value — a string, dict, etc. -- **Next Node**: The `NodeConfig` for Flows to transition to next, or `None` - -Some handlers may not want to transition conversational state, in which case you can return `None` for the next node. Other handlers may _only_ want to transition conversational state without doing other work, in which case you can return `None` for the result. - -#### Direct Functions - -For more concise code, you can optionally use Direct Functions where the function definition and handler are combined in a single function. The function signature and docstring are automatically used to generate the function schema: - -```python -async def record_favorite_color( - flow_manager: FlowManager, - color: str -) -> tuple[FlowResult, NodeConfig]: - """Record the color the user said is their favorite. - - Args: - color: The user's favorite color. - """ - print(f"Your favorite color is: {color}") - return color, create_end_node() - -# Use directly in NodeConfig -node_config = { - "functions": [record_favorite_color] -} -``` - -This approach eliminates the need for separate `FlowsFunctionSchema` definitions while maintaining the same functionality. - -To control interruption behavior, use the `@flows_direct_function` decorator: - -```python -from pipecat_flows import flows_direct_function - -@flows_direct_function(cancel_on_interruption=False) -async def long_running_lookup( - flow_manager: FlowManager, - order_id: str -) -> tuple[FlowResult, NodeConfig]: - """Look up an order that should not be cancelled if the user speaks. - - Args: - order_id: The order ID to look up. - """ - order = await db.get_order(order_id) - return {"status": "success"}, create_order_node(order) -``` - -### Actions - -Actions allow you to execute custom functionality at specific points in your conversation flow, giving you precise control over timing and sequencing. - -#### Action Types - -- `pre_actions` execute immediately when transitioning to a new node, _before_ the LLM inference begins. -- `post_actions` execute after the LLM inference completes and any TTS has finished speaking. - -#### Built-in Actions - -Pipecat Flows includes several ready-to-use actions for common scenarios: - -- **`tts_say`**: Speak a phrase immediately (useful for "please wait" messages) - -```python -"pre_actions": [ - { - "type": "tts_say", - "text": "Please hold while I process your request..." - } -] -``` - -- **`end_conversation`**: Gracefully terminate the conversation - -```python -"post_actions": [ - { - "type": "end_conversation", - "text": "Thank you for your time!" - } -] -``` - -- **`function`**: Execute a custom function at the specified timing - -```python -"post_actions": [ - { - "type": "function", - "handler": end_conversation_handler - } -] -``` - -#### Custom Actions - -You can define your own actions to handle specific business logic or integrations. In most cases, consider using a **function action** first, as it executes at the expected time in the pipeline. - -Register custom action handlers using `register_action()`: - -```python -async def notify_slack(action: dict, flow_manager: FlowManager): - channel = action.get("channel", "#general") - await slack_client.post_message(channel=channel, text=action["text"]) - -flow_manager.register_action("notify_slack", notify_slack) -``` - -Then use it in your node configuration: - -```python -"pre_actions": [ - {"type": "notify_slack", "channel": "#support", "text": "Session started"} -] -``` - -Custom actions give you complete flexibility to execute any functionality your application needs, but require careful timing considerations. - -#### Action Timing - -The execution order ensures predictable behavior: - -1. **Pre-actions** run first upon node entry (in the order they are defined) -2. **LLM inference** processes the node's messages and functions -3. **TTS** speaks the LLM's response -4. **Post-actions** run after TTS completes (in the order they are defined) - -This timing guarantees that actions execute in the correct sequence, such as ensuring the bot finishes speaking before ending the conversation. Note that custom actions may not follow this predictable timing, which is another reason to prefer function actions when possible. - -### Context Strategy - -Flows provides three built-in ways to manage conversation context as you move between nodes: - -#### Strategy Types - -1. **APPEND** (Default): New node messages are added to the existing context, preserving the full conversation history. The context grows as the conversation progresses. - -2. **RESET**: The context is cleared and replaced with only the new node's messages. Useful when previous conversation history is no longer relevant or to reduce context window size. - -3. **RESET_WITH_SUMMARY**: The context is cleared but includes an AI-generated summary of the previous conversation along with the new node's messages. Helps reduce context size while preserving key information. - -#### When to Use Each Strategy - -- Use **APPEND** when full conversation history is important for context -- Use **RESET** when starting a new topic or when previous context might confuse the current task -- Use **RESET_WITH_SUMMARY** for long conversations where you need to preserve key points but reduce context size - -#### Configuration Examples - -Context strategies can be defined globally in the FlowManager constructor: - -```python -from pipecat_flows import ContextStrategy, ContextStrategyConfig - -# Global strategy configuration -flow_manager = FlowManager( - task=task, - llm=llm, - context_aggregator=context_aggregator, - context_strategy=ContextStrategyConfig( - strategy=ContextStrategy.APPEND, - ) -) -``` - -Or on a per-node basis: - -```python -# Per-node strategy configuration -node_config = { - "task_messages": [...], - "functions": [...], - "context_strategy": ContextStrategyConfig( - strategy=ContextStrategy.RESET_WITH_SUMMARY, - summary_prompt="Provide a concise summary of the customer's order details and preferences." - ) -} -``` - -### Respond Immediately - -For each node in the conversation, you can decide whether the LLM should respond immediately upon entering the node (the default behavior) or whether the LLM should wait for the user to speak first before responding. You do this using the `respond_immediately` field. - - - `respond_immediately=False` may be particularly useful in the very first node, - especially in outbound-calling cases where the user has to first answer the - phone to trigger the conversation. - - -```python -NodeConfig( - task_messages=[ - { - "role": "system", - "content": "Warmly greet the customer and ask how many people are in their party. This is your only job for now; if the customer asks for something else, politely remind them you can't do it.", - } - ], - respond_immediately=False, - # ... other fields -) -``` - - - Keep in mind that if you specify `respond_immediately=False`, the user may not - be aware of the conversational task at hand when entering the node (the bot - hasn't told them yet). While it's always important to have guardrails in your - node messages to keep the conversation on topic, letting the user speak first - makes it even more so. - - -## Initialization - -Initialize your flow by creating a `FlowManager` instance and calling `initialize()` to start the conversation. - -First, create the FlowManager: - -```python -flow_manager = FlowManager( - task=task, # PipelineTask - llm=llm, # LLMService - context_aggregator=context_aggregator, # Context aggregator - transport=transport, # Transport -) -``` - -Then, initialize by passing the first `NodeConfig` into the `initialize()` method: - -```python -@transport.event_handler("on_client_connected") -async def on_client_connected(transport, client): - logger.info(f"Client connected") - # Kick off the conversation. - await flow_manager.initialize(create_initial_node()) -``` - -## Cross-Node Logic - -### State - -Pipecat Flows supports cross-node state through the `flow_manager.state` dictionary. This persistent storage lets you share data across nodes throughout the entire conversation: - -```python -async def record_favorite_color_and_set_next_node( - args: FlowArgs, flow_manager: FlowManager -) -> tuple[str, NodeConfig]: - """Function handler that records the color then sets the next node. - - Here "record" means print to the console, but any logic could go here; - Write to a database, make an API call, etc. - """ - flow_manager.state["color"] = args["color"] # Cross-node state setting - print(f"Your favorite color is: {args['color']}") - return args["color"], create_end_node() -``` - -### Functions - -Pipecat Flows supports defining functions that are available across all nodes in your flow. They're defined in the same way as node-specific functions, but are passed into the FlowManager at initialization: - -```python -flow_manager = FlowManager( - task=task, - llm=llm, - context_aggregator=context_aggregator, - transport=transport, - global_functions=[global_function_1, global_function_2], # Cross-node functions -) -``` - -## Usage Example - -Here's an example that ties together all the concepts we've covered: - -```python -def create_initial_node() -> NodeConfig: - """Create the initial node of the flow. - - Define the bot's role and task for the node as well as the function for it to call. - The function call includes a handler which provides the function call result to - Pipecat and then transitions to the next node. - """ - record_favorite_color_func = FlowsFunctionSchema( - name="record_favorite_color_func", - description="Record the color the user said is their favorite.", - required=["color"], - handler=record_favorite_color_and_set_next_node, - properties={"color": {"type": "string"}}, - ) - - return { - "name": "initial", - "role_message": "You are an inquisitive child. Use very simple language. Ask simple questions. You must ALWAYS use one of the available functions to progress the conversation. Your responses will be converted to audio. Avoid outputting special characters and emojis.", - "task_messages": [ - { - "role": "system", - "content": "Say 'Hello world' and ask what is the user's favorite color.", - } - ], - "functions": [record_favorite_color_func], - } -``` - -## Next Steps - -Now that you understand the basics of Pipecat Flows, explore the reference docs and more examples: - - - - Complete API reference and technical details - - - Explore more complex examples and use cases - - diff --git a/guides/telephony/images/twilio-webhook-setup.png b/guides/telephony/images/twilio-webhook-setup.png deleted file mode 100644 index 24224d9b3..000000000 Binary files a/guides/telephony/images/twilio-webhook-setup.png and /dev/null differ diff --git a/deployment/pipecat-cloud/images/agent-anatomy.png b/images/agent-anatomy.png similarity index 100% rename from deployment/pipecat-cloud/images/agent-anatomy.png rename to images/agent-anatomy.png diff --git a/images/allow-krisp.png b/images/allow-krisp.png deleted file mode 100644 index b7e88a363..000000000 Binary files a/images/allow-krisp.png and /dev/null differ diff --git a/deployment/pipecat-cloud/images/architecture-2.png b/images/architecture-2.png similarity index 100% rename from deployment/pipecat-cloud/images/architecture-2.png rename to images/architecture-2.png diff --git a/images/checks-passed.png b/images/checks-passed.png deleted file mode 100644 index 3303c7736..000000000 Binary files a/images/checks-passed.png and /dev/null differ diff --git a/deployment/images/deployment-1.png b/images/deployment-1.png similarity index 100% rename from deployment/images/deployment-1.png rename to images/deployment-1.png diff --git a/deployment/images/deployment-fly.png b/images/deployment-fly.png similarity index 100% rename from deployment/images/deployment-fly.png rename to images/deployment-fly.png diff --git a/images/krisp-portal.png b/images/krisp-portal.png deleted file mode 100644 index 4547d6724..000000000 Binary files a/images/krisp-portal.png and /dev/null differ diff --git a/deployment/images/modal.jpg b/images/modal.jpg similarity index 100% rename from deployment/images/modal.jpg rename to images/modal.jpg diff --git a/images/open-anyway-krisp.png b/images/open-anyway-krisp.png deleted file mode 100644 index b21aa5d23..000000000 Binary files a/images/open-anyway-krisp.png and /dev/null differ diff --git a/images/pipecat-architecture.png b/images/pipecat-architecture.png new file mode 100644 index 000000000..a5bcf7256 Binary files /dev/null and b/images/pipecat-architecture.png differ diff --git a/deployment/pipecat-cloud/images/pipecatcloud-overview.png b/images/pipecatcloud-overview.png similarity index 100% rename from deployment/pipecat-cloud/images/pipecatcloud-overview.png rename to images/pipecatcloud-overview.png diff --git a/deployment/pipecat-cloud/images/scaling-cold-starts.png b/images/scaling-cold-starts.png similarity index 100% rename from deployment/pipecat-cloud/images/scaling-cold-starts.png rename to images/scaling-cold-starts.png diff --git a/deployment/pipecat-cloud/images/scaling-max-instances.png b/images/scaling-max-instances.png similarity index 100% rename from deployment/pipecat-cloud/images/scaling-max-instances.png rename to images/scaling-max-instances.png diff --git a/deployment/pipecat-cloud/images/scaling-min-instances.png b/images/scaling-min-instances.png similarity index 100% rename from deployment/pipecat-cloud/images/scaling-min-instances.png rename to images/scaling-min-instances.png diff --git a/deployment/pipecat-cloud/images/scaling-pools.png b/images/scaling-pools.png similarity index 100% rename from deployment/pipecat-cloud/images/scaling-pools.png rename to images/scaling-pools.png diff --git a/deployment/images/session-api.png b/images/session-api.png similarity index 100% rename from deployment/images/session-api.png rename to images/session-api.png diff --git a/deployment/pipecat-cloud/images/telnyx-ws-flow.png b/images/telnyx-ws-flow.png similarity index 100% rename from deployment/pipecat-cloud/images/telnyx-ws-flow.png rename to images/telnyx-ws-flow.png diff --git a/deployment/pipecat-cloud/images/twilio-ws-flow.png b/images/twilio-ws-flow.png similarity index 100% rename from deployment/pipecat-cloud/images/twilio-ws-flow.png rename to images/twilio-ws-flow.png diff --git a/overview/clients.mdx b/overview/clients.mdx new file mode 100644 index 000000000..aa15a526b --- /dev/null +++ b/overview/clients.mdx @@ -0,0 +1,75 @@ +--- +title: "Pipecat Clients" +description: "Client SDKs for connecting users to Pipecat agents via web and mobile." +--- + +Pipecat Clients are a family of SDKs that connect users to your Pipecat agents through web and mobile applications. They handle real-time audio/video transport, session management, and provide messaging and events for building responsive voice AI interfaces. + +## Supported Platforms + + + + Web applications with vanilla JavaScript + + + React applications with hooks and components + + + Cross-platform mobile apps + + + Native iOS applications + + + Native Android applications + + + High-performance native applications + + + +## What the SDKs Provide + +All Pipecat Client SDKs include: + +- **Transport management** — WebRTC and WebSocket connections to your Pipecat pipeline +- **Media handling** — Microphone, camera, and speaker device management +- **Session lifecycle** — Connect, disconnect, reconnect, and error handling +- **Messaging** — Send custom messages to your bot and receive responses +- **Events** — Callbacks for bot state changes, transcriptions, and more + +## Next Steps + + + + Introduction to client-side development with Pipecat. + + + Pre-built React components for voice AI interfaces. + + diff --git a/overview/cloud.mdx b/overview/cloud.mdx new file mode 100644 index 000000000..349aa9da5 --- /dev/null +++ b/overview/cloud.mdx @@ -0,0 +1,63 @@ +--- +title: "Pipecat Cloud" +description: "Managed hosting platform for deploying and scaling Pipecat agents." +--- + +[Pipecat Cloud](https://pipecat.daily.co) is a managed platform for deploying and scaling Pipecat agents in production. It handles infrastructure, scaling, and operations so you can focus on building your agent. + + + + + +## Key Capabilities + +- **One-command deploy**: Package and deploy agents with `pipecat cloud deploy` +- **Auto-scaling**: Scale from zero to thousands of concurrent sessions +- **Built-in WebRTC**: Daily WebRTC transport included, no separate infrastructure needed +- **Secrets management**: Securely store and inject API keys and credentials +- **Session management**: Start, stop, and monitor agent sessions via REST API or SDK +- **Logging & monitoring**: Built-in logging with Datadog integration support +- **Global regions**: Deploy close to your users for lowest latency + +## How It Works + + + + Write a Pipecat pipeline as you normally would, using any supported services. + + + Use the CLI to build and deploy your agent image to Pipecat Cloud. + ```bash + pipecat cloud deploy + ``` + + + Use the REST API or Python SDK to start agent sessions on demand. + ```bash + curl --request POST \ + --url https://api.pipecat.daily.co/v1/public/{agentName}/start \ + --header 'Authorization: Bearer ' \ + --header 'Content-Type: application/json' \ +``` + + + + +## Next Steps + + + + Set up your account and deploy your first agent. + + + Learn about accounts, agent images, secrets, and scaling. + + diff --git a/overview/flows.mdx b/overview/flows.mdx new file mode 100644 index 000000000..ff5bad492 --- /dev/null +++ b/overview/flows.mdx @@ -0,0 +1,51 @@ +--- +title: "Pipecat Flows" +description: "Build structured conversations for your voice AI agents." +--- + +Pipecat Flows is a framework for building structured conversations in your AI applications. It lets you define conversation paths as a graph of nodes, where each node focuses the LLM on a single task with only the tools it needs. + +This approach solves a common problem: monolithic prompts with many tools lead to hallucinations and lower accuracy. Pipecat Flows breaks complex tasks into focused steps with clear, specific instructions. + +## When to Use Pipecat Flows + +Pipecat Flows is best suited for use cases where: + +- **You need precise control** over how a conversation progresses through specific steps +- **Your bot handles complex tasks** that can be broken down into smaller, manageable pieces +- **You want to improve LLM accuracy** by focusing the model on one specific task at a time instead of managing multiple responsibilities simultaneously + +## How Pipecat and Pipecat Flows Work Together + +**Pipecat** defines the core capabilities of your bot — the pipeline and processors that enable receiving audio, transcribing input, running LLM completions, converting responses to audio, and sending audio back to the user. + +**Pipecat Flows** complements Pipecat by providing structure to a conversation, managing context and tools as the conversation progresses from one state to another. This is separate from the core pipeline, allowing you to separate conversation logic from pipeline mechanics. + +## Ready to Build? + + + + Build your first conversation flow in minutes + + + Complete reference docs and technical details + + + Explore real-world examples and use cases + + + Source code, issues, and contributions + + diff --git a/overview/introduction.mdx b/overview/introduction.mdx new file mode 100644 index 000000000..6639ffd3a --- /dev/null +++ b/overview/introduction.mdx @@ -0,0 +1,83 @@ +--- +title: "Introduction" +description: "Build voice and multimodal AI agents with the Pipecat ecosystem." +--- + +Pipecat is an open source ecosystem for building voice and multimodal AI agents. It provides everything you need to create, deploy, and scale real-time AI applications that can see, hear, and speak. + +## The Pipecat Ecosystem + + + + Open source Python framework for building voice and multimodal AI pipelines. + Orchestrate 100+ AI services with ultra-low latency. + + + Client SDKs for JavaScript, React, React Native, iOS, Android, and C++. + Connect users to your agents via web and mobile. + + + Build structured conversations with defined paths and state management. + Break complex tasks into focused steps for better LLM accuracy. + + + Managed hosting platform for deploying and scaling Pipecat agents in + production with built-in infrastructure. + + + +## How It All Fits Together + +A typical Pipecat application has a **client** and a **server**. The client connects users via browser, mobile app, or phone. The server runs a Pipecat pipeline that processes audio, runs LLMs, and generates speech in real-time. Your hosting provider — Pipecat Cloud or self-hosted — manages deployment and scales instances to handle concurrent sessions. + +![Pipecat architecture](/images/pipecat-architecture.png) + +## Getting Started + + + + Follow the [Quickstart](/pipecat/get-started/quickstart) to create a voice + AI bot in 5 minutes. + + + Work through the [Learning Pipecat](/pipecat/learn/overview) guide to + understand pipelines, processors, and transports. + + + Connect users to your agent with a [Client SDK](/client/introduction) for + web or mobile. + + + Ship to production with [Pipecat Cloud](/pipecat-cloud/introduction) or + [self-host](/pipecat/deployment/overview) on your own infrastructure. + + + +## Community + + + + Connect with other developers, share projects, and get support. + + + Explore the source code, open issues, and contribute. + + diff --git a/overview/pipecat.mdx b/overview/pipecat.mdx new file mode 100644 index 000000000..3e99484a5 --- /dev/null +++ b/overview/pipecat.mdx @@ -0,0 +1,103 @@ +--- +title: "Pipecat" +description: "Open source Python framework for building voice and multimodal AI agents." +--- + +Pipecat is an open source Python framework for building voice and multimodal AI agents. It orchestrates AI services, network transports, and audio processing to enable ultra-low latency conversations that feel natural and responsive. + + + Want to dive right in? Build and run your first Pipecat application + + +## What You Can Build + + + + Natural, real-time conversations with AI using speech recognition and + synthesis + + + + Connect to your agent via phone for support, intake, and customer service + interactions + + + + Applications that combine voice, video, images, and text for rich interactions + + + + Storytelling experiences and social companions that engage users + + + + Voice-controlled games and interactive experiences with real-time AI responses + + + + Build structured conversations with Pipecat Flows to complete tasks and improve LLM accuracy + + + +## How It Works + +Pipecat orchestrates AI services in a **pipeline**, which is a series of processors that handle real-time audio, text, and video frames with ultra-low latency. + +Here's what happens in a typical voice conversation: + +1. **Transport** receives audio from the user (browser, phone, etc.) +2. **Speech Recognition** converts speech to text in real-time +3. **LLM** generates intelligent responses based on context +4. **Speech Synthesis** converts responses back to natural speech +5. **Transport** streams audio back to the user + +In most cases, the entire round-trip interaction happens between 500-800ms, creating a natural conversation experience for the user. + +Pipecat Overview + +## Ready to Build? + + + + Build and run your first Pipecat application + + + Learn about pipelines, processors, transports, and context management + + + Browse the complete list of 100+ AI service integrations + + + Deploy to Pipecat Cloud or self-host on your own infrastructure + + diff --git a/deployment/pipecat-cloud/fundamentals/accounts-and-organizations.mdx b/pipecat-cloud/fundamentals/accounts-and-organizations.mdx similarity index 100% rename from deployment/pipecat-cloud/fundamentals/accounts-and-organizations.mdx rename to pipecat-cloud/fundamentals/accounts-and-organizations.mdx diff --git a/deployment/pipecat-cloud/fundamentals/active-sessions.mdx b/pipecat-cloud/fundamentals/active-sessions.mdx similarity index 100% rename from deployment/pipecat-cloud/fundamentals/active-sessions.mdx rename to pipecat-cloud/fundamentals/active-sessions.mdx diff --git a/deployment/pipecat-cloud/fundamentals/agent-images.mdx b/pipecat-cloud/fundamentals/agent-images.mdx similarity index 98% rename from deployment/pipecat-cloud/fundamentals/agent-images.mdx rename to pipecat-cloud/fundamentals/agent-images.mdx index 5ff240d88..3eca0ad4b 100644 --- a/deployment/pipecat-cloud/fundamentals/agent-images.mdx +++ b/pipecat-cloud/fundamentals/agent-images.mdx @@ -52,7 +52,7 @@ For example, your Dockerfile might look like this: - + ## Using an official base image @@ -199,7 +199,7 @@ We recommend using FastAPI to create this route. Please refer to the base image ## Building the image - If you're using [cloud builds](/deployment/pipecat-cloud/guides/cloud-builds), + If you're using [cloud builds](/pipecat-cloud/guides/cloud-builds), you only need a Dockerfile in your project — the CLI builds and deploys your image automatically. The section below applies if you're building and pushing images to your own container registry. diff --git a/deployment/pipecat-cloud/fundamentals/deploy.mdx b/pipecat-cloud/fundamentals/deploy.mdx similarity index 99% rename from deployment/pipecat-cloud/fundamentals/deploy.mdx rename to pipecat-cloud/fundamentals/deploy.mdx index ff91639eb..a0f1ced20 100644 --- a/deployment/pipecat-cloud/fundamentals/deploy.mdx +++ b/pipecat-cloud/fundamentals/deploy.mdx @@ -11,7 +11,7 @@ Deploy your agent to Pipecat Cloud with a single command: pipecat cloud deploy ``` -The CLI builds your image in the cloud from your project's Dockerfile and deploys it - no container registry setup needed. For more details on how cloud builds work, see the [Cloud Builds guide](/deployment/pipecat-cloud/guides/cloud-builds). +The CLI builds your image in the cloud from your project's Dockerfile and deploys it - no container registry setup needed. For more details on how cloud builds work, see the [Cloud Builds guide](/pipecat-cloud/guides/cloud-builds). ### Deploying to a specific region diff --git a/deployment/pipecat-cloud/fundamentals/error-codes.mdx b/pipecat-cloud/fundamentals/error-codes.mdx similarity index 100% rename from deployment/pipecat-cloud/fundamentals/error-codes.mdx rename to pipecat-cloud/fundamentals/error-codes.mdx diff --git a/deployment/pipecat-cloud/fundamentals/logging.mdx b/pipecat-cloud/fundamentals/logging.mdx similarity index 97% rename from deployment/pipecat-cloud/fundamentals/logging.mdx rename to pipecat-cloud/fundamentals/logging.mdx index 1e4968f72..2f0252f63 100644 --- a/deployment/pipecat-cloud/fundamentals/logging.mdx +++ b/pipecat-cloud/fundamentals/logging.mdx @@ -10,7 +10,7 @@ description: "Obtaining logs and metrics from your agents and sessions" ## Configuring log level -You can control the Pipecat logging level for your deployed agents using the `PIPECAT_LOG_LEVEL` environment variable. This can be set as a [secret](/deployment/pipecat-cloud/fundamentals/secrets) or directly in your deployment configuration. +You can control the Pipecat logging level for your deployed agents using the `PIPECAT_LOG_LEVEL` environment variable. This can be set as a [secret](/pipecat-cloud/fundamentals/secrets) or directly in your deployment configuration. Available log levels: diff --git a/deployment/pipecat-cloud/fundamentals/scaling.mdx b/pipecat-cloud/fundamentals/scaling.mdx similarity index 98% rename from deployment/pipecat-cloud/fundamentals/scaling.mdx rename to pipecat-cloud/fundamentals/scaling.mdx index 06a90bd8c..302f9a458 100644 --- a/deployment/pipecat-cloud/fundamentals/scaling.mdx +++ b/pipecat-cloud/fundamentals/scaling.mdx @@ -29,7 +29,7 @@ Making a deployment to Pipecat Cloud creates a managed pool of agent instances t - Maintains optimal performance through auto-scaling - + Developers can configure the upper and lower limit of a deployment's instance pool, providing a cost-effective way to handle varying loads. @@ -43,7 +43,7 @@ Developers can configure the upper and lower limit of a deployment's instance po - Defaults to `0` if unspecified - + Developers specify a `min-agents` configuration to determines the number of agent instances that should be kept warm in their deployment pool. A warm instance is kept running and can immediately be used to serve an active session. @@ -72,7 +72,7 @@ pipecat cloud deploy [agent-name] --min-agents 1 - Returns HTTP 429 when pool capacity is reached - + @@ -129,7 +129,7 @@ A cold start may occur when an active session request is made and no warm agent Cold starts require additional time to provision the instance and load the agent instances, which may result in a delay for the user. To minimize cold starts, you can configure your pool to maintain a minimum number of warm agent instances at all times. - + Pipecat Cloud aims to mitigate cold starts as much as possible through [auto-scaling](#auto-scaling). diff --git a/deployment/pipecat-cloud/fundamentals/secrets.mdx b/pipecat-cloud/fundamentals/secrets.mdx similarity index 98% rename from deployment/pipecat-cloud/fundamentals/secrets.mdx rename to pipecat-cloud/fundamentals/secrets.mdx index 647086006..a4569bae0 100644 --- a/deployment/pipecat-cloud/fundamentals/secrets.mdx +++ b/pipecat-cloud/fundamentals/secrets.mdx @@ -135,7 +135,7 @@ pipecat cloud secrets delete my-secrets Image pull secrets are only needed when deploying from your own container registry. If you're using [cloud - builds](/deployment/pipecat-cloud/guides/cloud-builds), you can skip this + builds](/pipecat-cloud/guides/cloud-builds), you can skip this section. diff --git a/deployment/pipecat-cloud/guides/capacity-planning.mdx b/pipecat-cloud/guides/capacity-planning.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/capacity-planning.mdx rename to pipecat-cloud/guides/capacity-planning.mdx diff --git a/deployment/pipecat-cloud/guides/ci-with-github-actions.mdx b/pipecat-cloud/guides/ci-with-github-actions.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/ci-with-github-actions.mdx rename to pipecat-cloud/guides/ci-with-github-actions.mdx diff --git a/deployment/pipecat-cloud/guides/cloud-builds.mdx b/pipecat-cloud/guides/cloud-builds.mdx similarity index 89% rename from deployment/pipecat-cloud/guides/cloud-builds.mdx rename to pipecat-cloud/guides/cloud-builds.mdx index 5306edeaf..c7004c2ec 100644 --- a/deployment/pipecat-cloud/guides/cloud-builds.mdx +++ b/pipecat-cloud/guides/cloud-builds.mdx @@ -7,7 +7,7 @@ Pipecat Cloud Build lets you deploy agents directly from your source code. Inste ## Prerequisites -- A [Pipecat Cloud account](/deployment/pipecat-cloud/fundamentals/accounts-and-organizations) with an active organization +- A [Pipecat Cloud account](/pipecat-cloud/fundamentals/accounts-and-organizations) with an active organization - The [Pipecat CLI](/cli/overview) installed and authenticated (`pipecat cloud auth login`) - A Python project using uv, pip, or poetry @@ -98,7 +98,7 @@ In CI/CD mode, the CLI will: ``` - For more comprehensive CI/CD setup including image tagging and monorepo support, see the [CI with GitHub Actions](/deployment/pipecat-cloud/guides/ci-with-github-actions) guide. + For more comprehensive CI/CD setup including image tagging and monorepo support, see the [CI with GitHub Actions](/pipecat-cloud/guides/ci-with-github-actions) guide. ## Build management @@ -152,13 +152,13 @@ See the [deploy command reference](/cli/cloud/deploy#configuration-file-pcc-depl ## Next steps - + Learn about base images, project structure, and custom Dockerfiles. - + Set up automated deployments with GitHub Actions. - + Use your own container registry for advanced image management. diff --git a/deployment/pipecat-cloud/guides/container-registries/aws-ecr.mdx b/pipecat-cloud/guides/container-registries/aws-ecr.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/container-registries/aws-ecr.mdx rename to pipecat-cloud/guides/container-registries/aws-ecr.mdx diff --git a/deployment/pipecat-cloud/guides/container-registries/docker-hub.mdx b/pipecat-cloud/guides/container-registries/docker-hub.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/container-registries/docker-hub.mdx rename to pipecat-cloud/guides/container-registries/docker-hub.mdx diff --git a/deployment/pipecat-cloud/guides/container-registries/gcp-artifact-registry.mdx b/pipecat-cloud/guides/container-registries/gcp-artifact-registry.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/container-registries/gcp-artifact-registry.mdx rename to pipecat-cloud/guides/container-registries/gcp-artifact-registry.mdx diff --git a/deployment/pipecat-cloud/guides/container-registries/overview.mdx b/pipecat-cloud/guides/container-registries/overview.mdx similarity index 97% rename from deployment/pipecat-cloud/guides/container-registries/overview.mdx rename to pipecat-cloud/guides/container-registries/overview.mdx index adab84c30..be4cf7c10 100644 --- a/deployment/pipecat-cloud/guides/container-registries/overview.mdx +++ b/pipecat-cloud/guides/container-registries/overview.mdx @@ -6,7 +6,7 @@ description: "Deploy Pipecat Cloud agents from private container registries" Don't need your own registry? [Cloud - builds](/deployment/pipecat-cloud/guides/cloud-builds) let you deploy directly + builds](/pipecat-cloud/guides/cloud-builds) let you deploy directly from source with `pipecat cloud deploy` — no registry setup required. diff --git a/deployment/pipecat-cloud/guides/daily-webrtc.mdx b/pipecat-cloud/guides/daily-webrtc.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/daily-webrtc.mdx rename to pipecat-cloud/guides/daily-webrtc.mdx diff --git a/deployment/pipecat-cloud/guides/krisp-viva.mdx b/pipecat-cloud/guides/krisp-viva.mdx similarity index 97% rename from deployment/pipecat-cloud/guides/krisp-viva.mdx rename to pipecat-cloud/guides/krisp-viva.mdx index 8a4fe02f0..914f7bb22 100644 --- a/deployment/pipecat-cloud/guides/krisp-viva.mdx +++ b/pipecat-cloud/guides/krisp-viva.mdx @@ -109,7 +109,7 @@ curl -X POST https://api.pipecat.daily.co/v1/agents/voice-starter \ }' ``` -See the [REST API reference](/deployment/pipecat-cloud/rest-reference/endpoint/agent-create) for more details. +See the [REST API reference](/pipecat-cloud/rest-reference/endpoint/agent-create) for more details. diff --git a/deployment/pipecat-cloud/guides/personal-access-tokens.mdx b/pipecat-cloud/guides/personal-access-tokens.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/personal-access-tokens.mdx rename to pipecat-cloud/guides/personal-access-tokens.mdx diff --git a/deployment/pipecat-cloud/guides/regions.mdx b/pipecat-cloud/guides/regions.mdx similarity index 86% rename from deployment/pipecat-cloud/guides/regions.mdx rename to pipecat-cloud/guides/regions.mdx index cb6e1118d..59c13cf4b 100644 --- a/deployment/pipecat-cloud/guides/regions.mdx +++ b/pipecat-cloud/guides/regions.mdx @@ -13,7 +13,7 @@ You can view all available regions using the CLI: pipecat cloud regions list ``` -Or via the [REST API](/deployment/pipecat-cloud/rest-reference/endpoint/regions-list). +Or via the [REST API](/pipecat-cloud/rest-reference/endpoint/regions-list). Available regions include: @@ -74,7 +74,7 @@ wss://eu-central.api.pipecat.daily.co/ws/twilio ## Setting a Default Region -You can specify a default region for your organization via the [REST API](/deployment/pipecat-cloud/rest-reference/endpoint/properties-update) or the [CLI](/cli/cloud/organizations#default-region). If you don't specify a region, resources are created in your organization's default region. +You can specify a default region for your organization via the [REST API](/pipecat-cloud/rest-reference/endpoint/properties-update) or the [CLI](/cli/cloud/organizations#default-region). If you don't specify a region, resources are created in your organization's default region. ## Deploying an Agent to a Region @@ -93,7 +93,7 @@ pipecat cloud secrets set my-agent-secrets \ Learn more about managing secrets in the - [Secrets](/deployment/pipecat-cloud/fundamentals/secrets) guide. + [Secrets](/pipecat-cloud/fundamentals/secrets) guide. ### Step 2: Create a Deployment Configuration @@ -135,5 +135,5 @@ Your application determines which regional agent to connect users to based on th ## Learn More -- [Deployments](/deployment/pipecat-cloud/fundamentals/deploy) - Comprehensive deployment guide -- [Secrets](/deployment/pipecat-cloud/fundamentals/secrets) - Managing secrets and credentials +- [Deployments](/pipecat-cloud/fundamentals/deploy) - Comprehensive deployment guide +- [Secrets](/pipecat-cloud/fundamentals/secrets) - Managing secrets and credentials diff --git a/deployment/pipecat-cloud/guides/session-api.mdx b/pipecat-cloud/guides/session-api.mdx similarity index 98% rename from deployment/pipecat-cloud/guides/session-api.mdx rename to pipecat-cloud/guides/session-api.mdx index 24f018e61..39571ea37 100644 --- a/deployment/pipecat-cloud/guides/session-api.mdx +++ b/pipecat-cloud/guides/session-api.mdx @@ -13,14 +13,14 @@ Requests are proxied through Pipecat Cloud to the specific bot instance handling ![Diagram of the deployment architecture of Session - API](../../images/session-api.png) + API](/images/session-api.png) To use the Session API: - [Start a session](/deployment/pipecat-cloud/fundamentals/active-sessions) + [Start a session](/pipecat-cloud/fundamentals/active-sessions) with your agent and capture the `sessionId` from the response. diff --git a/deployment/pipecat-cloud/guides/smart-turn.mdx b/pipecat-cloud/guides/smart-turn.mdx similarity index 98% rename from deployment/pipecat-cloud/guides/smart-turn.mdx rename to pipecat-cloud/guides/smart-turn.mdx index 1ec1267de..8d836b486 100644 --- a/deployment/pipecat-cloud/guides/smart-turn.mdx +++ b/pipecat-cloud/guides/smart-turn.mdx @@ -116,7 +116,7 @@ For more details on Smart Turn, see the following links: More details about the Pipecat Smart Turn integration diff --git a/deployment/pipecat-cloud/guides/telephony/daily-dial-in.mdx b/pipecat-cloud/guides/telephony/daily-dial-in.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/telephony/daily-dial-in.mdx rename to pipecat-cloud/guides/telephony/daily-dial-in.mdx diff --git a/deployment/pipecat-cloud/guides/telephony/daily-dial-out.mdx b/pipecat-cloud/guides/telephony/daily-dial-out.mdx similarity index 97% rename from deployment/pipecat-cloud/guides/telephony/daily-dial-out.mdx rename to pipecat-cloud/guides/telephony/daily-dial-out.mdx index 166a24c14..4e888207c 100644 --- a/deployment/pipecat-cloud/guides/telephony/daily-dial-out.mdx +++ b/pipecat-cloud/guides/telephony/daily-dial-out.mdx @@ -10,7 +10,7 @@ In this example, we use the `dialout_settings` array to pass one or more phone n If no `callerId` is provided, a random phone number will be used to make the call. To specify the caller ID, use the [phone number's - `id`](/guides/telephony/daily-phone-numbers#list-all-purchased-phone-numbers) + `id`](/pipecat/telephony/daily-phone-numbers#list-all-purchased-phone-numbers) as the `callerId`. diff --git a/deployment/pipecat-cloud/guides/telephony/exotel-websocket.mdx b/pipecat-cloud/guides/telephony/exotel-websocket.mdx similarity index 95% rename from deployment/pipecat-cloud/guides/telephony/exotel-websocket.mdx rename to pipecat-cloud/guides/telephony/exotel-websocket.mdx index db6fdb4bc..02d7f9226 100644 --- a/deployment/pipecat-cloud/guides/telephony/exotel-websocket.mdx +++ b/pipecat-cloud/guides/telephony/exotel-websocket.mdx @@ -7,7 +7,7 @@ description: "Using Exotel's WebSocket Transport for your Pipecat Cloud agents" This guide covers Pipecat Cloud-specific configuration for Exotel WebSocket integration. For a complete guide including dial-in, dial-out, and advanced features, see the [Exotel WebSocket Integration - guide](/guides/telephony/exotel-websockets). + guide](/pipecat/telephony/exotel-websockets). Native support for Exotel's WebSocket Transport with Pipecat Cloud allows you to connect your AI agents with Exotel's voice infrastructure. This integration enables your Pipecat bots to handle real phone calls using Exotel's Voice Streaming. @@ -91,7 +91,7 @@ If you deployed your agent to a specific region, use the regional WebSocket endp For example, for Europe: `wss://eu-central.api.pipecat.daily.co/ws/exotel?serviceHost=my-agent.my-org` -Learn more about [regional endpoints](/deployment/pipecat-cloud/guides/regions#regional-websocket-endpoints). +Learn more about [regional endpoints](/pipecat-cloud/guides/regions#regional-websocket-endpoints). @@ -126,4 +126,4 @@ To test your integration, simply dial your Exotel phone number from any phone. T ## Next Steps -For complete implementation details including dial-out, caller personalization, and advanced call control features, see the [Exotel WebSocket Integration guide](/guides/telephony/exotel-websockets). +For complete implementation details including dial-out, caller personalization, and advanced call control features, see the [Exotel WebSocket Integration guide](/pipecat/telephony/exotel-websockets). diff --git a/deployment/pipecat-cloud/guides/telephony/plivo-websocket.mdx b/pipecat-cloud/guides/telephony/plivo-websocket.mdx similarity index 96% rename from deployment/pipecat-cloud/guides/telephony/plivo-websocket.mdx rename to pipecat-cloud/guides/telephony/plivo-websocket.mdx index 53f4d589a..c18e71ce8 100644 --- a/deployment/pipecat-cloud/guides/telephony/plivo-websocket.mdx +++ b/pipecat-cloud/guides/telephony/plivo-websocket.mdx @@ -7,7 +7,7 @@ description: "Using Plivo's WebSocket Transport for your Pipecat Cloud agents" This guide covers Pipecat Cloud-specific configuration for Plivo WebSocket integration. For a complete guide including dial-in, dial-out, and advanced features, see the [Plivo WebSocket Integration - guide](/guides/telephony/plivo-websockets). + guide](/pipecat/telephony/plivo-websockets). Native support for Plivo's WebSocket Transport with Pipecat Cloud allows you to connect your AI agents with Plivo's voice infrastructure. This integration enables your Pipecat bots to handle real phone calls using Plivo's WebSocket streaming. @@ -91,7 +91,7 @@ If you deployed your agent to a specific region, use the regional WebSocket endp For example, for Europe: `wss://eu-central.api.pipecat.daily.co/ws/plivo?serviceHost=my-agent.my-org` -Learn more about [regional endpoints](/deployment/pipecat-cloud/guides/regions#regional-websocket-endpoints). +Learn more about [regional endpoints](/pipecat-cloud/guides/regions#regional-websocket-endpoints). @@ -149,4 +149,4 @@ To test your integration, simply dial your Plivo phone number from any phone. Th ## Next Steps -For complete implementation details including dial-out and advanced call control features, see the [Plivo WebSocket Integration guide](/guides/telephony/plivo-websockets). +For complete implementation details including dial-out and advanced call control features, see the [Plivo WebSocket Integration guide](/pipecat/telephony/plivo-websockets). diff --git a/deployment/pipecat-cloud/guides/telephony/telnyx-websocket.mdx b/pipecat-cloud/guides/telephony/telnyx-websocket.mdx similarity index 93% rename from deployment/pipecat-cloud/guides/telephony/telnyx-websocket.mdx rename to pipecat-cloud/guides/telephony/telnyx-websocket.mdx index c68d42ff3..a795496bd 100644 --- a/deployment/pipecat-cloud/guides/telephony/telnyx-websocket.mdx +++ b/pipecat-cloud/guides/telephony/telnyx-websocket.mdx @@ -7,7 +7,7 @@ description: "Using Telnyx's WebSocket Transport for your Pipecat Cloud agents" This guide covers Pipecat Cloud-specific configuration for Telnyx WebSocket integration. For a complete guide including dial-in, dial-out, custom parameters, and advanced features, see the [Telnyx WebSocket Integration - guide](/guides/telephony/telnyx-websockets). + guide](/pipecat/telephony/telnyx-websockets). Native support for Telnyx's WebSocket Transport with Pipecat Cloud allows you to connect your AI agents with Telnyx's voice infrastructure. This integration enables your Pipecat bots to handle real phone calls using Telnyx's WebSocket streaming. @@ -19,7 +19,7 @@ Pipecat Cloud implements Telnyx's bidirectional [Media Streaming protocol](https When Pipecat Cloud receives an incoming WebSocket connection from Telnyx, it processes the `connected` and `start` messages to initialize a new bot instance. All WebSocket messages are forwarded to your bot, including any custom parameters set in your TeXML. This allows your bot to leverage Telnyx's Call Control API for advanced call control - such as recording conversations, transferring to human agents, or implementing complex call flows. - + ## Prerequisites @@ -79,7 +79,7 @@ If you deployed your agent to a specific region, use the regional WebSocket endp For example, for Europe: `wss://eu-central.api.pipecat.daily.co/ws/telnyx?serviceHost=my-agent.my-org` -Learn more about [regional endpoints](/deployment/pipecat-cloud/guides/regions#regional-websocket-endpoints). +Learn more about [regional endpoints](/pipecat-cloud/guides/regions#regional-websocket-endpoints). @@ -97,4 +97,4 @@ To test your integration, simply dial your Telnyx phone number from any phone. T ## Next Steps -For complete implementation details including dial-out, caller personalization, custom parameters, and advanced call control features, see the [Telnyx WebSocket Integration guide](/guides/telephony/telnyx-websockets). +For complete implementation details including dial-out, caller personalization, custom parameters, and advanced call control features, see the [Telnyx WebSocket Integration guide](/pipecat/telephony/telnyx-websockets). diff --git a/deployment/pipecat-cloud/guides/telephony/twilio-websocket.mdx b/pipecat-cloud/guides/telephony/twilio-websocket.mdx similarity index 93% rename from deployment/pipecat-cloud/guides/telephony/twilio-websocket.mdx rename to pipecat-cloud/guides/telephony/twilio-websocket.mdx index e437cb685..1d18f61e5 100644 --- a/deployment/pipecat-cloud/guides/telephony/twilio-websocket.mdx +++ b/pipecat-cloud/guides/telephony/twilio-websocket.mdx @@ -7,7 +7,7 @@ description: "Using Twilio's WebSocket Transport for your Pipecat Cloud agents" This guide covers Pipecat Cloud-specific configuration for Twilio WebSocket integration. For a complete guide including dial-in, dial-out, custom parameters, and advanced features, see the [Twilio WebSocket Integration - guide](/guides/telephony/twilio-websockets). + guide](/pipecat/telephony/twilio-websockets). Native support for Twilio's WebSocket Transport with Pipecat Cloud allows you to connect your AI agents with Twilio's voice infrastructure. This integration enables your Pipecat bots to handle real phone calls using Twilio's Websockets. @@ -19,7 +19,7 @@ Pipecat Cloud implements Twilio's bidirectional [Media Streams protocol](https:/ When Pipecat Cloud receives an incoming WebSocket connection from Twilio, it processes the `Connected` and `Start` messages to initialize a new bot instance. All WebSocket messages are forwarded to your bot, including any custom parameters set in your TwiML. This allows your bot to leverage Twilio's REST API for advanced call control - such as recording conversations, transferring to human agents, or implementing complex call flows. - + ## Prerequisites @@ -81,7 +81,7 @@ If you deployed your agent to a specific region, use the regional WebSocket endp For example, for Europe: `wss://eu-central.api.pipecat.daily.co/ws/twilio` -Learn more about [regional endpoints](/deployment/pipecat-cloud/guides/regions#regional-websocket-endpoints). +Learn more about [regional endpoints](/pipecat-cloud/guides/regions#regional-websocket-endpoints). @@ -100,4 +100,4 @@ To test your integration, simply dial your Twilio phone number from any phone. T ## Next Steps -For complete implementation details including dial-out, custom parameters, caller personalization, and advanced call control features, see the [Twilio WebSocket Integration guide](/guides/telephony/twilio-websockets). +For complete implementation details including dial-out, custom parameters, caller personalization, and advanced call control features, see the [Twilio WebSocket Integration guide](/pipecat/telephony/twilio-websockets). diff --git a/deployment/pipecat-cloud/guides/using-datadog.mdx b/pipecat-cloud/guides/using-datadog.mdx similarity index 100% rename from deployment/pipecat-cloud/guides/using-datadog.mdx rename to pipecat-cloud/guides/using-datadog.mdx diff --git a/deployment/pipecat-cloud/guides/whatsapp.mdx b/pipecat-cloud/guides/whatsapp.mdx similarity index 94% rename from deployment/pipecat-cloud/guides/whatsapp.mdx rename to pipecat-cloud/guides/whatsapp.mdx index 970b4f5d2..1a2778b3e 100644 --- a/deployment/pipecat-cloud/guides/whatsapp.mdx +++ b/pipecat-cloud/guides/whatsapp.mdx @@ -7,7 +7,7 @@ description: "Learn how to receive WhatsApp voice calls in your Pipecat Cloud ap This guide explains how to integrate WhatsApp Business voice calling into your **Pipecat Cloud** application using the **WhatsApp Cloud API** and **SmallWebRTC**. Once configured, your Pipecat Cloud bot will be able to receive and handle real-time voice calls directly from WhatsApp users. -> For a more detailed explanation of WhatsApp Business setup, voice calling, and webhook configuration, refer to our [full WhatsApp Business Calling guide](/guides/features/whatsapp). +> For a more detailed explanation of WhatsApp Business setup, voice calling, and webhook configuration, refer to our [full WhatsApp Business Calling guide](/pipecat/features/whatsapp). --- @@ -45,7 +45,7 @@ uv run pipecat cloud secrets set whatsapp-secrets --file .env This creates a secret set named `whatsapp-secrets` and securely stores your API keys for your Pipecat Cloud agent. -> For instructions on generating the access token, phone number ID, and app secret, refer to the [WhatsApp Cloud API Configuration](/guides/features/whatsapp#whatsapp-configuration). +> For instructions on generating the access token, phone number ID, and app secret, refer to the [WhatsApp Cloud API Configuration](/pipecat/features/whatsapp#whatsapp-configuration). ### Example @@ -90,4 +90,4 @@ Common Pipecat Cloud issues: - Ensure the WhatsApp Business number has calling enabled. - Ensure that the WhatsApp token is still valid. -> For a complete troubleshooting section, see [WhatsApp Business Calling guide](/guides/features/whatsapp#troubleshooting). +> For a complete troubleshooting section, see [WhatsApp Business Calling guide](/pipecat/features/whatsapp#troubleshooting). diff --git a/pipecat-cloud/introduction.mdx b/pipecat-cloud/introduction.mdx new file mode 100644 index 000000000..4715f0a91 --- /dev/null +++ b/pipecat-cloud/introduction.mdx @@ -0,0 +1,59 @@ +--- +title: Introduction +description: "Deploy your AI agents to production at scale" +--- + +[Pipecat Cloud](https://pipecat.daily.co) is a managed platform for deploying and scaling Pipecat agents in production. It handles infrastructure, scaling, and operations so you can focus on building your agent. + + + + + +## Key Capabilities + +- **One-command deploy**: Package and deploy agents with `pipecat cloud deploy` +- **Auto-scaling**: Scale from zero to thousands of concurrent sessions +- **Built-in WebRTC**: Daily WebRTC transport included, no separate infrastructure needed +- **Secrets management**: Securely store and inject API keys and credentials +- **Session management**: Start, stop, and monitor agent sessions via REST API or SDK +- **Logging & monitoring**: Built-in logging with Datadog integration support +- **Global regions**: Deploy close to your users for lowest latency + +## How It Works + + + + Write a Pipecat pipeline as you normally would, using any supported services. + + + Use the CLI to build and deploy your agent image to Pipecat Cloud. + ```bash + pipecat cloud deploy + ``` + + + Use the REST API or Python SDK to start agent sessions on demand. + ```bash + curl --request POST \ + --url https://api.pipecat.daily.co/v1/public/{agentName}/start \ + --header 'Authorization: Bearer ' \ + --header 'Content-Type: application/json' \ +``` + + + + +## Next Steps + + + + Get your account set up and ready to deploy your first agent. + + + Deploy the quickstart agent to Pipecat Cloud. + + diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-create.mdx b/pipecat-cloud/rest-reference/endpoint/agent-create.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-create.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-create.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-delete.mdx b/pipecat-cloud/rest-reference/endpoint/agent-delete.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-delete.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-delete.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-get-logs.mdx b/pipecat-cloud/rest-reference/endpoint/agent-get-logs.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-get-logs.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-get-logs.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-get-session.mdx b/pipecat-cloud/rest-reference/endpoint/agent-get-session.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-get-session.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-get-session.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-get-sessions.mdx b/pipecat-cloud/rest-reference/endpoint/agent-get-sessions.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-get-sessions.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-get-sessions.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-list-all.mdx b/pipecat-cloud/rest-reference/endpoint/agent-list-all.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-list-all.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-list-all.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-list-one.mdx b/pipecat-cloud/rest-reference/endpoint/agent-list-one.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-list-one.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-list-one.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/agent-update.mdx b/pipecat-cloud/rest-reference/endpoint/agent-update.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/agent-update.mdx rename to pipecat-cloud/rest-reference/endpoint/agent-update.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/build-create.mdx b/pipecat-cloud/rest-reference/endpoint/build-create.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/build-create.mdx rename to pipecat-cloud/rest-reference/endpoint/build-create.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/build-get-logs.mdx b/pipecat-cloud/rest-reference/endpoint/build-get-logs.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/build-get-logs.mdx rename to pipecat-cloud/rest-reference/endpoint/build-get-logs.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/build-get.mdx b/pipecat-cloud/rest-reference/endpoint/build-get.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/build-get.mdx rename to pipecat-cloud/rest-reference/endpoint/build-get.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/build-list.mdx b/pipecat-cloud/rest-reference/endpoint/build-list.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/build-list.mdx rename to pipecat-cloud/rest-reference/endpoint/build-list.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/build-upload-url.mdx b/pipecat-cloud/rest-reference/endpoint/build-upload-url.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/build-upload-url.mdx rename to pipecat-cloud/rest-reference/endpoint/build-upload-url.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/properties-get.mdx b/pipecat-cloud/rest-reference/endpoint/properties-get.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/properties-get.mdx rename to pipecat-cloud/rest-reference/endpoint/properties-get.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/properties-update.mdx b/pipecat-cloud/rest-reference/endpoint/properties-update.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/properties-update.mdx rename to pipecat-cloud/rest-reference/endpoint/properties-update.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/regions-list.mdx b/pipecat-cloud/rest-reference/endpoint/regions-list.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/regions-list.mdx rename to pipecat-cloud/rest-reference/endpoint/regions-list.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/secret-create-update.mdx b/pipecat-cloud/rest-reference/endpoint/secret-create-update.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/secret-create-update.mdx rename to pipecat-cloud/rest-reference/endpoint/secret-create-update.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set.mdx b/pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set.mdx rename to pipecat-cloud/rest-reference/endpoint/secret-delete-secret-set.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret.mdx b/pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret.mdx rename to pipecat-cloud/rest-reference/endpoint/secret-delete-specific-secret.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/secret-list-all.mdx b/pipecat-cloud/rest-reference/endpoint/secret-list-all.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/secret-list-all.mdx rename to pipecat-cloud/rest-reference/endpoint/secret-list-all.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/secret-list-one.mdx b/pipecat-cloud/rest-reference/endpoint/secret-list-one.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/secret-list-one.mdx rename to pipecat-cloud/rest-reference/endpoint/secret-list-one.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/session-proxy.mdx b/pipecat-cloud/rest-reference/endpoint/session-proxy.mdx similarity index 88% rename from deployment/pipecat-cloud/rest-reference/endpoint/session-proxy.mdx rename to pipecat-cloud/rest-reference/endpoint/session-proxy.mdx index 69e86e46c..fe838f0ab 100644 --- a/deployment/pipecat-cloud/rest-reference/endpoint/session-proxy.mdx +++ b/pipecat-cloud/rest-reference/endpoint/session-proxy.mdx @@ -16,6 +16,6 @@ Headers are forwarded to your bot with these exceptions: Requires base image version `0.1.2` or later. See the [Session API - guide](/deployment/pipecat-cloud/guides/session-api) for setup instructions + guide](/pipecat-cloud/guides/session-api) for setup instructions and examples. diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/start.mdx b/pipecat-cloud/rest-reference/endpoint/start.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/start.mdx rename to pipecat-cloud/rest-reference/endpoint/start.mdx diff --git a/deployment/pipecat-cloud/rest-reference/endpoint/stop.mdx b/pipecat-cloud/rest-reference/endpoint/stop.mdx similarity index 100% rename from deployment/pipecat-cloud/rest-reference/endpoint/stop.mdx rename to pipecat-cloud/rest-reference/endpoint/stop.mdx diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-create.json b/pipecat-cloud/rest-reference/openapi-agent-create.json similarity index 99% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-create.json rename to pipecat-cloud/rest-reference/openapi-agent-create.json index c6f2fe8fe..564a4d421 100644 --- a/deployment/pipecat-cloud/rest-reference/openapi-agent-create.json +++ b/pipecat-cloud/rest-reference/openapi-agent-create.json @@ -290,7 +290,7 @@ }, "krispViva": { "type": "object", - "description": "Krisp VIVA noise cancellation configuration. [Learn more](/deployment/pipecat-cloud/guides/krisp-viva).", + "description": "Krisp VIVA noise cancellation configuration. [Learn more](/pipecat-cloud/guides/krisp-viva).", "properties": { "audioFilter": { "type": "string", diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-delete.json b/pipecat-cloud/rest-reference/openapi-agent-delete.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-delete.json rename to pipecat-cloud/rest-reference/openapi-agent-delete.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-get-logs.json b/pipecat-cloud/rest-reference/openapi-agent-get-logs.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-get-logs.json rename to pipecat-cloud/rest-reference/openapi-agent-get-logs.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-get-session.json b/pipecat-cloud/rest-reference/openapi-agent-get-session.json similarity index 99% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-get-session.json rename to pipecat-cloud/rest-reference/openapi-agent-get-session.json index 5cde744be..c6e69f959 100644 --- a/deployment/pipecat-cloud/rest-reference/openapi-agent-get-session.json +++ b/pipecat-cloud/rest-reference/openapi-agent-get-session.json @@ -164,7 +164,7 @@ }, "coldStart": { "type": "boolean", - "description": "Whether the bot start was a [cold start](/deployment/pipecat-cloud/fundamentals/scaling#cold-starts)", + "description": "Whether the bot start was a [cold start](/pipecat-cloud/fundamentals/scaling#cold-starts)", "nullable": true }, "completionStatus": { diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-get-sessions.json b/pipecat-cloud/rest-reference/openapi-agent-get-sessions.json similarity index 99% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-get-sessions.json rename to pipecat-cloud/rest-reference/openapi-agent-get-sessions.json index e864f2532..75c6302e0 100644 --- a/deployment/pipecat-cloud/rest-reference/openapi-agent-get-sessions.json +++ b/pipecat-cloud/rest-reference/openapi-agent-get-sessions.json @@ -168,7 +168,7 @@ }, "coldStart": { "type": "boolean", - "description": "Whether the bot start was a [cold start](/deployment/pipecat-cloud/fundamentals/scaling#cold-starts)", + "description": "Whether the bot start was a [cold start](/pipecat-cloud/fundamentals/scaling#cold-starts)", "nullable": true }, "completionStatus": { diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-list-all.json b/pipecat-cloud/rest-reference/openapi-agent-list-all.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-list-all.json rename to pipecat-cloud/rest-reference/openapi-agent-list-all.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-list-one.json b/pipecat-cloud/rest-reference/openapi-agent-list-one.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-list-one.json rename to pipecat-cloud/rest-reference/openapi-agent-list-one.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-agent-update.json b/pipecat-cloud/rest-reference/openapi-agent-update.json similarity index 99% rename from deployment/pipecat-cloud/rest-reference/openapi-agent-update.json rename to pipecat-cloud/rest-reference/openapi-agent-update.json index e5b9bb62a..6074e8c4c 100644 --- a/deployment/pipecat-cloud/rest-reference/openapi-agent-update.json +++ b/pipecat-cloud/rest-reference/openapi-agent-update.json @@ -488,7 +488,7 @@ }, "krispViva": { "type": "object", - "description": "Krisp VIVA noise cancellation configuration. [Learn more](/deployment/pipecat-cloud/guides/krisp-viva).", + "description": "Krisp VIVA noise cancellation configuration. [Learn more](/pipecat-cloud/guides/krisp-viva).", "properties": { "audioFilter": { "type": "string", diff --git a/deployment/pipecat-cloud/rest-reference/openapi-build-create.json b/pipecat-cloud/rest-reference/openapi-build-create.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-build-create.json rename to pipecat-cloud/rest-reference/openapi-build-create.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-build-get-logs.json b/pipecat-cloud/rest-reference/openapi-build-get-logs.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-build-get-logs.json rename to pipecat-cloud/rest-reference/openapi-build-get-logs.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-build-get.json b/pipecat-cloud/rest-reference/openapi-build-get.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-build-get.json rename to pipecat-cloud/rest-reference/openapi-build-get.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-build-list.json b/pipecat-cloud/rest-reference/openapi-build-list.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-build-list.json rename to pipecat-cloud/rest-reference/openapi-build-list.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-build-upload-url.json b/pipecat-cloud/rest-reference/openapi-build-upload-url.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-build-upload-url.json rename to pipecat-cloud/rest-reference/openapi-build-upload-url.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-properties-get.json b/pipecat-cloud/rest-reference/openapi-properties-get.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-properties-get.json rename to pipecat-cloud/rest-reference/openapi-properties-get.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-properties-update.json b/pipecat-cloud/rest-reference/openapi-properties-update.json similarity index 98% rename from deployment/pipecat-cloud/rest-reference/openapi-properties-update.json rename to pipecat-cloud/rest-reference/openapi-properties-update.json index d80a9c8a7..bda3f4730 100644 --- a/deployment/pipecat-cloud/rest-reference/openapi-properties-update.json +++ b/pipecat-cloud/rest-reference/openapi-properties-update.json @@ -31,7 +31,7 @@ "properties": { "defaultRegion": { "type": "string", - "description": "Default region for new service deployments. Must be one of the [available regions](/deployment/pipecat-cloud/rest-reference/endpoint/regions-list) for your organization.", + "description": "Default region for new service deployments. Must be one of the [available regions](/pipecat-cloud/rest-reference/endpoint/regions-list) for your organization.", "example": "us-west" } }, diff --git a/deployment/pipecat-cloud/rest-reference/openapi-regions-list.json b/pipecat-cloud/rest-reference/openapi-regions-list.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-regions-list.json rename to pipecat-cloud/rest-reference/openapi-regions-list.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-secret-create-update.json b/pipecat-cloud/rest-reference/openapi-secret-create-update.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-secret-create-update.json rename to pipecat-cloud/rest-reference/openapi-secret-create-update.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-secret-delete-secret-set.json b/pipecat-cloud/rest-reference/openapi-secret-delete-secret-set.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-secret-delete-secret-set.json rename to pipecat-cloud/rest-reference/openapi-secret-delete-secret-set.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-secret-delete-specific-secret.json b/pipecat-cloud/rest-reference/openapi-secret-delete-specific-secret.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-secret-delete-specific-secret.json rename to pipecat-cloud/rest-reference/openapi-secret-delete-specific-secret.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-secret-list-all.json b/pipecat-cloud/rest-reference/openapi-secret-list-all.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-secret-list-all.json rename to pipecat-cloud/rest-reference/openapi-secret-list-all.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-secret-list-one.json b/pipecat-cloud/rest-reference/openapi-secret-list-one.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-secret-list-one.json rename to pipecat-cloud/rest-reference/openapi-secret-list-one.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-session-proxy.json b/pipecat-cloud/rest-reference/openapi-session-proxy.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-session-proxy.json rename to pipecat-cloud/rest-reference/openapi-session-proxy.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-start.json b/pipecat-cloud/rest-reference/openapi-start.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-start.json rename to pipecat-cloud/rest-reference/openapi-start.json diff --git a/deployment/pipecat-cloud/rest-reference/openapi-stop.json b/pipecat-cloud/rest-reference/openapi-stop.json similarity index 100% rename from deployment/pipecat-cloud/rest-reference/openapi-stop.json rename to pipecat-cloud/rest-reference/openapi-stop.json diff --git a/deployment/pipecat-cloud/sdk-reference/examples.mdx b/pipecat-cloud/sdk-reference/examples.mdx similarity index 100% rename from deployment/pipecat-cloud/sdk-reference/examples.mdx rename to pipecat-cloud/sdk-reference/examples.mdx diff --git a/deployment/pipecat-cloud/sdk-reference/exceptions.mdx b/pipecat-cloud/sdk-reference/exceptions.mdx similarity index 100% rename from deployment/pipecat-cloud/sdk-reference/exceptions.mdx rename to pipecat-cloud/sdk-reference/exceptions.mdx diff --git a/deployment/pipecat-cloud/sdk-reference/overview.mdx b/pipecat-cloud/sdk-reference/overview.mdx similarity index 100% rename from deployment/pipecat-cloud/sdk-reference/overview.mdx rename to pipecat-cloud/sdk-reference/overview.mdx diff --git a/deployment/pipecat-cloud/sdk-reference/session-arguments.mdx b/pipecat-cloud/sdk-reference/session-arguments.mdx similarity index 100% rename from deployment/pipecat-cloud/sdk-reference/session-arguments.mdx rename to pipecat-cloud/sdk-reference/session-arguments.mdx diff --git a/deployment/pipecat-cloud/sdk-reference/sessions.mdx b/pipecat-cloud/sdk-reference/sessions.mdx similarity index 100% rename from deployment/pipecat-cloud/sdk-reference/sessions.mdx rename to pipecat-cloud/sdk-reference/sessions.mdx diff --git a/deployment/pipecat-cloud/security/hipaa.mdx b/pipecat-cloud/security/hipaa.mdx similarity index 100% rename from deployment/pipecat-cloud/security/hipaa.mdx rename to pipecat-cloud/security/hipaa.mdx diff --git a/deployment/pipecat-cloud/security/security-and-compliance.mdx b/pipecat-cloud/security/security-and-compliance.mdx similarity index 100% rename from deployment/pipecat-cloud/security/security-and-compliance.mdx rename to pipecat-cloud/security/security-and-compliance.mdx diff --git a/pipecat-flows/examples.mdx b/pipecat-flows/examples.mdx new file mode 100644 index 000000000..54f33793e --- /dev/null +++ b/pipecat-flows/examples.mdx @@ -0,0 +1,64 @@ +--- +title: "Examples" +description: "Explore Pipecat Flows examples for common conversation patterns." +--- + +Explore these examples to see Pipecat Flows in action. Each example demonstrates different patterns and techniques for building structured conversations. + + + + A great first Flow to show you the ropes. Two-node flow that asks for a + favorite color. + + + Multi-step ordering flow with menu selection, customization, and checkout. + + + Collect party size, date, time, and contact details for a reservation. + + + Healthcare intake flow collecting patient information and symptoms. + + + Guided flow for collecting insurance quote details with state management. + + + Switch between LLM providers mid-conversation based on task requirements. + + + Transfer a conversation to a human agent with context handoff. + + + + + All examples are available in the [pipecat-flows GitHub + repository](https://github.com/pipecat-ai/pipecat-flows/tree/main/examples). + diff --git a/pipecat-flows/guides/actions.mdx b/pipecat-flows/guides/actions.mdx new file mode 100644 index 000000000..de86ada88 --- /dev/null +++ b/pipecat-flows/guides/actions.mdx @@ -0,0 +1,89 @@ +--- +title: "Actions" +description: "Execute custom functionality at specific points in your conversation flow." +--- + +Actions allow you to execute custom functionality at specific points in your conversation flow, giving you precise control over timing and sequencing. + +## Action Types + +- `pre_actions` execute immediately when transitioning to a new node, _before_ the LLM inference begins. +- `post_actions` execute after the LLM inference completes and any TTS has finished speaking. + +## Built-in Actions + +Pipecat Flows includes several ready-to-use actions for common scenarios: + +### tts_say + +Speak a phrase immediately (useful for "please wait" messages): + +```python +"pre_actions": [ + { + "type": "tts_say", + "text": "Please hold while I process your request..." + } +] +``` + +### end_conversation + +Gracefully terminate the conversation: + +```python +"post_actions": [ + { + "type": "end_conversation", + "text": "Thank you for your time!" + } +] +``` + +### function + +Execute a custom function at the specified timing: + +```python +"post_actions": [ + { + "type": "function", + "handler": end_conversation_handler + } +] +``` + +## Custom Actions + +You can define your own actions to handle specific business logic or integrations. In most cases, consider using a **function action** first, as it executes at the expected time in the pipeline. + +Register custom action handlers using `register_action()`: + +```python +async def notify_slack(action: dict, flow_manager: FlowManager): + channel = action.get("channel", "#general") + await slack_client.post_message(channel=channel, text=action["text"]) + +flow_manager.register_action("notify_slack", notify_slack) +``` + +Then use it in your node configuration: + +```python +"pre_actions": [ + {"type": "notify_slack", "channel": "#support", "text": "Session started"} +] +``` + +Custom actions give you complete flexibility to execute any functionality your application needs, but require careful timing considerations. + +## Action Timing + +The execution order ensures predictable behavior: + +1. **Pre-actions** run first upon node entry (in the order they are defined) +2. **LLM inference** processes the node's messages and functions +3. **TTS** speaks the LLM's response +4. **Post-actions** run after TTS completes (in the order they are defined) + +This timing guarantees that actions execute in the correct sequence, such as ensuring the bot finishes speaking before ending the conversation. Note that custom actions may not follow this predictable timing, which is another reason to prefer function actions when possible. diff --git a/pipecat-flows/guides/context-strategies.mdx b/pipecat-flows/guides/context-strategies.mdx new file mode 100644 index 000000000..edabd42f5 --- /dev/null +++ b/pipecat-flows/guides/context-strategies.mdx @@ -0,0 +1,52 @@ +--- +title: "Context Strategies" +description: "Manage conversation context across node transitions." +--- + +Flows provides three built-in ways to manage conversation context as you move between nodes. + +## Strategy Types + +1. **APPEND** (Default): New node messages are added to the existing context, preserving the full conversation history. The context grows as the conversation progresses. + +2. **RESET**: The context is cleared and replaced with only the new node's messages. Useful when previous conversation history is no longer relevant or to reduce context window size. + +3. **RESET_WITH_SUMMARY**: The context is cleared but includes an AI-generated summary of the previous conversation along with the new node's messages. Helps reduce context size while preserving key information. + +## When to Use Each Strategy + +- Use **APPEND** when full conversation history is important for context +- Use **RESET** when starting a new topic or when previous context might confuse the current task +- Use **RESET_WITH_SUMMARY** for long conversations where you need to preserve key points but reduce context size + +## Configuration + +Context strategies can be defined globally in the FlowManager constructor: + +```python +from pipecat_flows import ContextStrategy, ContextStrategyConfig + +# Global strategy configuration +flow_manager = FlowManager( + task=task, + llm=llm, + context_aggregator=context_aggregator, + context_strategy=ContextStrategyConfig( + strategy=ContextStrategy.APPEND, + ) +) +``` + +Or on a per-node basis: + +```python +# Per-node strategy configuration +node_config = { + "task_messages": [...], + "functions": [...], + "context_strategy": ContextStrategyConfig( + strategy=ContextStrategy.RESET_WITH_SUMMARY, + summary_prompt="Provide a concise summary of the customer's order details and preferences." + ) +} +``` diff --git a/pipecat-flows/guides/functions.mdx b/pipecat-flows/guides/functions.mdx new file mode 100644 index 000000000..7e82c1d12 --- /dev/null +++ b/pipecat-flows/guides/functions.mdx @@ -0,0 +1,106 @@ +--- +title: "Functions" +description: "Define function calls and handlers in Pipecat Flows." +--- + +Functions in Pipecat Flows serve two key purposes: + +1. **Process data** by interfacing with external systems and APIs to read or write information +2. **Progress the conversation** by transitioning between nodes in your flow + +## How Functions Work + +When designing your nodes, clearly define the task in the `task_messages` and reference the available functions. The LLM will use these functions to complete the task and signal when it's ready to move forward. + +For example, if your node's job is to collect a user's favorite color: + +1. The LLM asks the question +2. The user provides their answer +3. The LLM calls the function with the answer +4. The function processes the data and determines the next node + +## Function Definition + +Flows provides a universal `FlowsFunctionSchema` that works across all LLM providers: + +```python +from pipecat_flows import FlowsFunctionSchema + +record_favorite_color_func = FlowsFunctionSchema( + name="record_favorite_color_func", + description="Record the color the user said is their favorite.", + required=["color"], + handler=record_favorite_color_and_set_next_node, + properties={"color": {"type": "string"}}, +) +``` + +## Function Handlers + +Each function has a corresponding `handler` where you implement your application logic and specify the next node: + +```python +async def record_favorite_color_and_set_next_node( + args: FlowArgs, flow_manager: FlowManager +) -> tuple[str, NodeConfig]: + """Function handler that records the color then sets the next node. + + Here "record" means print to the console, but any logic could go here: + Write to a database, make an API call, etc. + """ + print(f"Your favorite color is: {args['color']}") + return args["color"], create_end_node() +``` + +## Handler Return Values + +Function handlers return a tuple containing: + +- **Result**: Data provided to the LLM for context in subsequent completions, or `None`. This can be any serializable value — a string, dict, etc. +- **Next Node**: The `NodeConfig` for Flows to transition to next, or `None` + +Some handlers may not want to transition conversational state, in which case you can return `None` for the next node. Other handlers may _only_ want to transition conversational state without doing other work, in which case you can return `None` for the result. + +## Direct Functions + +For more concise code, you can optionally use Direct Functions where the function definition and handler are combined in a single function. The function signature and docstring are automatically used to generate the function schema: + +```python +async def record_favorite_color( + flow_manager: FlowManager, + color: str +) -> tuple[FlowResult, NodeConfig]: + """Record the color the user said is their favorite. + + Args: + color: The user's favorite color. + """ + print(f"Your favorite color is: {color}") + return color, create_end_node() + +# Use directly in NodeConfig +node_config = { + "functions": [record_favorite_color] +} +``` + +This approach eliminates the need for separate `FlowsFunctionSchema` definitions while maintaining the same functionality. + +To control interruption behavior, use the `@flows_direct_function` decorator: + +```python +from pipecat_flows import flows_direct_function + +@flows_direct_function(cancel_on_interruption=False) +async def long_running_lookup( + flow_manager: FlowManager, + order_id: str +) -> tuple[FlowResult, NodeConfig]: + """Look up an order that should not be cancelled if the user speaks. + + Args: + order_id: The order ID to look up. + """ + order = await db.get_order(order_id) + return {"status": "success"}, create_order_node(order) +``` diff --git a/pipecat-flows/guides/nodes-and-messages.mdx b/pipecat-flows/guides/nodes-and-messages.mdx new file mode 100644 index 000000000..5e40dc23e --- /dev/null +++ b/pipecat-flows/guides/nodes-and-messages.mdx @@ -0,0 +1,83 @@ +--- +title: "Nodes & Messages" +description: "Configure conversation nodes and messages in Pipecat Flows." +--- + +Pipecat Flows represents a conversation as a graph where each step is a **node**. Nodes are of type `NodeConfig` and may contain the following properties: + +- `name`: The name of the node; used as a reference to transition to the node. +- `role_message`: A `str` defining the bot's role/personality. Sent as the LLM's system instruction and persists across transitions until changed. Typically set once in the initial node. +- `task_messages`: A list of message `dicts` defining the current node's objectives. +- `functions`: A list of function call definitions and their corresponding handlers. +- `pre_actions`: Actions to execute before LLM inference. Actions run once upon transitioning to a node. +- `post_actions`: Actions to execute after LLM inference. Actions run once after the node's initial LLM inference. +- `context_strategy`: Strategy for updating context during transitions. The default behavior is to append messages to the context. +- `respond_immediately`: Whether to run LLM inference as soon as the node is set. The default is True. + + + The only required field is `task_messages`, as your bot always needs a prompt + to advance the conversation. + + +## Messages + +Messages define what your bot should do and how it should behave at each node in your conversation flow. + +### Message Types + +There are two types of messages you can configure: + +**Role Message** (Optional) +Defines your bot's personality, tone, and overall behavior as a plain string. This is sent as the LLM's system instruction and persists across node transitions until a new node explicitly sets it again. Typically set once in the initial node. + +**Task Messages** (Required) +Define the specific objective your bot should accomplish in the current node. These messages focus the LLM on the immediate task at hand, such as asking a specific question or processing particular information. + +### Message Format + +The role message is a plain string, while task messages use OpenAI format as a list of `dicts`: + +```python +"role_message": "You are an inquisitive child. Use very simple language. Ask simple questions. You must ALWAYS use one of the available functions to progress the conversation. Your responses will be converted to audio. Avoid outputting special characters and emojis.", +"task_messages": [ + { + "role": "system", + "content": "Say 'Hello world' and ask what is the user's favorite color.", + } +], +``` + +### Cross-Provider Compatibility + +Task messages use Pipecat's default OpenAI message format and are automatically translated to work with your chosen LLM provider. The `role_message` is sent as the LLM's system instruction via `LLMUpdateSettingsFrame`, which is handled by each provider's implementation. + +## Respond Immediately + +For each node in the conversation, you can decide whether the LLM should respond immediately upon entering the node (the default behavior) or whether the LLM should wait for the user to speak first before responding. You do this using the `respond_immediately` field. + + + `respond_immediately=False` may be particularly useful in the very first node, + especially in outbound-calling cases where the user has to first answer the + phone to trigger the conversation. + + +```python +NodeConfig( + task_messages=[ + { + "role": "system", + "content": "Warmly greet the customer and ask how many people are in their party. This is your only job for now; if the customer asks for something else, politely remind them you can't do it.", + } + ], + respond_immediately=False, + # ... other fields +) +``` + + + Keep in mind that if you specify `respond_immediately=False`, the user may not + be aware of the conversational task at hand when entering the node (the bot + hasn't told them yet). While it's always important to have guardrails in your + node messages to keep the conversation on topic, letting the user speak first + makes it even more so. + diff --git a/pipecat-flows/guides/quickstart.mdx b/pipecat-flows/guides/quickstart.mdx new file mode 100644 index 000000000..a842df75b --- /dev/null +++ b/pipecat-flows/guides/quickstart.mdx @@ -0,0 +1,184 @@ +--- +title: "Quickstart" +description: "Build your first conversation flow with Pipecat Flows." +--- + +This guide walks through the Hello World example — a two-node conversation flow where the bot asks for a favorite color, records the answer, and says goodbye. + + + View the full source code on GitHub + + +## Prerequisites + +Install Pipecat Flows and Pipecat with the services used in this example: + +```bash +pip install pipecat-ai-flows +pip install "pipecat-ai[daily,google,cartesia,silero]" +``` + +You'll need API keys for [Cartesia](https://cartesia.ai/) (STT + TTS) and [Google](https://ai.google.dev/) (LLM) set as environment variables: + +```bash +export CARTESIA_API_KEY=... +export GOOGLE_API_KEY=... +``` + +## Define the Nodes + +A flow is a graph of nodes. Each node gives the LLM a task and the functions it needs. This example has two nodes: one to ask a question and one to end the conversation. + +### Initial Node + +The initial node sets the bot's personality via `role_message`, gives it a task via `task_messages`, and provides a function the LLM will call when the user answers: + +```python +from pipecat_flows import FlowArgs, FlowManager, FlowsFunctionSchema, NodeConfig + +def create_initial_node() -> NodeConfig: + record_favorite_color_func = FlowsFunctionSchema( + name="record_favorite_color_func", + description="Record the color the user said is their favorite.", + required=["color"], + handler=record_favorite_color_and_set_next_node, + properties={"color": {"type": "string"}}, + ) + + return { + "name": "initial", + "role_message": "You are an inquisitive child. Use very simple language. Ask simple questions. You must ALWAYS use one of the available functions to progress the conversation. Your responses will be converted to audio. Avoid outputting special characters and emojis.", + "task_messages": [ + { + "role": "developer", + "content": "Say 'Hello world' and ask what is the user's favorite color.", + } + ], + "functions": [record_favorite_color_func], + } +``` + +### End Node + +The end node thanks the user and ends the conversation via the `end_conversation` post-action: + +```python +def create_end_node() -> NodeConfig: + return NodeConfig( + name="end", + task_messages=[ + { + "role": "developer", + "content": "Thank the user for answering and end the conversation", + } + ], + post_actions=[{"type": "end_conversation"}], + ) +``` + + + Nodes can be defined as plain dicts or as `NodeConfig` objects — both work + identically. This example uses both styles to show you the options. + + +## Write the Function Handler + +When the LLM calls the function, the handler processes the result and returns the next node: + +```python +async def record_favorite_color_and_set_next_node( + args: FlowArgs, flow_manager: FlowManager +) -> tuple[str, NodeConfig]: + print(f"Your favorite color is: {args['color']}") + return args["color"], create_end_node() +``` + +The handler returns a tuple of `(result, next_node)`. The result is provided to the LLM as context, and the next node is where the conversation transitions to. + +## Build the Pipeline and FlowManager + +Set up a standard Pipecat pipeline, then create a `FlowManager` and initialize it when a client connects: + +```python +async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): + stt = CartesiaSTTService(api_key=os.getenv("CARTESIA_API_KEY")) + tts = CartesiaTTSService( + api_key=os.getenv("CARTESIA_API_KEY"), + voice_id="32b3f3c5-7171-46aa-abe7-b598964aa793", + ) + llm = GoogleLLMService(api_key=os.getenv("GOOGLE_API_KEY")) + + context = LLMContext() + context_aggregator = LLMContextAggregatorPair( + context, + user_params=LLMUserAggregatorParams( + vad_analyzer=SileroVADAnalyzer(), + ), + ) + + pipeline = Pipeline( + [ + transport.input(), + stt, + context_aggregator.user(), + llm, + tts, + transport.output(), + context_aggregator.assistant(), + ] + ) + + task = PipelineTask(pipeline, params=PipelineParams(allow_interruptions=True)) + + # Initialize flow manager + flow_manager = FlowManager( + task=task, + llm=llm, + context_aggregator=context_aggregator, + transport=transport, + ) + + @transport.event_handler("on_client_connected") + async def on_client_connected(transport, client): + await flow_manager.initialize(create_initial_node()) + + runner = PipelineRunner(handle_sigint=runner_args.handle_sigint) + await runner.run(task) +``` + +That's it! When a user connects, the bot greets them, asks for their favorite color, records the answer, thanks them, and ends the conversation. + + + See the [full source + code](https://github.com/pipecat-ai/pipecat-flows/blob/main/examples/quickstart/hello_world.py) + for the complete runnable example. + + +## Next Steps + + + + Learn about node configuration and message types + + + Understand node functions, edge functions, and direct functions + + + Explore more complex examples + + + Complete technical reference + + diff --git a/pipecat-flows/guides/state-management.mdx b/pipecat-flows/guides/state-management.mdx new file mode 100644 index 000000000..88f9a98a6 --- /dev/null +++ b/pipecat-flows/guides/state-management.mdx @@ -0,0 +1,94 @@ +--- +title: "State Management" +description: "Share data across nodes with FlowManager state and global functions." +--- + +## Initialization + +Initialize your flow by creating a `FlowManager` instance and calling `initialize()` to start the conversation. + +First, create the FlowManager: + +```python +flow_manager = FlowManager( + task=task, # PipelineTask + llm=llm, # LLMService + context_aggregator=context_aggregator, # Context aggregator + transport=transport, # Transport +) +``` + +Then, initialize by passing the first `NodeConfig` into the `initialize()` method: + +```python +@transport.event_handler("on_client_connected") +async def on_client_connected(transport, client): + logger.info(f"Client connected") + # Kick off the conversation. + await flow_manager.initialize(create_initial_node()) +``` + +## Cross-Node State + +Pipecat Flows supports cross-node state through the `flow_manager.state` dictionary. This persistent storage lets you share data across nodes throughout the entire conversation: + +```python +async def record_favorite_color_and_set_next_node( + args: FlowArgs, flow_manager: FlowManager +) -> tuple[str, NodeConfig]: + """Function handler that records the color then sets the next node. + + Here "record" means print to the console, but any logic could go here; + Write to a database, make an API call, etc. + """ + flow_manager.state["color"] = args["color"] # Cross-node state setting + print(f"Your favorite color is: {args['color']}") + return args["color"], create_end_node() +``` + +## Global Functions + +Pipecat Flows supports defining functions that are available across all nodes in your flow. They're defined in the same way as node-specific functions, but are passed into the FlowManager at initialization: + +```python +flow_manager = FlowManager( + task=task, + llm=llm, + context_aggregator=context_aggregator, + transport=transport, + global_functions=[global_function_1, global_function_2], # Cross-node functions +) +``` + +## Usage Example + +Here's an example that ties together all the concepts covered in the guides: + +```python +def create_initial_node() -> NodeConfig: + """Create the initial node of the flow. + + Define the bot's role and task for the node as well as the function for it to call. + The function call includes a handler which provides the function call result to + Pipecat and then transitions to the next node. + """ + record_favorite_color_func = FlowsFunctionSchema( + name="record_favorite_color_func", + description="Record the color the user said is their favorite.", + required=["color"], + handler=record_favorite_color_and_set_next_node, + properties={"color": {"type": "string"}}, + ) + + return { + "name": "initial", + "role_message": "You are an inquisitive child. Use very simple language. Ask simple questions. You must ALWAYS use one of the available functions to progress the conversation. Your responses will be converted to audio. Avoid outputting special characters and emojis.", + "task_messages": [ + { + "role": "system", + "content": "Say 'Hello world' and ask what is the user's favorite color.", + } + ], + "functions": [record_favorite_color_func], + } +``` diff --git a/pipecat-flows/introduction.mdx b/pipecat-flows/introduction.mdx new file mode 100644 index 000000000..a25b9bad7 --- /dev/null +++ b/pipecat-flows/introduction.mdx @@ -0,0 +1,67 @@ +--- +title: "Pipecat Flows" +description: "Build structured conversations for your voice AI agents." +--- + +Pipecat Flows is a framework for building structured conversations in your AI applications. It lets you define conversation paths as a graph of nodes, where each node focuses the LLM on a single task with only the tools it needs. + +This approach solves a common problem: monolithic prompts with many tools lead to hallucinations and lower accuracy. Pipecat Flows breaks complex tasks into focused steps with clear, specific instructions. + +## When to Use Pipecat Flows + +Pipecat Flows is best suited for use cases where: + +- **You need precise control** over how a conversation progresses through specific steps +- **Your bot handles complex tasks** that can be broken down into smaller, manageable pieces +- **You want to improve LLM accuracy** by focusing the model on one specific task at a time instead of managing multiple responsibilities simultaneously + +## How Pipecat and Pipecat Flows Work Together + +**Pipecat** defines the core capabilities of your bot — the pipeline and processors that enable receiving audio, transcribing input, running LLM completions, converting responses to audio, and sending audio back to the user. + +**Pipecat Flows** complements Pipecat by providing structure to a conversation, managing context and tools as the conversation progresses from one state to another. This is separate from the core pipeline, allowing you to separate conversation logic from pipeline mechanics. + +## Installation + +```bash +pip install pipecat-ai-flows +``` + +You'll also need Pipecat with dependencies for your transport, STT, LLM, and TTS providers: + +```bash +pip install "pipecat-ai[daily,openai,deepgram,cartesia,silero]" +``` + +## Visual Flow Editor + +The [Pipecat Flows Visual Editor](https://flows.pipecat.ai/) lets you design conversation flows visually and export them as JSON configurations. + +## Ready to Build? + + + + Build your first conversation flow in minutes + + + Complete reference docs and technical details + + + Explore real-world examples and use cases + + + Source code, issues, and contributions + + diff --git a/server/frameworks/flows/exceptions.mdx b/pipecat-flows/reference/exceptions.mdx similarity index 100% rename from server/frameworks/flows/exceptions.mdx rename to pipecat-flows/reference/exceptions.mdx diff --git a/server/frameworks/flows/flow-manager.mdx b/pipecat-flows/reference/flow-manager.mdx similarity index 84% rename from server/frameworks/flows/flow-manager.mdx rename to pipecat-flows/reference/flow-manager.mdx index 54a353392..8081a774f 100644 --- a/server/frameworks/flows/flow-manager.mdx +++ b/pipecat-flows/reference/flow-manager.mdx @@ -27,11 +27,16 @@ All parameters are keyword-only. `create_context_aggregator()` on the LLM service. - + Default context strategy for managing conversation context during node transitions. Can be overridden per-node via - [`NodeConfig.context_strategy`](/server/frameworks/flows/types#nodeconfig). See - [ContextStrategyConfig](/server/frameworks/flows/types#contextstrategyconfig). + [`NodeConfig.context_strategy`](/pipecat-flows/reference/types#nodeconfig). + See + [ContextStrategyConfig](/pipecat-flows/reference/types#contextstrategyconfig). @@ -39,14 +44,17 @@ All parameters are keyword-only. accessible via the `transport` property in function and action handlers. - + Functions that will be available at every node. These are registered once during initialization and automatically included alongside node-specific functions. Useful for capabilities like "transfer to human" that should be accessible from any conversation state. - ## Properties ### state @@ -120,9 +128,9 @@ await flow_manager.initialize(initial_node: Optional[NodeConfig] = None) -> None Initialize the flow manager. Must be called before any node transitions can occur. -| Parameter | Type | Default | Description | -|-----------|------|---------|-------------| -| `initial_node` | `NodeConfig` | `None` | Initial node configuration. Can also be set later via `set_node_from_config()`. | +| Parameter | Type | Default | Description | +| -------------- | ------------ | ------- | ------------------------------------------------------------------------------- | +| `initial_node` | `NodeConfig` | `None` | Initial node configuration. Can also be set later via `set_node_from_config()`. | **Raises:** `FlowInitializationError` if initialization fails. @@ -139,8 +147,8 @@ await flow_manager.set_node_from_config(node_config: NodeConfig) -> None Transition to a new conversation node. Used to manually trigger node transitions. The node name is taken from the `name` field in the config, or a UUID is generated if not provided. -| Parameter | Type | Description | -|-----------|------|-------------| +| Parameter | Type | Description | +| ------------- | ------------ | ------------------------------- | | `node_config` | `NodeConfig` | Configuration for the new node. | **Raises:** `FlowTransitionError` if the manager is not initialized. `FlowError` if node setup fails. @@ -180,10 +188,10 @@ flow_manager.register_action(action_type: str, handler: Callable) -> None Register a handler for a custom action type. The handler can be either a legacy handler `(action)` or a modern handler `(action, flow_manager)`. -| Parameter | Type | Description | -|-----------|------|-------------| -| `action_type` | `str` | String identifier for the action (e.g., `"notify_slack"`). | -| `handler` | `Callable` | Async function that handles the action. | +| Parameter | Type | Description | +| ------------- | ---------- | ---------------------------------------------------------- | +| `action_type` | `str` | String identifier for the action (e.g., `"notify_slack"`). | +| `handler` | `Callable` | Async function that handles the action. | ```python async def notify_slack(action: dict, flow_manager: FlowManager): diff --git a/server/frameworks/flows/pipecat-flows.mdx b/pipecat-flows/reference/overview.mdx similarity index 73% rename from server/frameworks/flows/pipecat-flows.mdx rename to pipecat-flows/reference/overview.mdx index 1aafb0042..28268b4f9 100644 --- a/server/frameworks/flows/pipecat-flows.mdx +++ b/pipecat-flows/reference/overview.mdx @@ -1,11 +1,13 @@ --- title: "Pipecat Flows Overview" +sidebarTitle: "Overview" description: "Reference docs for Pipecat's conversation flow system" --- - New to building conversational flows? Check out our [Pipecat Flows - guide](/guides/features/pipecat-flows) first. + New to Pipecat Flows? Check out the + [introduction](/pipecat-flows/introduction) and + [guides](/pipecat-flows/guides/quickstart) first. Pipecat Flows is an add-on framework for Pipecat that allows you to build structured conversations in your AI applications. It enables you to define conversation paths while handling the complexities of state management and LLM interactions. @@ -60,18 +62,18 @@ pip install "pipecat-ai[daily,openai,deepgram,cartesia,silero]" Core orchestration class: constructor, properties, and methods - + NodeConfig, FlowsFunctionSchema, ActionConfig, context strategies, and type aliases Error handling hierarchy for flow management @@ -89,19 +91,19 @@ Create transitions between conversation states, optionally processing data first ### Direct Functions -Functions passed directly to NodeConfig with automatic metadata extraction from signatures and docstrings. See [`flows_direct_function`](/server/frameworks/flows/types#flows_direct_function-decorator) and [`FlowsDirectFunction`](/server/frameworks/flows/types#flowsdirectfunction). +Functions passed directly to NodeConfig with automatic metadata extraction from signatures and docstrings. See [`flows_direct_function`](/pipecat-flows/reference/types#flows_direct_function-decorator) and [`FlowsDirectFunction`](/pipecat-flows/reference/types#flowsdirectfunction). ## LLM Provider Support Pipecat Flows automatically handles format differences between providers: -| Provider | Format Support | Installation | -| ------------- | --------------------- | ------------------------------------- | -| OpenAI | Function calling | `pip install "pipecat-ai[openai]"` | -| OpenAI-compatible | Function calling | Provider-specific (see below) | -| Anthropic | Native tools | `pip install "pipecat-ai[anthropic]"` | -| Google Gemini | Function declarations | `pip install "pipecat-ai[google]"` | -| AWS Bedrock | Anthropic-compatible | `pip install "pipecat-ai[aws]"` | +| Provider | Format Support | Installation | +| ----------------- | --------------------- | ------------------------------------- | +| OpenAI | Function calling | `pip install "pipecat-ai[openai]"` | +| OpenAI-compatible | Function calling | Provider-specific (see below) | +| Anthropic | Native tools | `pip install "pipecat-ai[anthropic]"` | +| Google Gemini | Function declarations | `pip install "pipecat-ai[google]"` | +| AWS Bedrock | Anthropic-compatible | `pip install "pipecat-ai[aws]"` | Any LLM service that extends `OpenAILLMService` is automatically supported. This includes services like Groq, Together, Cerebras, DeepSeek, and others that use the OpenAI-compatible API format. diff --git a/server/frameworks/flows/types.mdx b/pipecat-flows/reference/types.mdx similarity index 79% rename from server/frameworks/flows/types.mdx rename to pipecat-flows/reference/types.mdx index 22ee3cd43..81f16c965 100644 --- a/server/frameworks/flows/types.mdx +++ b/pipecat-flows/reference/types.mdx @@ -11,11 +11,12 @@ Configuration for a single node in a conversation flow. `task_messages` is the o List of message dicts defining the current node's objectives. These tell the LLM what to do in this conversation state. - ```python - "task_messages": [ - {"role": "system", "content": "Ask the user for their name and email address."} - ] - ``` +```python +"task_messages": [ + {"role": "system", "content": "Ask the user for their name and email address."} +] +``` + @@ -29,27 +30,32 @@ Configuration for a single node in a conversation flow. `task_messages` is the o persists across node transitions until a new node explicitly sets `role_message` again. - ```python - "role_message": "You are a friendly customer service agent." - ``` +```python +"role_message": "You are a friendly customer service agent." +``` + Deprecated list-of-dicts format for the bot's role and personality. Use [`role_message`](#) (`str`) instead. Will be removed in 1.0.0. - ```python - "role_messages": [ - {"role": "system", "content": "You are a friendly customer service agent."} - ] - ``` +```python +"role_messages": [ + {"role": "system", "content": "You are a friendly customer service agent."} +] +``` + - + List of function definitions available in this node. Accepts provider-specific - dict format, [`FlowsFunctionSchema`](#flowsfunctionschema) objects, or - [direct functions](#flowsdirectfunction). See [Function - Types](/server/frameworks/flows/pipecat-flows#function-types). + dict format, [`FlowsFunctionSchema`](#flowsfunctionschema) objects, or [direct + functions](#flowsdirectfunction). See [Function + Types](/pipecat-flows/reference/overview#function-types). @@ -66,14 +72,14 @@ Configuration for a single node in a conversation flow. `task_messages` is the o Strategy for managing conversation context when transitioning to this node. Overrides the default strategy set on - [FlowManager](/server/frameworks/flows/flow-manager). See + [FlowManager](/pipecat-flows/reference/flow-manager). See [ContextStrategyConfig](#contextstrategyconfig). Whether to trigger LLM inference immediately upon entering the node. Set to - `False` when you want to wait for user input before the LLM responds (e.g., after - a `tts_say` pre-action that asks a question). + `False` when you want to wait for user input before the LLM responds (e.g., + after a `tts_say` pre-action that asks a question). ## FlowsFunctionSchema @@ -92,19 +98,20 @@ Dataclass for defining function call schemas with Flows-specific properties. Pro Dictionary defining the function's parameters using JSON Schema format. - ```python - "properties": { - "city": { - "type": "string", - "description": "The city to get weather for" - }, - "units": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "Temperature units" - } - } - ``` +```python +"properties": { + "city": { + "type": "string", + "description": "The city to get weather for" + }, + "units": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature units" + } +} +``` + @@ -172,7 +179,7 @@ TypedDict for configuring actions that execute during node transitions. Action handler function. Required for custom action types if not previously registered via - [`FlowManager.register_action()`](/server/frameworks/flows/flow-manager#register_action). + [`FlowManager.register_action()`](/pipecat-flows/reference/flow-manager#register_action). Can be a legacy handler `(action)` or modern handler `(action, flow_manager)`. @@ -182,17 +189,17 @@ TypedDict for configuring actions that execute during node transitions. - Additional fields are allowed and passed through to the handler. For example, a - `"notify_slack"` action could include `"channel"` and `"text"` fields. + Additional fields are allowed and passed through to the handler. For example, + a `"notify_slack"` action could include `"channel"` and `"text"` fields. ### Built-in Action Types -| Type | Description | Required Fields | -|------|-------------|-----------------| -| `tts_say` | Speak text using the pipeline's TTS service | `text` | +| Type | Description | Required Fields | +| ------------------ | ----------------------------------------------------------- | ----------------- | +| `tts_say` | Speak text using the pipeline's TTS service | `text` | | `end_conversation` | End the conversation, optionally speaking a goodbye message | `text` (optional) | -| `function` | Execute a function inline in the pipeline | `handler` | +| `function` | Execute a function inline in the pipeline | `handler` | ### Example @@ -212,10 +219,10 @@ node_config: NodeConfig = { Enum defining strategies for managing conversation context during node transitions. -| Value | Description | -|-------|-------------| -| `APPEND` | Append new messages to existing context. This is the default behavior. | -| `RESET` | Reset context with new messages only. Previous conversation history is discarded. | +| Value | Description | +| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `APPEND` | Append new messages to existing context. This is the default behavior. | +| `RESET` | Reset context with new messages only. Previous conversation history is discarded. | | `RESET_WITH_SUMMARY` | Reset context but include an LLM-generated summary of the previous conversation. Requires `summary_prompt` in `ContextStrategyConfig`. | ```python @@ -269,10 +276,10 @@ Decorator that attaches metadata to a Pipecat direct function for use in Flows. @flows_direct_function(*, cancel_on_interruption: bool = False, timeout_secs: Optional[float] = None) ``` -| Parameter | Type | Default | Description | -|-----------|------|---------|-------------| -| `cancel_on_interruption` | `bool` | `False` | Whether to cancel the function call when the user interrupts. | -| `timeout_secs` | `float` | `None` | Optional per-tool timeout in seconds, overriding the global `function_call_timeout_secs`. | +| Parameter | Type | Default | Description | +| ------------------------ | ------- | ------- | ----------------------------------------------------------------------------------------- | +| `cancel_on_interruption` | `bool` | `False` | Whether to cancel the function call when the user interrupts. | +| `timeout_secs` | `float` | `None` | Optional per-tool timeout in seconds, overriding the global `function_call_timeout_secs`. | Direct functions have their schema automatically extracted from the function signature and docstring. The first parameter must be `flow_manager: FlowManager`, and all other parameters become the function's properties. The docstring provides the function description and parameter descriptions (Google-style). diff --git a/deployment/overview.mdx b/pipecat/deployment/overview.mdx similarity index 98% rename from deployment/overview.mdx rename to pipecat/deployment/overview.mdx index 81b618c64..68bf48a68 100644 --- a/deployment/overview.mdx +++ b/pipecat/deployment/overview.mdx @@ -78,7 +78,7 @@ torch.hub.load( Once you've familiarized yourself with the Pipecat [deployment pattern](./pattern), here are some guides that walk you through the process for various deployment options. Remember, your Pipecat bots are simply Python processes, so you can host them on whichever infrastructure or service best suits your project. - + Managed service purpose-built for Pipecat deployments diff --git a/deployment/pattern.mdx b/pipecat/deployment/pattern.mdx similarity index 99% rename from deployment/pattern.mdx rename to pipecat/deployment/pattern.mdx index c5b876d67..84835ce9d 100644 --- a/deployment/pattern.mdx +++ b/pipecat/deployment/pattern.mdx @@ -52,7 +52,7 @@ At a very basic level, it may look something like this: -![Basic pipeline image](./images/deployment-1.png) +![Basic pipeline image](/images/deployment-1.png) --- diff --git a/deployment/platforms/cerebrium.mdx b/pipecat/deployment/platforms/cerebrium.mdx similarity index 100% rename from deployment/platforms/cerebrium.mdx rename to pipecat/deployment/platforms/cerebrium.mdx diff --git a/deployment/platforms/fly.mdx b/pipecat/deployment/platforms/fly.mdx similarity index 99% rename from deployment/platforms/fly.mdx rename to pipecat/deployment/platforms/fly.mdx index fd565b7ac..e49b8316f 100644 --- a/deployment/platforms/fly.mdx +++ b/pipecat/deployment/platforms/fly.mdx @@ -9,7 +9,7 @@ Let's explore how we can use [fly.io](https://fly.io/) to make our app scalable We mentioned [before](../pattern) that you would ideally containerize the `bot_runner.py` web service and the `bot.py` separately. To keep this example simple, we'll use the same container image for both services. -![Fly.io Pipecat deployment](../images/deployment-fly.png) +![Fly.io Pipecat deployment](/images/deployment-fly.png) ### Install the Fly CLI diff --git a/deployment/platforms/modal.mdx b/pipecat/deployment/platforms/modal.mdx similarity index 99% rename from deployment/platforms/modal.mdx rename to pipecat/deployment/platforms/modal.mdx index 0834685dc..1fc172573 100644 --- a/deployment/platforms/modal.mdx +++ b/pipecat/deployment/platforms/modal.mdx @@ -17,7 +17,7 @@ This guide walks through the Modal example included in the Pipecat repository, w ![Diagram of the deployment architecture of Modal and Pipecat - example](../images/modal.jpg) + example](/images/modal.jpg) ## Install the Modal CLI diff --git a/examples.mdx b/pipecat/examples/overview.mdx similarity index 98% rename from examples.mdx rename to pipecat/examples/overview.mdx index 4f0a543cc..a65a7c646 100644 --- a/examples.mdx +++ b/pipecat/examples/overview.mdx @@ -7,7 +7,7 @@ description: "Complete applications and quickstart demos to accelerate your Pipe Get started with a basic voice bot using `pipecat init quickstart`. -[View Quickstart Guide →](/getting-started/quickstart) +[View Quickstart Guide →](/pipecat/get-started/quickstart) @@ -175,7 +175,7 @@ Stream real-time audio from an active Vonage Video API session into a Pipecat pi > Browse all examples on GitHub - + Browse code snippets & techniques Browse all recipes on GitHub - + Browse complete applications Learn more about deploying to production @@ -138,7 +138,7 @@ Each starter includes a `pcc-deploy.toml` file with sensible defaults for agent Add external integrations and dynamic responses @@ -148,14 +148,14 @@ Each starter includes a `pcc-deploy.toml` file with sensible defaults for agent Deep dive into phone integrations Understand Pipecat pipelines and processors diff --git a/guides/features/krisp-viva.mdx b/pipecat/features/krisp-viva.mdx similarity index 100% rename from guides/features/krisp-viva.mdx rename to pipecat/features/krisp-viva.mdx diff --git a/guides/features/openai-audio-models-and-apis.mdx b/pipecat/features/openai-audio-models-and-apis.mdx similarity index 100% rename from guides/features/openai-audio-models-and-apis.mdx rename to pipecat/features/openai-audio-models-and-apis.mdx diff --git a/guides/features/whatsapp.mdx b/pipecat/features/whatsapp.mdx similarity index 100% rename from guides/features/whatsapp.mdx rename to pipecat/features/whatsapp.mdx diff --git a/guides/fundamentals/context-summarization.mdx b/pipecat/fundamentals/context-summarization.mdx similarity index 96% rename from guides/fundamentals/context-summarization.mdx rename to pipecat/fundamentals/context-summarization.mdx index d32104aaf..413b91cb3 100644 --- a/guides/fundamentals/context-summarization.mdx +++ b/pipecat/fundamentals/context-summarization.mdx @@ -83,7 +83,7 @@ See the [reference page](/server/utilities/context-summarization) for all availa Context summarization intelligently preserves: -- **System messages**: If a system message exists in the context, the first one is always kept. When using [`system_instruction`](/guides/learn/context-management#system-instruction-vs-context-system-messages) in LLM Settings instead, the system prompt is not part of the context messages and is automatically prepended by the service on each request, so there is nothing to preserve in the context. +- **System messages**: If a system message exists in the context, the first one is always kept. When using [`system_instruction`](/pipecat/learn/context-management#system-instruction-vs-context-system-messages) in LLM Settings instead, the system prompt is not part of the context messages and is automatically prepended by the service on each request, so there is nothing to preserve in the context. - **Recent messages**: The last N messages stay uncompressed (configured by `min_messages_after_summary`) - **Function call sequences**: Incomplete function call/result pairs are not split during summarization @@ -216,7 +216,7 @@ if summarizer: title="Context Management" icon="book" iconType="duotone" - href="/guides/learn/context-management" + href="/pipecat/learn/context-management" > Learn how Pipecat manages conversation context in pipelines. diff --git a/guides/fundamentals/custom-frame-processor.mdx b/pipecat/fundamentals/custom-frame-processor.mdx similarity index 96% rename from guides/fundamentals/custom-frame-processor.mdx rename to pipecat/fundamentals/custom-frame-processor.mdx index e140fd72a..2e4c8894c 100644 --- a/guides/fundamentals/custom-frame-processor.mdx +++ b/pipecat/fundamentals/custom-frame-processor.mdx @@ -3,7 +3,7 @@ title: Custom FrameProcessor description: Learn how to write your own custom FrameProcessor --- -Pipecat's architecture is made up of a Pipeline, FrameProcessors, and Frames. See the [Core Concepts](/guides/learn/pipeline) for a full review. From that architecture, recall that FrameProcessors are the workers in the pipeline that receive frames and complete actions based on the frames received. +Pipecat's architecture is made up of a Pipeline, FrameProcessors, and Frames. See the [Core Concepts](/pipecat/learn/pipeline) for a full review. From that architecture, recall that FrameProcessors are the workers in the pipeline that receive frames and complete actions based on the frames received. Pipecat comes with many FrameProcessors built in. These consist of services, like `OpenAILLMService` or `CartesiaTTSService`, utilities, like `LLMTextProcessor`, and other things. Largely, you can build most of your application with these built-in FrameProcessors, but commonly, your application code may require custom frame processing logic. For example, you may want to perform an action as a result of a frame that's pushed in the pipeline. diff --git a/guides/fundamentals/detecting-user-idle.mdx b/pipecat/fundamentals/detecting-user-idle.mdx similarity index 98% rename from guides/fundamentals/detecting-user-idle.mdx rename to pipecat/fundamentals/detecting-user-idle.mdx index 0d91b96d5..62d0e4f73 100644 --- a/guides/fundamentals/detecting-user-idle.mdx +++ b/pipecat/fundamentals/detecting-user-idle.mdx @@ -120,7 +120,7 @@ This is useful when you want to enable idle detection only at certain points in - **Set appropriate timeouts**: Shorter timeouts (5-10 seconds) work well for voice conversations - **Use escalating responses**: Start with gentle reminders and gradually become more direct -- **Limit retry attempts**: After 2-3 unsuccessful attempts, consider [ending the conversation](/guides/learn/pipeline-termination) gracefully by pushing an `EndTaskFrame` +- **Limit retry attempts**: After 2-3 unsuccessful attempts, consider [ending the conversation](/pipecat/learn/pipeline-termination) gracefully by pushing an `EndTaskFrame` - **Reset on user activity**: Use the `on_user_turn_started` event to reset your retry counter when the user speaks - **Let the LLM respond naturally**: Use system messages to prompt the LLM rather than hardcoded TTS responses for more natural interactions diff --git a/guides/fundamentals/evaluations/bluejay.mdx b/pipecat/fundamentals/evaluations/bluejay.mdx similarity index 95% rename from guides/fundamentals/evaluations/bluejay.mdx rename to pipecat/fundamentals/evaluations/bluejay.mdx index 9a23da85c..5bfdd1a6a 100644 --- a/guides/fundamentals/evaluations/bluejay.mdx +++ b/pipecat/fundamentals/evaluations/bluejay.mdx @@ -22,7 +22,7 @@ With Bluejay, you can: ## Pipecat Cloud integration -If your agent is deployed on [Pipecat Cloud](/deployment/pipecat-cloud/introduction), Bluejay offers two zero-configuration integration paths: +If your agent is deployed on [Pipecat Cloud](/pipecat-cloud/introduction), Bluejay offers two zero-configuration integration paths: @@ -143,7 +143,7 @@ OpenAIInstrumentor().instrument(tracer_provider=tracer_provider) title="Evaluations Overview" icon="clipboard-check" iconType="duotone" - href="/guides/fundamentals/evaluations/overview" + href="/pipecat/fundamentals/evaluations/overview" > Learn about evaluation strategies for Pipecat agents. @@ -152,7 +152,7 @@ OpenAIInstrumentor().instrument(tracer_provider=tracer_provider) title="Saving Transcripts" icon="scroll" iconType="duotone" - href="/guides/fundamentals/saving-transcripts" + href="/pipecat/fundamentals/saving-transcripts" > Capture conversation transcripts to use with evaluation tools. diff --git a/guides/fundamentals/evaluations/cekura.mdx b/pipecat/fundamentals/evaluations/cekura.mdx similarity index 100% rename from guides/fundamentals/evaluations/cekura.mdx rename to pipecat/fundamentals/evaluations/cekura.mdx diff --git a/guides/fundamentals/evaluations/overview.mdx b/pipecat/fundamentals/evaluations/overview.mdx similarity index 88% rename from guides/fundamentals/evaluations/overview.mdx rename to pipecat/fundamentals/evaluations/overview.mdx index a8a038569..068f1e627 100644 --- a/guides/fundamentals/evaluations/overview.mdx +++ b/pipecat/fundamentals/evaluations/overview.mdx @@ -73,25 +73,26 @@ Several platforms offer simulation testing and production monitoring for voice A title="Bluejay" icon="bird" iconType="duotone" - href="/guides/fundamentals/evaluations/bluejay" + href="/pipecat/fundamentals/evaluations/bluejay" > Simulation, observability, and evaluation platform with native Pipecat Cloud integration. Supports no-code API, WebSocket, and telephony testing. - - Evaluation and testing platform for voice AI agents with simulation and scoring capabilities. - + + Evaluation and testing platform for voice AI agents with simulation and + scoring capabilities. + Automated testing and monitoring platform with native Pipecat Integration for WebRTC/Text based testing and support for Mock Tools, Custom Dynamic Variables and more! @@ -107,8 +108,8 @@ Several platforms offer simulation testing and production monitoring for voice A Pipecat provides several building blocks that feed into any evaluation workflow: -- **[Metrics](/guides/fundamentals/metrics)**: Built-in TTFB, processing time, and usage tracking for LLM and TTS services -- **[Saving transcripts](/guides/fundamentals/saving-transcripts)**: Capture conversation transcripts for offline analysis and evaluation +- **[Metrics](/pipecat/fundamentals/metrics)**: Built-in TTFB, processing time, and usage tracking for LLM and TTS services +- **[Saving transcripts](/pipecat/fundamentals/saving-transcripts)**: Capture conversation transcripts for offline analysis and evaluation - **[OpenTelemetry](/server/utilities/opentelemetry)**: Export traces to any OTel-compatible backend for latency and performance monitoring - **[Observers](/server/utilities/observers/observer-pattern)**: Monitor frame flow without modifying the pipeline, useful for custom instrumentation @@ -119,7 +120,7 @@ Pipecat provides several building blocks that feed into any evaluation workflow: title="Metrics" icon="chart-line" iconType="duotone" - href="/guides/fundamentals/metrics" + href="/pipecat/fundamentals/metrics" > Monitor performance and LLM/TTS usage with Pipecat's built-in metrics. @@ -128,7 +129,7 @@ Pipecat provides several building blocks that feed into any evaluation workflow: title="Saving Transcripts" icon="scroll" iconType="duotone" - href="/guides/fundamentals/saving-transcripts" + href="/pipecat/fundamentals/saving-transcripts" > Capture conversation transcripts to use with evaluation tools. @@ -146,7 +147,7 @@ Pipecat provides several building blocks that feed into any evaluation workflow: title="Custom Frame Processor" icon="puzzle-piece" iconType="duotone" - href="/guides/fundamentals/custom-frame-processor" + href="/pipecat/fundamentals/custom-frame-processor" > Build custom processors for evaluation-specific instrumentation. diff --git a/guides/fundamentals/ivr.mdx b/pipecat/fundamentals/ivr.mdx similarity index 97% rename from guides/fundamentals/ivr.mdx rename to pipecat/fundamentals/ivr.mdx index c4d41c704..b349d45fe 100644 --- a/guides/fundamentals/ivr.mdx +++ b/pipecat/fundamentals/ivr.mdx @@ -25,7 +25,7 @@ The `IVRNavigator` can reach several outcomes during navigation: The navigator successfully reaches its goal and is ready for the next step. Common actions: -- [Terminate the pipeline](/guides/learn/pipeline-termination) if the goal is complete +- [Terminate the pipeline](/pipecat/learn/pipeline-termination) if the goal is complete - Transfer the call to a human agent - Allow your bot to start a conversation with the reached department @@ -208,7 +208,7 @@ The IVRNavigator automatically optimizes Voice Activity Detection (VAD) paramete Learn how to properly terminate pipelines when IVR navigation completes @@ -216,7 +216,7 @@ The IVRNavigator automatically optimizes Voice Activity Detection (VAD) paramete Integrate structured conversation flows after successful IVR navigation diff --git a/guides/fundamentals/metrics.mdx b/pipecat/fundamentals/metrics.mdx similarity index 98% rename from guides/fundamentals/metrics.mdx rename to pipecat/fundamentals/metrics.mdx index 095344329..3865f7317 100644 --- a/guides/fundamentals/metrics.mdx +++ b/pipecat/fundamentals/metrics.mdx @@ -118,7 +118,7 @@ When metrics are enabled, Pipecat emits a `MetricsFrame` for each interaction. T - `TextAggregationMetricsData` — Sentence aggregation latency (TTS) - `TurnMetricsData` — Turn completion predictions -You can access the metrics data by either adding a custom [FrameProcessor](/guides/fundamentals/custom-frame-processor) to your pipeline or adding an [observer](/server/utilities/observers/observer-pattern) to monitor `MetricsFrame`s. +You can access the metrics data by either adding a custom [FrameProcessor](/pipecat/fundamentals/custom-frame-processor) to your pipeline or adding an [observer](/server/utilities/observers/observer-pattern) to monitor `MetricsFrame`s. ### Example: Using MetricsLogObserver diff --git a/guides/fundamentals/recording-audio.mdx b/pipecat/fundamentals/recording-audio.mdx similarity index 100% rename from guides/fundamentals/recording-audio.mdx rename to pipecat/fundamentals/recording-audio.mdx diff --git a/guides/fundamentals/saving-transcripts.mdx b/pipecat/fundamentals/saving-transcripts.mdx similarity index 100% rename from guides/fundamentals/saving-transcripts.mdx rename to pipecat/fundamentals/saving-transcripts.mdx diff --git a/guides/fundamentals/service-settings.mdx b/pipecat/fundamentals/service-settings.mdx similarity index 100% rename from guides/fundamentals/service-settings.mdx rename to pipecat/fundamentals/service-settings.mdx diff --git a/guides/fundamentals/stt-latency-tuning.mdx b/pipecat/fundamentals/stt-latency-tuning.mdx similarity index 100% rename from guides/fundamentals/stt-latency-tuning.mdx rename to pipecat/fundamentals/stt-latency-tuning.mdx diff --git a/guides/fundamentals/user-input-muting.mdx b/pipecat/fundamentals/user-input-muting.mdx similarity index 100% rename from guides/fundamentals/user-input-muting.mdx rename to pipecat/fundamentals/user-input-muting.mdx diff --git a/guides/fundamentals/voicemail.mdx b/pipecat/fundamentals/voicemail.mdx similarity index 100% rename from guides/fundamentals/voicemail.mdx rename to pipecat/fundamentals/voicemail.mdx diff --git a/getting-started/ai-tools.mdx b/pipecat/get-started/ai-tools.mdx similarity index 100% rename from getting-started/ai-tools.mdx rename to pipecat/get-started/ai-tools.mdx diff --git a/getting-started/build-your-next-bot.mdx b/pipecat/get-started/build-your-next-bot.mdx similarity index 86% rename from getting-started/build-your-next-bot.mdx rename to pipecat/get-started/build-your-next-bot.mdx index 628dd0f76..166656f69 100644 --- a/getting-started/build-your-next-bot.mdx +++ b/pipecat/get-started/build-your-next-bot.mdx @@ -7,7 +7,7 @@ Ready to build your own bot? The Pipecat CLI scaffolds complete projects tailore **New to Pipecat?** We recommend completing the - [Quickstart](/getting-started/quickstart) first to understand Pipecat basics + [Quickstart](/pipecat/get-started/quickstart) first to understand Pipecat basics before scaffolding your own project. @@ -60,11 +60,11 @@ Ready to deploy your bot? Choose between managed cloud hosting or self-hosted in Deploy and manage your agents with the CLI - purpose-built for Pipecat - + Deploy to Fly.io, Modal, AWS, or your own infrastructure @@ -72,7 +72,7 @@ Ready to deploy your bot? Choose between managed cloud hosting or self-hosted in ## Learn More - + Understand pipelines, processors, and transports - Build and run your first Pipecat application + + Want to dive right in? Build and run your first Pipecat application ## What You Can Build @@ -27,7 +23,7 @@ Want to dive right in? Run `pipecat init quickstart` to create and run your firs Connect to your agent via phone for support, intake, and customer service interactions @@ -79,8 +75,6 @@ Here's what happens in a typical voice conversation: In most cases, the entire round-trip interaction happens between 500-800ms, creating a natural conversation experience for the user. -The diagram below shows a typical voice assistant pipeline, where each step happens in real-time: - Pipecat Overview - + Build and run your first Pipecat application + + Learn about pipelines, processors, transports, and context management + - Browse client SDKs, tools, and AI services + Browse the complete list of 100+ AI service integrations + + + Deploy to Pipecat Cloud or self-host on your own infrastructure - - -## Get Involved - - - - - Connect with other developers, share your projects, and get support from the - Pipecat team. - - - - Explore the source code, open issues, and contribute to the project. - - diff --git a/getting-started/next-steps.mdx b/pipecat/get-started/next-steps.mdx similarity index 77% rename from getting-started/next-steps.mdx rename to pipecat/get-started/next-steps.mdx index 025947dea..49ea487cb 100644 --- a/getting-started/next-steps.mdx +++ b/pipecat/get-started/next-steps.mdx @@ -11,7 +11,7 @@ Now that you've run your first Pipecat bot, here's how to continue learning and Understand pipelines, processors, transports, and how to build custom AI applications from the ground up. @@ -37,7 +37,7 @@ Ready to create your own bot? Use the CLI to scaffold a project tailored to your Scaffold phone or web/mobile projects with the Pipecat CLI @@ -47,13 +47,13 @@ Ready to create your own bot? Use the CLI to scaffold a project tailored to your Master the fundamentals to build custom solutions and debug effectively. - + Learn about pipelines, processors, transports, and context management Function calling, audio recording, transcripts, and custom processors @@ -71,7 +71,7 @@ Explore real-world examples and recipes for common use cases. > 30+ production-ready examples including multimodal bots and games - + Common patterns and solutions for specific use cases @@ -80,9 +80,18 @@ Explore real-world examples and recipes for common use cases. Scale your bot with managed hosting or self-hosted infrastructure. - - Compare Pipecat Cloud, Fly.io, Modal, and other platforms - + + + Managed hosting with auto-scaling and built-in WebRTC + + + Deploy on Fly.io, Modal, Cerebrium, or your own infrastructure + + ## Need Help? diff --git a/getting-started/quickstart.mdx b/pipecat/get-started/quickstart.mdx similarity index 98% rename from getting-started/quickstart.mdx rename to pipecat/get-started/quickstart.mdx index aa121dc70..4a9344014 100644 --- a/getting-started/quickstart.mdx +++ b/pipecat/get-started/quickstart.mdx @@ -174,7 +174,7 @@ The CLI automatically builds your image using the pcc-deploy.toml file and Docke Want to use your own container registry? See the [container registries - guide](/deployment/pipecat-cloud/guides/container-registries/overview) for + guide](/pipecat-cloud/guides/container-registries/overview) for advanced deployment options. @@ -189,7 +189,7 @@ The CLI automatically builds your image using the pcc-deploy.toml file and Docke Explore advanced Pipecat Cloud features like scaling, monitoring, secrets management, and production best practices. @@ -381,7 +381,7 @@ The quickstart gave you a working example, but the Pipecat CLI helps you scaffol Use the CLI to scaffold phone or web/mobile projects customized for your needs @@ -394,7 +394,7 @@ Dive deeper into Pipecat's architecture and learn how to build custom solutions. Master pipelines, processors, transports, and context management diff --git a/guides/learn/context-management.mdx b/pipecat/learn/context-management.mdx similarity index 96% rename from guides/learn/context-management.mdx rename to pipecat/learn/context-management.mdx index 88d67483b..202b56096 100644 --- a/guides/learn/context-management.mdx +++ b/pipecat/learn/context-management.mdx @@ -16,7 +16,7 @@ messages = [ ] ``` -The system prompt is typically set via `system_instruction` in the LLM service's [Settings](/guides/fundamentals/service-settings), not as a message in the context. See [System Instruction vs Context System Messages](#system-instruction-vs-context-system-messages) below for details. +The system prompt is typically set via `system_instruction` in the LLM service's [Settings](/pipecat/fundamentals/service-settings), not as a message in the context. See [System Instruction vs Context System Messages](#system-instruction-vs-context-system-messages) below for details. Since Pipecat is a real-time voice AI framework, context management happens automatically as the conversation flows, but you can also control it manually when needed. @@ -250,7 +250,7 @@ user_aggregator, assistant_aggregator = LLMContextAggregatorPair( Learn how to configure summarization triggers, customize behavior, and control what gets preserved. @@ -296,6 +296,6 @@ This gives you fine-grained control over when and how the bot responds during th Now that you understand context management, let's explore how to configure the LLM services that process this context to generate intelligent responses. - + Learn how to configure language models in your voice AI pipeline diff --git a/guides/learn/function-calling.mdx b/pipecat/learn/function-calling.mdx similarity index 99% rename from guides/learn/function-calling.mdx rename to pipecat/learn/function-calling.mdx index 5d64742a1..7a7339531 100644 --- a/guides/learn/function-calling.mdx +++ b/pipecat/learn/function-calling.mdx @@ -533,7 +533,7 @@ Now that you understand function calling, let's explore how to configure text-to Learn how to configure speech synthesis in your voice AI pipeline diff --git a/guides/learn/llm.mdx b/pipecat/learn/llm.mdx similarity index 96% rename from guides/learn/llm.mdx rename to pipecat/learn/llm.mdx index 678a1ccd5..7d024d72c 100644 --- a/guides/learn/llm.mdx +++ b/pipecat/learn/llm.mdx @@ -32,7 +32,7 @@ pipeline = Pipeline([ - Denotes the start of the streaming response by pushing an `LLMFullResponseStartFrame` - Streams `LLMTextFrame`s containing response tokens to downstream processors (enables real-time TTS processing) - Ends with an `LLMFullResponseEndFrame` to mark the completion of the response - - Output frames can be configured to [skip TTS](/guides/learn/text-to-speech#skipping-tts-output) via `LLMConfigureOutputFrame(skip_tts=True)`, allowing text to flow through the pipeline without being spoken + - Output frames can be configured to [skip TTS](/pipecat/learn/text-to-speech#skipping-tts-output) via `LLMConfigureOutputFrame(skip_tts=True)`, allowing text to flow through the pipeline without being spoken - **Function calls:** - `FunctionCallsStartedFrame`: Indicates function execution beginning - `FunctionCallInProgressFrame`: Indicates a function is currently executing @@ -184,7 +184,7 @@ Function calls and their results are automatically stored in the conversation co Learn how to enable LLMs to interact with external services and APIs @@ -205,7 +205,7 @@ Now that you understand LLM configuration, let's explore how function calling en Learn how to enable LLMs to interact with external services and APIs diff --git a/guides/learn/overview.mdx b/pipecat/learn/overview.mdx similarity index 99% rename from guides/learn/overview.mdx rename to pipecat/learn/overview.mdx index add68c0a3..d8c9912cc 100644 --- a/guides/learn/overview.mdx +++ b/pipecat/learn/overview.mdx @@ -144,7 +144,7 @@ Each section includes practical examples and configuration options to help you b Let's begin with session initialization to connect users to your voice AI agent diff --git a/guides/learn/pipeline-termination.mdx b/pipecat/learn/pipeline-termination.mdx similarity index 99% rename from guides/learn/pipeline-termination.mdx rename to pipecat/learn/pipeline-termination.mdx index fd1bdd5a0..df89e3a9a 100644 --- a/guides/learn/pipeline-termination.mdx +++ b/pipecat/learn/pipeline-termination.mdx @@ -259,6 +259,6 @@ await self.push_frame(CancelTaskFrame(), FrameDirection.UPSTREAM) You now understand how to build, run, and properly terminate voice AI pipelines! Next, let's explore advanced development tools that can accelerate your Pipecat development process. - + You've completed the learning guide! Continue to see recommended next steps. diff --git a/guides/learn/pipeline.mdx b/pipecat/learn/pipeline.mdx similarity index 98% rename from guides/learn/pipeline.mdx rename to pipecat/learn/pipeline.mdx index 35f7994c4..facf97387 100644 --- a/guides/learn/pipeline.mdx +++ b/pipecat/learn/pipeline.mdx @@ -141,7 +141,7 @@ class TranscriptionLogger(FrameProcessor): Learn how to build your own frame processors @@ -221,7 +221,7 @@ Frame processors have internal queues that ensure ordered processing: Learn more about frame flow patterns in the [Custom Frame Processor - Guide](/guides/fundamentals/custom-frame-processor). + Guide](/pipecat/fundamentals/custom-frame-processor). ## Pipeline Execution @@ -355,7 +355,7 @@ These configuration options enable you to optimize performance, debug issues, an Monitor pipeline performance, latency, and API usage in real-time @@ -383,6 +383,6 @@ These configuration options enable you to optimize performance, debug issues, an Now that you understand how pipelines orchestrate processing, let's explore the different transport options that connect your pipeline to users. - + Learn about the different ways users can connect to your voice AI pipeline diff --git a/guides/learn/session-initialization.mdx b/pipecat/learn/session-initialization.mdx similarity index 98% rename from guides/learn/session-initialization.mdx rename to pipecat/learn/session-initialization.mdx index ae75a17e1..95846e40a 100644 --- a/guides/learn/session-initialization.mdx +++ b/pipecat/learn/session-initialization.mdx @@ -117,7 +117,7 @@ While the development runner handles the complexity, understanding the three con Room-based WebRTC can also be used for SIP or PSTN connections, which require different connection patterns. Refer to the [telephony - guide](/guides/telephony/overview) for details. + guide](/pipecat/telephony/overview) for details. ### 3. WebSocket Connections (Telephony) @@ -237,7 +237,7 @@ Now that you understand session initialization, let's explore the different tran Learn how Pipecat's pipeline architecture orchestrates frame processing for voice AI applications diff --git a/guides/learn/speech-input.mdx b/pipecat/learn/speech-input.mdx similarity index 99% rename from guides/learn/speech-input.mdx rename to pipecat/learn/speech-input.mdx index 56765b734..709fbff72 100644 --- a/guides/learn/speech-input.mdx +++ b/pipecat/learn/speech-input.mdx @@ -217,7 +217,7 @@ Now that you understand how speech input is detected and processed, let's explor Learn how to configure speech recognition in your voice AI pipeline diff --git a/guides/learn/speech-to-text.mdx b/pipecat/learn/speech-to-text.mdx similarity index 99% rename from guides/learn/speech-to-text.mdx rename to pipecat/learn/speech-to-text.mdx index f98aaebcd..2c9f59329 100644 --- a/guides/learn/speech-to-text.mdx +++ b/pipecat/learn/speech-to-text.mdx @@ -289,7 +289,7 @@ Each STT service has a measured P99 latency for delivering final transcripts aft Learn about TTFS latency, see default values for every STT service, and how to measure and override for your deployment @@ -310,7 +310,7 @@ Now that you understand speech recognition, let's explore how to manage conversa Learn how to handle conversation history and context in your pipeline diff --git a/guides/learn/text-to-speech.mdx b/pipecat/learn/text-to-speech.mdx similarity index 99% rename from guides/learn/text-to-speech.mdx rename to pipecat/learn/text-to-speech.mdx index c142aa690..4ba28dd9c 100644 --- a/guides/learn/text-to-speech.mdx +++ b/pipecat/learn/text-to-speech.mdx @@ -361,7 +361,7 @@ You've now learned how to build a complete voice AI pipeline! Let's explore some Learn how to terminate your voice AI pipeline at the end of a conversation diff --git a/guides/learn/transports.mdx b/pipecat/learn/transports.mdx similarity index 99% rename from guides/learn/transports.mdx rename to pipecat/learn/transports.mdx index 1fa52a76d..12ec3a92d 100644 --- a/guides/learn/transports.mdx +++ b/pipecat/learn/transports.mdx @@ -296,7 +296,7 @@ Now that you understand how transports connect users to your bot, let's explore Learn how to configure speech recognition in your voice AI pipeline diff --git a/guides/learn/whats-next.mdx b/pipecat/learn/whats-next.mdx similarity index 93% rename from guides/learn/whats-next.mdx rename to pipecat/learn/whats-next.mdx index 07d5e2891..6b132267f 100644 --- a/guides/learn/whats-next.mdx +++ b/pipecat/learn/whats-next.mdx @@ -19,7 +19,7 @@ Congratulations! You've learned how to build complete voice AI applications with multimodal bots, creative applications, and enterprise integrations. - + **Master advanced features** - Explore specialized topics like telephony, deployment, custom processors, and production optimization. diff --git a/guides/telephony/daily-phone-numbers.mdx b/pipecat/telephony/daily-phone-numbers.mdx similarity index 100% rename from guides/telephony/daily-phone-numbers.mdx rename to pipecat/telephony/daily-phone-numbers.mdx diff --git a/guides/telephony/daily-pstn.mdx b/pipecat/telephony/daily-pstn.mdx similarity index 98% rename from guides/telephony/daily-pstn.mdx rename to pipecat/telephony/daily-pstn.mdx index 2a838d42c..171d4716a 100644 --- a/guides/telephony/daily-pstn.mdx +++ b/pipecat/telephony/daily-pstn.mdx @@ -383,14 +383,14 @@ For production deployment without managing your own infrastructure, use Pipecat Complete guide for deploying dial-in bots with automatic webhook handling Complete guide for deploying dial-out bots with caller ID management diff --git a/guides/telephony/exotel-websockets.mdx b/pipecat/telephony/exotel-websockets.mdx similarity index 99% rename from guides/telephony/exotel-websockets.mdx rename to pipecat/telephony/exotel-websockets.mdx index 876140dd8..77c67e8c6 100644 --- a/guides/telephony/exotel-websockets.mdx +++ b/pipecat/telephony/exotel-websockets.mdx @@ -321,7 +321,7 @@ For production deployment without managing your own infrastructure, use Pipecat Deploy Exotel WebSocket bots with automatic scaling and managed infrastructure diff --git a/guides/telephony/overview.mdx b/pipecat/telephony/overview.mdx similarity index 100% rename from guides/telephony/overview.mdx rename to pipecat/telephony/overview.mdx diff --git a/guides/telephony/plivo-websockets.mdx b/pipecat/telephony/plivo-websockets.mdx similarity index 99% rename from guides/telephony/plivo-websockets.mdx rename to pipecat/telephony/plivo-websockets.mdx index f933ac0d9..a9f91cdc4 100644 --- a/guides/telephony/plivo-websockets.mdx +++ b/pipecat/telephony/plivo-websockets.mdx @@ -379,7 +379,7 @@ For production deployment without managing your own infrastructure, use Pipecat Deploy Plivo WebSocket bots with automatic scaling and managed infrastructure diff --git a/guides/telephony/telnyx-websockets.mdx b/pipecat/telephony/telnyx-websockets.mdx similarity index 99% rename from guides/telephony/telnyx-websockets.mdx rename to pipecat/telephony/telnyx-websockets.mdx index c60fb5062..89c81df45 100644 --- a/guides/telephony/telnyx-websockets.mdx +++ b/pipecat/telephony/telnyx-websockets.mdx @@ -346,7 +346,7 @@ For production deployment without managing your own infrastructure, use Pipecat Deploy Telnyx WebSocket bots with automatic scaling and managed infrastructure diff --git a/guides/telephony/twilio-daily-sip.mdx b/pipecat/telephony/twilio-daily-sip.mdx similarity index 100% rename from guides/telephony/twilio-daily-sip.mdx rename to pipecat/telephony/twilio-daily-sip.mdx diff --git a/guides/telephony/twilio-websockets.mdx b/pipecat/telephony/twilio-websockets.mdx similarity index 99% rename from guides/telephony/twilio-websockets.mdx rename to pipecat/telephony/twilio-websockets.mdx index 3402790d6..160a92c22 100644 --- a/guides/telephony/twilio-websockets.mdx +++ b/pipecat/telephony/twilio-websockets.mdx @@ -308,7 +308,7 @@ For production deployment without managing your own infrastructure, use Pipecat Deploy Twilio WebSocket bots with automatic scaling and managed infrastructure diff --git a/server/introduction.mdx b/server/introduction.mdx index 779048540..c2797b5ab 100644 --- a/server/introduction.mdx +++ b/server/introduction.mdx @@ -1,103 +1,41 @@ --- -title: "Server API Reference" -description: "Complete reference for Pipecat’s Python server APIs and services" +title: "Pipecat Server Overview" +sidebarTitle: "Overview" +description: "API reference for the Pipecat Python framework." --- -## Overview +This is the API reference for the server-side Pipecat Python framework. It covers the services, utilities, pipeline components, and frame types you use to build voice and multimodal AI agents. -Pipecat's server-side functionality is organized into three main categories: +## What's in This Reference - - - AI service integrations for speech, language, vision, and more - - - RTVI for client/server communication or Pipecat Flows for building structured conversations - +- **Services**: Integrations for STT, LLM, TTS, speech-to-speech, image generation, video, transports, and more. Over 100 providers supported. +- **Utilities**: Frame processors, audio filters, observers, turn detection, context summarization, MCP, and other helpers. +- **Pipeline**: Configuration, task management, idle detection, and parallel pipelines. +- **Frames**: Data frames, control frames, system frames, and LLM frames that flow through the pipeline. +- **Events**: Frame processor and service events for hooking into the pipeline lifecycle. - - Helper functions and tools for audio, filtering, and flows - - - -## Service Categories - -Pipecat integrates with various AI services across different categories: +## Explore - - WebRTC and WebSocket implementations for real-time communication + + Browse the full list of AI service integrations and their install commands - - Speech-to-text, text-to-speech, and speech-to-speech services + + Understand the data, control, system, and LLM frames that flow through + pipelines - - Integration with various LLM providers + + Hook into pipeline lifecycle with frame processor and service events - - Image generation, video processing, and computer vision + + Auto-generated API reference with every class, method, and parameter - -## Getting Started - -1. Browse our [Supported Services](/server/services/supported-services) to see available integrations -2. Install required dependencies for your chosen services -3. Reference individual service docs for detailed configuration options - -## Example Usage - -```python -from pipecat.audio.vad.silero import SileroVADAnalyzer -from pipecat.audio.vad.vad_analyzer import VADParams -from pipecat.pipeline import Pipeline -from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import ( - LLMContextAggregatorPair, - LLMUserAggregatorParams, -) -from pipecat.services.cartesia.tts import CartesiaTTSService -from pipecat.services.deepgram.stt import DeepgramSTTService -from pipecat.services.openai.llm import OpenAILLMService -from pipecat.transports.daily.transport import DailyParams, DailyTransport - -transport = DailyTransport( - room_url, - token, - "Respond bot", - DailyParams( - audio_in_enabled=True, - audio_out_enabled=True, - ), -) - -# Configure services -stt = DeepgramSTTService(api_key=KEY) -llm = OpenAILLMService(api_key=KEY, model="gpt-4o") -tts = CartesiaTTSService(api_key=KEY, voice_id=ID) - -# Create context and aggregators -context = LLMContext( - messages=[{"role": "system", "content": "You are a helpful assistant."}] -) -user_aggregator, assistant_aggregator = LLMContextAggregatorPair( - context, - user_params=LLMUserAggregatorParams( - vad_analyzer=SileroVADAnalyzer(), - ), -) - -# Create pipeline -pipeline = Pipeline([ - transport.input(), - stt, - user_aggregator, - llm, - tts, - transport.output(), - assistant_aggregator, -]) -``` diff --git a/server/services/image-generation/azure.mdx b/server/services/image-generation/azure.mdx index 6149cfd98..f73ea9e13 100644 --- a/server/services/image-generation/azure.mdx +++ b/server/services/image-generation/azure.mdx @@ -86,7 +86,7 @@ Before using Azure OpenAI image generation services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AzureImageGenServiceREST.Settings(...)`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AzureImageGenServiceREST.Settings(...)`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------ | ------------- | ----------- | ------------------------------------------------------------------------------ | @@ -120,7 +120,7 @@ async with aiohttp.ClientSession() as session: The deprecated `model` and `image_size` constructor parameters are replaced by `Settings` as of v0.0.105. Use `Settings` / `settings=` instead. See the - [Service Settings guide](/guides/fundamentals/service-settings) for migration + [Service Settings guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/image-generation/fal.mdx b/server/services/image-generation/fal.mdx index 71b31bf74..d260b91d6 100644 --- a/server/services/image-generation/fal.mdx +++ b/server/services/image-generation/fal.mdx @@ -80,7 +80,7 @@ Before using fal image generation services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `FalImageGenService.Settings(...)`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `FalImageGenService.Settings(...)`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ------------- | ----------- | ----------------------------------------------------------------------- | @@ -137,7 +137,7 @@ image_gen = FalImageGenService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/image-generation/google.mdx b/server/services/image-generation/google.mdx index c3bfdf064..ae36a0f61 100644 --- a/server/services/image-generation/google.mdx +++ b/server/services/image-generation/google.mdx @@ -86,7 +86,7 @@ Before using Google Imagen services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GoogleImageGenService.Settings(...)`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GoogleImageGenService.Settings(...)`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------ | ------------- | ----------- | ----------------------------------------------------------------------------- | @@ -128,7 +128,7 @@ image_gen = GoogleImageGenService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/image-generation/openai.mdx b/server/services/image-generation/openai.mdx index 74c2a2e5d..79033588b 100644 --- a/server/services/image-generation/openai.mdx +++ b/server/services/image-generation/openai.mdx @@ -90,7 +90,7 @@ Before using OpenAI image generation services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIImageGenService.Settings(...)`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIImageGenService.Settings(...)`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------ | ---------------- | ------------ | ---------------------------------------------------------- | @@ -137,7 +137,7 @@ image_gen = OpenAIImageGenService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/llm/anthropic.mdx b/server/services/llm/anthropic.mdx index 74c63e8ac..7409ed008 100644 --- a/server/services/llm/anthropic.mdx +++ b/server/services/llm/anthropic.mdx @@ -99,7 +99,7 @@ Before using Anthropic LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AnthropicLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AnthropicLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ------------------------- | ----------- | ----------------------------------------------------------------------------------------------- | @@ -194,7 +194,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/llm/aws.mdx b/server/services/llm/aws.mdx index a52237339..b4ec7cf6c 100644 --- a/server/services/llm/aws.mdx +++ b/server/services/llm/aws.mdx @@ -126,7 +126,7 @@ Before using AWS Bedrock LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AWSBedrockLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AWSBedrockLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------------------------- | ----------- | ----------- | -------------------------------------------------------------------------------------------------- | @@ -202,7 +202,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/llm/azure.mdx b/server/services/llm/azure.mdx index 3b4f6b599..4d14401b7 100644 --- a/server/services/llm/azure.mdx +++ b/server/services/llm/azure.mdx @@ -101,7 +101,7 @@ Since `AzureLLMService` inherits from `OpenAILLMService`, it also accepts the fo ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AzureLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AzureLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. `AzureLLMService` uses the same settings as `OpenAILLMService`. See the [OpenAI LLM Settings](/server/services/llm/openai#settings) section for the full parameter reference. @@ -179,5 +179,5 @@ async def on_completion_timeout(service): The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/cerebras.mdx b/server/services/llm/cerebras.mdx index 6fa988a25..97feadc6a 100644 --- a/server/services/llm/cerebras.mdx +++ b/server/services/llm/cerebras.mdx @@ -83,7 +83,7 @@ _Deprecated in v0.0.105. Use `settings=CerebrasLLMService.Settings(model=...)` i ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `CerebrasLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `CerebrasLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -125,5 +125,5 @@ llm = CerebrasLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/deepseek.mdx b/server/services/llm/deepseek.mdx index b79ed5880..6abc3b97a 100644 --- a/server/services/llm/deepseek.mdx +++ b/server/services/llm/deepseek.mdx @@ -83,7 +83,7 @@ _Deprecated in v0.0.105. Use `settings=DeepSeekLLMService.Settings(model=...)` i ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepSeekLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepSeekLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -125,5 +125,5 @@ llm = DeepSeekLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/fireworks.mdx b/server/services/llm/fireworks.mdx index ce42188ed..7bbb6a6bd 100644 --- a/server/services/llm/fireworks.mdx +++ b/server/services/llm/fireworks.mdx @@ -92,7 +92,7 @@ _Deprecated in v0.0.105. Use `settings=FireworksLLMService.Settings(model=...)` ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `FireworksLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `FireworksLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -134,5 +134,5 @@ llm = FireworksLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/google-vertex.mdx b/server/services/llm/google-vertex.mdx index 4abcea1ca..5d63f58a3 100644 --- a/server/services/llm/google-vertex.mdx +++ b/server/services/llm/google-vertex.mdx @@ -174,5 +174,5 @@ llm = GoogleVertexLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/google.mdx b/server/services/llm/google.mdx index 8a6058330..b87babc04 100644 --- a/server/services/llm/google.mdx +++ b/server/services/llm/google.mdx @@ -102,7 +102,7 @@ Before using Google Gemini LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GoogleLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GoogleLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------- | ---------------------- | ----------- | -------------------------------------------------------------------------------------------------- | @@ -216,7 +216,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/llm/grok.mdx b/server/services/llm/grok.mdx index 829cdccfb..a0f6cb2a3 100644 --- a/server/services/llm/grok.mdx +++ b/server/services/llm/grok.mdx @@ -79,7 +79,7 @@ _Deprecated in v0.0.105. Use `settings=GrokLLMService.Settings(model=...)` inste ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GrokLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GrokLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -121,5 +121,5 @@ llm = GrokLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/groq.mdx b/server/services/llm/groq.mdx index 6590635ef..cda441e1f 100644 --- a/server/services/llm/groq.mdx +++ b/server/services/llm/groq.mdx @@ -79,7 +79,7 @@ _Deprecated in v0.0.105. Use `settings=GroqLLMService.Settings(model=...)` inste ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GroqLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GroqLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -121,5 +121,5 @@ llm = GroqLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/mistral.mdx b/server/services/llm/mistral.mdx index 0888bb4f2..5a9fda4dc 100644 --- a/server/services/llm/mistral.mdx +++ b/server/services/llm/mistral.mdx @@ -83,7 +83,7 @@ _Deprecated in v0.0.105. Use `settings=MistralLLMService.Settings(model=...)` in ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `MistralLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `MistralLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -143,5 +143,5 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/novita.mdx b/server/services/llm/novita.mdx index ffaf384a7..9c54c2ffa 100644 --- a/server/services/llm/novita.mdx +++ b/server/services/llm/novita.mdx @@ -72,7 +72,7 @@ Before using Novita AI LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NovitaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NovitaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. diff --git a/server/services/llm/nvidia.mdx b/server/services/llm/nvidia.mdx index f51cd4be0..0909c4a3f 100644 --- a/server/services/llm/nvidia.mdx +++ b/server/services/llm/nvidia.mdx @@ -93,7 +93,7 @@ _Deprecated in v0.0.105. Use `settings=NvidiaLLMService.Settings(model=...)` ins ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -136,5 +136,5 @@ llm = NvidiaLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/ollama.mdx b/server/services/llm/ollama.mdx index 3bf6b3d86..341dc0b49 100644 --- a/server/services/llm/ollama.mdx +++ b/server/services/llm/ollama.mdx @@ -96,7 +96,7 @@ _Deprecated in v0.0.105. Use `settings=OLLamaLLMService.Settings(model=...)` ins ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OLLamaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OLLamaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -146,5 +146,5 @@ llm = OLLamaLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/openai-responses.mdx b/server/services/llm/openai-responses.mdx index 8afde6c34..943936466 100644 --- a/server/services/llm/openai-responses.mdx +++ b/server/services/llm/openai-responses.mdx @@ -106,7 +106,7 @@ Before using OpenAI Responses LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIResponsesLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIResponsesLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ------- | ----------- | --------------------------------------------------------------------------------------------------- | diff --git a/server/services/llm/openai.mdx b/server/services/llm/openai.mdx index 19f43b2b0..32b0bafca 100644 --- a/server/services/llm/openai.mdx +++ b/server/services/llm/openai.mdx @@ -112,7 +112,7 @@ Before using OpenAI LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAILLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAILLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ------- | ----------- | --------------------------------------------------------------------------------------------------- | @@ -183,7 +183,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/llm/openpipe.mdx b/server/services/llm/openpipe.mdx index d3d2eb1be..62d60bc5e 100644 --- a/server/services/llm/openpipe.mdx +++ b/server/services/llm/openpipe.mdx @@ -96,7 +96,7 @@ Before using OpenPipe LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenPipeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenPipeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -140,5 +140,5 @@ llm = OpenPipeLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/openrouter.mdx b/server/services/llm/openrouter.mdx index 9f26f96a3..eef35b94e 100644 --- a/server/services/llm/openrouter.mdx +++ b/server/services/llm/openrouter.mdx @@ -83,7 +83,7 @@ Before using OpenRouter LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenRouterLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenRouterLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -124,5 +124,5 @@ llm = OpenRouterLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/perplexity.mdx b/server/services/llm/perplexity.mdx index e580947c4..2919a9055 100644 --- a/server/services/llm/perplexity.mdx +++ b/server/services/llm/perplexity.mdx @@ -87,7 +87,7 @@ Before using Perplexity LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `PerplexityLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `PerplexityLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -131,5 +131,5 @@ llm = PerplexityLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/qwen.mdx b/server/services/llm/qwen.mdx index f2c44a551..49aff2ed3 100644 --- a/server/services/llm/qwen.mdx +++ b/server/services/llm/qwen.mdx @@ -85,7 +85,7 @@ Before using Qwen LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `QwenLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `QwenLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -128,5 +128,5 @@ llm = QwenLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/sambanova.mdx b/server/services/llm/sambanova.mdx index 56a85c063..617670cee 100644 --- a/server/services/llm/sambanova.mdx +++ b/server/services/llm/sambanova.mdx @@ -81,7 +81,7 @@ Before using SambaNova LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SambaNovaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SambaNovaLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -124,5 +124,5 @@ llm = SambaNovaLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/llm/sarvam.mdx b/server/services/llm/sarvam.mdx index 7122e00a8..12527fdd0 100644 --- a/server/services/llm/sarvam.mdx +++ b/server/services/llm/sarvam.mdx @@ -72,7 +72,7 @@ Before using Sarvam LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SarvamLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SarvamLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------- | ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------ | diff --git a/server/services/llm/together.mdx b/server/services/llm/together.mdx index d5974a1b4..8619bdd79 100644 --- a/server/services/llm/together.mdx +++ b/server/services/llm/together.mdx @@ -81,7 +81,7 @@ Before using Together AI LLM services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `TogetherLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `TogetherLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. This service uses the same settings as `OpenAILLMService`. See [OpenAI LLM Settings](/server/services/llm/openai#settings) for the full parameter reference. @@ -123,5 +123,5 @@ llm = TogetherLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/s2s/aws.mdx b/server/services/s2s/aws.mdx index d97bcd40d..bd3242ad0 100644 --- a/server/services/s2s/aws.mdx +++ b/server/services/s2s/aws.mdx @@ -146,7 +146,7 @@ _Deprecated in v0.0.105. Use `settings=AWSNovaSonicLLMService.Settings(system_in ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AWSNovaSonicLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AWSNovaSonicLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------------- | ------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -247,7 +247,7 @@ async def get_weather(function_name, tool_call_id, args, llm, context, result_ca The `Params` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` for inference settings and `AudioConfig` / `audio_config=` for audio configuration instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/s2s/gemini-live-vertex.mdx b/server/services/s2s/gemini-live-vertex.mdx index 3e1ce7439..5dabec7ac 100644 --- a/server/services/s2s/gemini-live-vertex.mdx +++ b/server/services/s2s/gemini-live-vertex.mdx @@ -9,7 +9,7 @@ description: "A real-time, multimodal conversational AI service powered by Googl Want to start building? Check out our [Gemini Live - Guide](/guides/features/gemini-live) for general concepts, then follow the + Guide](/pipecat/features/gemini-live) for general concepts, then follow the Vertex AI-specific setup below. @@ -242,7 +242,7 @@ llm = GeminiLiveVertexLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/s2s/gemini-live.mdx b/server/services/s2s/gemini-live.mdx index 9c4b37792..beb115e4c 100644 --- a/server/services/s2s/gemini-live.mdx +++ b/server/services/s2s/gemini-live.mdx @@ -9,7 +9,7 @@ description: "A real-time, multimodal conversational AI service powered by Googl Want to start building? Check out our [Gemini Live - Guide](/guides/features/gemini-live). + Guide](/pipecat/features/gemini-live). @@ -154,7 +154,7 @@ _Deprecated in v0.0.105. Use `settings=GeminiLiveLLMService.Settings(...)` inste ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GeminiLiveLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GeminiLiveLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------------- | ---------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | @@ -315,7 +315,7 @@ llm = GeminiLiveLLMService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/s2s/grok.mdx b/server/services/s2s/grok.mdx index 87a20070c..b304e9291 100644 --- a/server/services/s2s/grok.mdx +++ b/server/services/s2s/grok.mdx @@ -101,7 +101,7 @@ _Deprecated in v0.0.105. Use `settings=GrokRealtimeLLMService.Settings(session_p ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GrokRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GrokRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------- | ------------------- | ----------- | --------------------------------------------------------------- | @@ -243,7 +243,7 @@ await task.queue_frame( The deprecated `session_properties` constructor parameter is replaced by `Settings` as of v0.0.105. Use `Settings` / `settings=` instead. See the - [Service Settings guide](/guides/fundamentals/service-settings) for migration + [Service Settings guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/s2s/openai.mdx b/server/services/s2s/openai.mdx index 5d8a21220..0467f5116 100644 --- a/server/services/s2s/openai.mdx +++ b/server/services/s2s/openai.mdx @@ -128,7 +128,7 @@ _Deprecated in v0.0.105. Use `settings=OpenAIRealtimeLLMService.Settings(session ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------- | ------------------- | ----------- | ------------------------------------------------------------- | @@ -289,7 +289,7 @@ await task.queue_frame( The deprecated `model` and `session_properties` constructor parameters are replaced by `Settings` as of v0.0.105. Use `Settings` / `settings=` instead. - See the [Service Settings guide](/guides/fundamentals/service-settings) for + See the [Service Settings guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/s2s/ultravox.mdx b/server/services/s2s/ultravox.mdx index e1bc9f714..d4754dc14 100644 --- a/server/services/s2s/ultravox.mdx +++ b/server/services/s2s/ultravox.mdx @@ -99,7 +99,7 @@ Before using Ultravox Realtime services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `UltravoxRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `UltravoxRealtimeLLMService.Settings(...)`. These can be updated mid-conversation with `LLMUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------- | ----- | ----------- | --------------------------------------------------------------- | diff --git a/server/services/stt/assemblyai.mdx b/server/services/stt/assemblyai.mdx index 20c09c056..25869a841 100644 --- a/server/services/stt/assemblyai.mdx +++ b/server/services/stt/assemblyai.mdx @@ -171,7 +171,7 @@ Connection-level parameters previously passed via the `connection_params` constr ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AssemblyAISTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AssemblyAISTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------------------- | ----------------- | ------------- | ------------------------------------------------------------------------------------------ | @@ -264,7 +264,7 @@ stt = AssemblyAISTTService( The `connection_params=` / `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/aws.mdx b/server/services/stt/aws.mdx index cf62c19b5..3149e8775 100644 --- a/server/services/stt/aws.mdx +++ b/server/services/stt/aws.mdx @@ -118,7 +118,7 @@ Before using AWS Transcribe STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AWSTranscribeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AWSTranscribeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------------- | ----------------------------------------------------------------- | @@ -165,7 +165,7 @@ stt = AWSTranscribeSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/azure.mdx b/server/services/stt/azure.mdx index ea76c036c..be0a8a6d1 100644 --- a/server/services/stt/azure.mdx +++ b/server/services/stt/azure.mdx @@ -102,7 +102,7 @@ Before using Azure STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AzureSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AzureSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ---------------- | ---------------------------------------------------------------------- | @@ -140,7 +140,7 @@ stt = AzureSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/stt/cartesia.mdx b/server/services/stt/cartesia.mdx index 1878dfa85..7fa1bfed9 100644 --- a/server/services/stt/cartesia.mdx +++ b/server/services/stt/cartesia.mdx @@ -100,7 +100,7 @@ Before using Cartesia STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `CartesiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `CartesiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | --------------- | ------------------------------------------------------------------------ | @@ -143,7 +143,7 @@ stt = CartesiaSTTService( The `InputParams` / `params=` / `live_options=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/deepgram.mdx b/server/services/stt/deepgram.mdx index dd4d68bb1..80485106c 100644 --- a/server/services/stt/deepgram.mdx +++ b/server/services/stt/deepgram.mdx @@ -180,7 +180,7 @@ Before using `DeepgramSageMakerSTTService` or `DeepgramFluxSageMakerSTTService`, ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------ | ----------------- | ------------------ | ------------------------------------------------------------ | @@ -313,7 +313,7 @@ async def on_utterance_end(service): ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramFluxSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramFluxSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | On-the-fly | | --------------------- | ----------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | @@ -466,7 +466,7 @@ Turn events receive `(service, transcript)` where `transcript` is the current tr ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSageMakerSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSageMakerSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. The SageMaker service inherits all settings from `DeepgramSTTService.Settings`. See [DeepgramSTTService Settings](#settings) above for the full list. @@ -547,7 +547,7 @@ Supports the standard [service connection events](/server/events/service-events) ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramFluxSageMakerSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramFluxSageMakerSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. The Flux SageMaker service inherits all settings from `DeepgramFluxSTTService.Settings` with the same on-the-fly configuration support: @@ -654,5 +654,5 @@ Turn events receive `(service, transcript)` where `transcript` is the current tr The `InputParams` / `params=` / `live_options=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/stt/elevenlabs.mdx b/server/services/stt/elevenlabs.mdx index 0b5f373d3..93bbc0af4 100644 --- a/server/services/stt/elevenlabs.mdx +++ b/server/services/stt/elevenlabs.mdx @@ -110,7 +110,7 @@ Before using ElevenLabs STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------ | ----------------- | ------------- | ------------------------------------------------------------------------ | @@ -227,7 +227,7 @@ async with aiohttp.ClientSession() as session: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsRealtimeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsRealtimeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------------- | ----------------- | ------------- | --------------------------------------------------------------------------------------- | @@ -289,5 +289,5 @@ async def on_connected(service): The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/stt/fal.mdx b/server/services/stt/fal.mdx index 91c765a6c..97528646a 100644 --- a/server/services/stt/fal.mdx +++ b/server/services/stt/fal.mdx @@ -108,7 +108,7 @@ Before using Fal STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `FalSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `FalSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------------- | ------------------------------------------------------------------ | @@ -158,7 +158,7 @@ stt = FalSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/stt/gladia.mdx b/server/services/stt/gladia.mdx index 02af014e5..22f75a217 100644 --- a/server/services/stt/gladia.mdx +++ b/server/services/stt/gladia.mdx @@ -125,7 +125,7 @@ Before using Gladia STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GladiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GladiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------------------------- | -------------------------- | ------- | ------------------------------------------------------------------------------------- | @@ -214,7 +214,7 @@ stt = GladiaSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/google.mdx b/server/services/stt/google.mdx index 47ebd4474..ccf83635c 100644 --- a/server/services/stt/google.mdx +++ b/server/services/stt/google.mdx @@ -112,7 +112,7 @@ Before using Google Cloud STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GoogleSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GoogleSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------------------------- | ---------------------------- | ------------------ | ---------------------------------------------------------------------------- | @@ -201,7 +201,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/gradium.mdx b/server/services/stt/gradium.mdx index 0b5792a86..12689a717 100644 --- a/server/services/stt/gradium.mdx +++ b/server/services/stt/gradium.mdx @@ -109,7 +109,7 @@ Before using Gradium STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GradiumSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GradiumSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------- | ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -152,7 +152,7 @@ stt = GradiumSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/groq.mdx b/server/services/stt/groq.mdx index 47e0efe10..7337a8de5 100644 --- a/server/services/stt/groq.mdx +++ b/server/services/stt/groq.mdx @@ -111,7 +111,7 @@ Before using Groq STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GroqSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GroqSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------- | ----------------- | -------------------------- | ------------------------------------------------------------------------ | @@ -164,7 +164,7 @@ stt = GroqSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/stt/nvidia.mdx b/server/services/stt/nvidia.mdx index f119faea4..b4237c478 100644 --- a/server/services/stt/nvidia.mdx +++ b/server/services/stt/nvidia.mdx @@ -113,7 +113,7 @@ Real-time streaming transcription using NVIDIA Riva's Parakeet models. ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ---------------- | ------------------------------------------------------------------------ | @@ -189,7 +189,7 @@ Batch/segmented transcription using NVIDIA Riva's Canary models. Processes compl ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaSegmentedSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaSegmentedSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ----------------- | ---------------- | ------------------------------------------------------------------------ | @@ -228,5 +228,5 @@ stt = NvidiaSegmentedSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/stt/openai.mdx b/server/services/stt/openai.mdx index fe04ce684..6614c4856 100644 --- a/server/services/stt/openai.mdx +++ b/server/services/stt/openai.mdx @@ -118,7 +118,7 @@ Uses VAD-based audio segmentation with HTTP transcription requests. Records spee ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAISTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAISTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------- | ----------------- | --------------------- | ------------------------------------------------------------------------ | @@ -218,7 +218,7 @@ Real-time streaming speech-to-text using OpenAI's Realtime API WebSocket transcr ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIRealtimeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAIRealtimeSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | --------------------- | ------------------------------------------------------------------- | @@ -283,5 +283,5 @@ async def on_connected(service): The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. diff --git a/server/services/stt/sarvam.mdx b/server/services/stt/sarvam.mdx index 3bf0058d8..4853433db 100644 --- a/server/services/stt/sarvam.mdx +++ b/server/services/stt/sarvam.mdx @@ -123,7 +123,7 @@ Before using Sarvam STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SarvamSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SarvamSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -185,7 +185,7 @@ stt = SarvamSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/soniox.mdx b/server/services/stt/soniox.mdx index 5a06191b5..20127f0db 100644 --- a/server/services/stt/soniox.mdx +++ b/server/services/stt/soniox.mdx @@ -120,7 +120,7 @@ Before using Soniox STT services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SonioxSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SonioxSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------------------- | ---------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -205,7 +205,7 @@ stt = SonioxSTTService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/speechmatics.mdx b/server/services/stt/speechmatics.mdx index e2d3663a5..36d062afe 100644 --- a/server/services/stt/speechmatics.mdx +++ b/server/services/stt/speechmatics.mdx @@ -138,7 +138,7 @@ Speechmatics STT supports the following endpoints (defaults to `EU2`): ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SpeechmaticsSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SpeechmaticsSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------------------- | ---------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -443,7 +443,7 @@ pipeline = Pipeline([ The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/stt/whisper.mdx b/server/services/stt/whisper.mdx index f8af19baf..958b365bf 100644 --- a/server/services/stt/whisper.mdx +++ b/server/services/stt/whisper.mdx @@ -157,7 +157,7 @@ Optimized for Apple Silicon using MLX Whisper. Models are loaded on demand. ### WhisperSTTService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `WhisperSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `WhisperSTTService.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------- | ----------------- | ------------------------ | ------------------------------------------------------------------------- | @@ -167,7 +167,7 @@ Runtime-configurable settings passed via the `settings` constructor argument usi ### WhisperSTTServiceMLX Settings -Runtime-configurable settings passed via the `settings` constructor argument using `WhisperSTTServiceMLX.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `WhisperSTTServiceMLX.Settings(...)`. These can be updated mid-conversation with `STTUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------- | ----------------- | --------------- | ------------------------------------------------------------------------- | @@ -238,7 +238,7 @@ stt = WhisperSTTServiceMLX( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/transport/daily.mdx b/server/services/transport/daily.mdx index db82ab43e..51c7c3f09 100644 --- a/server/services/transport/daily.mdx +++ b/server/services/transport/daily.mdx @@ -66,7 +66,7 @@ Before using DailyTransport, you need: - **Multi-participant Support**: Handle multiple participants with individual audio/video tracks - **Multi-track Audio/Video**: Publish multiple custom audio and video tracks simultaneously with per-track configuration - **Built-in Transcription**: Real-time speech-to-text with Deepgram integration -- **Telephony Integration**: [Dial-in/dial-out support for phone numbers via [SIP](/guides/telephony/twilio-daily-sip)/[PSTN](/guides/telephony/daily-pstn) +- **Telephony Integration**: [Dial-in/dial-out support for phone numbers via [SIP](/pipecat/telephony/twilio-daily-sip)/[PSTN](/pipecat/telephony/daily-pstn) - **Recording & Streaming**: Built-in call recording and live streaming capabilities - **Global Infrastructure**: Daily's edge network ensures low latency worldwide - **Advanced Controls**: Participant management, permissions, and media routing @@ -577,7 +577,7 @@ async def on_recording_error(transport, stream_id, message): ### Telephony: Dial-in -Events for monitoring incoming phone calls. See the [telephony guides](/guides/telephony/overview) for setup details. +Events for monitoring incoming phone calls. See the [telephony guides](/pipecat/telephony/overview) for setup details. #### on_dialin_ready diff --git a/server/services/tts/asyncai.mdx b/server/services/tts/asyncai.mdx index e4becd999..08c426fe2 100644 --- a/server/services/tts/asyncai.mdx +++ b/server/services/tts/asyncai.mdx @@ -134,7 +134,7 @@ The HTTP service accepts similar parameters to the WebSocket service, with these ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AsyncAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AsyncAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -191,7 +191,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Event Handlers diff --git a/server/services/tts/aws.mdx b/server/services/tts/aws.mdx index 888a24271..8b181c4ec 100644 --- a/server/services/tts/aws.mdx +++ b/server/services/tts/aws.mdx @@ -109,7 +109,7 @@ Before using AWS Polly TTS services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AWSPollyTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AWSPollyTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------- | ----------------- | ----------- | ----------------------------------------- | @@ -158,7 +158,7 @@ tts = AWSPollyTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/azure.mdx b/server/services/tts/azure.mdx index 3cb1649df..c591cdda9 100644 --- a/server/services/tts/azure.mdx +++ b/server/services/tts/azure.mdx @@ -140,7 +140,7 @@ The HTTP service accepts the same parameters as the streaming service except `te ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `AzureTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `AzureTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------- | ----------------- | ----------- | -------------------------------------- | @@ -204,7 +204,7 @@ tts = AzureHttpTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/camb.mdx b/server/services/tts/camb.mdx index a5a6abd04..b796a648f 100644 --- a/server/services/tts/camb.mdx +++ b/server/services/tts/camb.mdx @@ -101,7 +101,7 @@ _Deprecated in v0.0.105. Use `settings=CambTTSService.Settings(...)` instead._ ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `CambTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `CambTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------- | ----------------- | ----------- | -------------------------------------------- | @@ -143,7 +143,7 @@ tts = CambTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/cartesia.mdx b/server/services/tts/cartesia.mdx index 6f799708b..a4ea8db84 100644 --- a/server/services/tts/cartesia.mdx +++ b/server/services/tts/cartesia.mdx @@ -144,7 +144,7 @@ The HTTP service does not accept `text_aggregation_mode` or `aggregate_sentences ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `CartesiaTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `CartesiaTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------------- | ------------------ | ----------- | ------------------------------------------------------------- | @@ -212,7 +212,7 @@ tts = CartesiaHttpTTSService( ## Customizing Speech -`CartesiaTTSService` provides a set of helper methods for implementing Cartesia-specific customizations, meant to be used as part of text transformers. These include methods for spelling out text, adjusting speech rate, and modifying pitch. See the [Text Transformers for TTS](/guides/learn/text-to-speech#text-transformers-for-tts) section in the Text-to-Speech guide for usage examples. +`CartesiaTTSService` provides a set of helper methods for implementing Cartesia-specific customizations, meant to be used as part of text transformers. These include methods for spelling out text, adjusting speech rate, and modifying pitch. See the [Text Transformers for TTS](/pipecat/learn/text-to-speech#text-transformers-for-tts) section in the Text-to-Speech guide for usage examples. ### SPELL(text: str) -> str: @@ -316,7 +316,7 @@ tts = CartesiaTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/deepgram.mdx b/server/services/tts/deepgram.mdx index 029e8f684..da6257719 100644 --- a/server/services/tts/deepgram.mdx +++ b/server/services/tts/deepgram.mdx @@ -118,7 +118,7 @@ Before using `DeepgramSageMakerTTSService`, you need: #### DeepgramTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -165,7 +165,7 @@ Runtime-configurable settings passed via the `settings` constructor argument usi #### DeepgramHttpTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -208,7 +208,7 @@ Runtime-configurable settings passed via the `settings` constructor argument usi #### DeepgramSageMakerTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSageMakerTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `DeepgramSageMakerTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -264,7 +264,7 @@ tts = DeepgramSageMakerTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/elevenlabs.mdx b/server/services/tts/elevenlabs.mdx index a2abe0417..d8fa5c20d 100644 --- a/server/services/tts/elevenlabs.mdx +++ b/server/services/tts/elevenlabs.mdx @@ -135,7 +135,7 @@ The HTTP service uses `ElevenLabsHttpTTSSettings` which also includes: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `ElevenLabsTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------------- | ----------------- | ----------- | ------------------------------------------------------------------------------------------------- | @@ -223,7 +223,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/fish.mdx b/server/services/tts/fish.mdx index af2ef007d..812bb32ed 100644 --- a/server/services/tts/fish.mdx +++ b/server/services/tts/fish.mdx @@ -102,7 +102,7 @@ _Deprecated in v0.0.105. Use `settings=FishAudioTTSService.Settings(...)` instea ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `FishAudioTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `FishAudioTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------- | ----------------- | ----------- | -------------------------------------- | @@ -149,7 +149,7 @@ tts = FishAudioTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/google.mdx b/server/services/tts/google.mdx index 7cbe51692..7b598726e 100644 --- a/server/services/tts/google.mdx +++ b/server/services/tts/google.mdx @@ -111,7 +111,7 @@ Streaming service optimized for Chirp 3 HD and Journey voices. #### GoogleTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GoogleTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GoogleTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------- | ----------------- | ----------- | --------------------------------------- | @@ -162,7 +162,7 @@ HTTP service with full SSML support for all voice types. #### GoogleHttpTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GoogleHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GoogleHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------- | ----------------- | ----------- | -------------------------------------------------------------------------------------------- | @@ -222,7 +222,7 @@ Streaming service using Gemini's TTS-specific models with natural voice control, #### GeminiTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GeminiTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GeminiTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ----------------- | ----------------- | ----------- | ----------------------------------------------------------------------------------------------------------------- | @@ -286,7 +286,7 @@ tts = GeminiTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/gradium.mdx b/server/services/tts/gradium.mdx index 0aba0da53..942ab8397 100644 --- a/server/services/tts/gradium.mdx +++ b/server/services/tts/gradium.mdx @@ -97,7 +97,7 @@ Before using Gradium TTS services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GradiumTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GradiumTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -140,7 +140,7 @@ tts = GradiumTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/groq.mdx b/server/services/tts/groq.mdx index 9b9ff5ac7..aee47efaf 100644 --- a/server/services/tts/groq.mdx +++ b/server/services/tts/groq.mdx @@ -101,7 +101,7 @@ Before using Groq TTS services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `GroqTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `GroqTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ----------- | -------------------------------------- | @@ -144,7 +144,7 @@ tts = GroqTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/hume.mdx b/server/services/tts/hume.mdx index e2b198ee7..9d25c91d4 100644 --- a/server/services/tts/hume.mdx +++ b/server/services/tts/hume.mdx @@ -93,7 +93,7 @@ _Deprecated in v0.0.105. Use `settings=HumeTTSService.Settings(...)` instead._ ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `HumeTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `HumeTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------------ | ----------------- | ----------- | -------------------------------------- | @@ -154,7 +154,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/inworld.mdx b/server/services/tts/inworld.mdx index 7d7c6f7d1..984859628 100644 --- a/server/services/tts/inworld.mdx +++ b/server/services/tts/inworld.mdx @@ -128,7 +128,7 @@ WebSocket-based service for lowest latency streaming. #### InworldTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `InworldTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `InworldTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------------- | ----------------- | ----------- | -------------------------------------- | @@ -233,7 +233,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/kokoro.mdx b/server/services/tts/kokoro.mdx index c96fb4a0d..0561a35e1 100644 --- a/server/services/tts/kokoro.mdx +++ b/server/services/tts/kokoro.mdx @@ -94,7 +94,7 @@ You can also provide custom paths to pre-downloaded model files via the `model_p ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `KokoroTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `KokoroTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------------- | --------------------------------------------------- | @@ -164,7 +164,7 @@ tts = KokoroTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/lmnt.mdx b/server/services/tts/lmnt.mdx index 295a1daf1..474fa1e0f 100644 --- a/server/services/tts/lmnt.mdx +++ b/server/services/tts/lmnt.mdx @@ -91,7 +91,7 @@ Before using LMNT TTS services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `LmntTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `LmntTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -133,7 +133,7 @@ tts = LmntTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/minimax.mdx b/server/services/tts/minimax.mdx index 91b134afa..dab93f35c 100644 --- a/server/services/tts/minimax.mdx +++ b/server/services/tts/minimax.mdx @@ -124,7 +124,7 @@ _Deprecated in v0.0.105. Use `settings=MiniMaxHttpTTSService.Settings(...)` inst ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `MiniMaxHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `MiniMaxHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------- | ----------------- | ----------- | -------------------------------------- | @@ -180,7 +180,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/neuphonic.mdx b/server/services/tts/neuphonic.mdx index b01432386..c16745166 100644 --- a/server/services/tts/neuphonic.mdx +++ b/server/services/tts/neuphonic.mdx @@ -163,7 +163,7 @@ _Deprecated in v0.0.105. Use `settings=NeuphonicHttpTTSService.Settings(...)` in ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NeuphonicTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NeuphonicTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ----------- | -------------------------------------- | @@ -223,7 +223,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/nvidia.mdx b/server/services/tts/nvidia.mdx index 78f1a4e9e..dbe31e11b 100644 --- a/server/services/tts/nvidia.mdx +++ b/server/services/tts/nvidia.mdx @@ -110,7 +110,7 @@ _Deprecated in v0.0.105. Use `settings=NvidiaTTSService.Settings(...)` instead._ ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `NvidiaTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ----------- | -------------------------------------- | @@ -154,7 +154,7 @@ tts = NvidiaTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/openai.mdx b/server/services/tts/openai.mdx index f54b92778..5baf2e999 100644 --- a/server/services/tts/openai.mdx +++ b/server/services/tts/openai.mdx @@ -107,7 +107,7 @@ _Deprecated in v0.0.105. Use `settings=OpenAITTSService.Settings(...)` instead._ ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `OpenAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `OpenAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------- | ----------------- | ----------- | --------------------------------------------------------------------------- | @@ -169,7 +169,7 @@ await task.queue_frame( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/piper.mdx b/server/services/tts/piper.mdx index 329b7dec0..3667662c1 100644 --- a/server/services/tts/piper.mdx +++ b/server/services/tts/piper.mdx @@ -99,7 +99,7 @@ Runs Piper locally, automatically downloading voice models as needed. #### PiperTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `PiperTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `PiperTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -131,7 +131,7 @@ Connects to a running Piper HTTP TTS server. #### PiperHttpTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `PiperHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `PiperHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -181,7 +181,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/resembleai.mdx b/server/services/tts/resembleai.mdx index ebf7510c5..ba559579d 100644 --- a/server/services/tts/resembleai.mdx +++ b/server/services/tts/resembleai.mdx @@ -95,7 +95,7 @@ Before using Resemble AI TTS services, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `ResembleAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `ResembleAITTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -137,7 +137,7 @@ tts = ResembleAITTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/rime.mdx b/server/services/tts/rime.mdx index 173da6d82..ae87be0cb 100644 --- a/server/services/tts/rime.mdx +++ b/server/services/tts/rime.mdx @@ -203,7 +203,7 @@ A non-JSON WebSocket service for models like Arcana that use plain text messages #### RimeTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `RimeTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `RimeTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------------- | ----------------- | ----------- | -------------------------------------- | @@ -224,7 +224,7 @@ Runtime-configurable settings passed via the `settings` constructor argument usi #### RimeNonJsonTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `RimeNonJsonTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `RimeNonJsonTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | -------------------- | ----------------- | ----------- | -------------------------------------- | @@ -301,7 +301,7 @@ tts = RimeNonJsonTTSService( ## Customizing Speech -`RimeTTSService` provides a set of helper methods for implementing Rime-specific customizations, meant to be used as part of text transformers. These include methods for spelling out text, adjusting speech rate, and modifying pitch. See the [Text Transformers for TTS](/guides/learn/text-to-speech#text-transformers-for-tts) section in the Text-to-Speech guide for usage examples. +`RimeTTSService` provides a set of helper methods for implementing Rime-specific customizations, meant to be used as part of text transformers. These include methods for spelling out text, adjusting speech rate, and modifying pitch. See the [Text Transformers for TTS](/pipecat/learn/text-to-speech#text-transformers-for-tts) section in the Text-to-Speech guide for usage examples. ### SPELL(text: str) -> str: @@ -387,7 +387,7 @@ tts = RimeTTSService( The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/sarvam.mdx b/server/services/tts/sarvam.mdx index 7921b5f56..c0f2ce8c7 100644 --- a/server/services/tts/sarvam.mdx +++ b/server/services/tts/sarvam.mdx @@ -158,7 +158,7 @@ Sarvam offers two service implementations: `SarvamTTSService` (WebSocket) for re #### SarvamTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SarvamTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SarvamTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------- | ----------------- | ----------- | -------------------------------------- | @@ -175,7 +175,7 @@ Runtime-configurable settings passed via the `settings` constructor argument usi #### SarvamHttpTTSService Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SarvamHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SarvamHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------------------- | ----------------- | ----------- | -------------------------------------- | @@ -249,7 +249,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/smallest.mdx b/server/services/tts/smallest.mdx index 9e596b00c..650a79afa 100644 --- a/server/services/tts/smallest.mdx +++ b/server/services/tts/smallest.mdx @@ -63,7 +63,7 @@ export SMALLEST_API_KEY=your_api_key ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SmallestTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SmallestTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------- | ----------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------- | diff --git a/server/services/tts/speechmatics.mdx b/server/services/tts/speechmatics.mdx index b31f39f1f..9f2cb9781 100644 --- a/server/services/tts/speechmatics.mdx +++ b/server/services/tts/speechmatics.mdx @@ -108,7 +108,7 @@ _Deprecated in v0.0.105. Use `settings=SpeechmaticsTTSService.Settings(...)` ins ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `SpeechmaticsTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `SpeechmaticsTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ------------- | ----------------- | ----------- | ---------------------------------------- | @@ -155,7 +155,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/tts/xai.mdx b/server/services/tts/xai.mdx index f7602c663..5b617ca94 100644 --- a/server/services/tts/xai.mdx +++ b/server/services/tts/xai.mdx @@ -81,7 +81,7 @@ export GROK_API_KEY=your_api_key ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `XAIHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `XAIHttpTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------------- | --------------------------------------------------- | diff --git a/server/services/tts/xtts.mdx b/server/services/tts/xtts.mdx index 39a3cf902..e1e8f4319 100644 --- a/server/services/tts/xtts.mdx +++ b/server/services/tts/xtts.mdx @@ -107,7 +107,7 @@ Before using XTTSTTSService, you need: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `XTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `XTTSService.Settings(...)`. These can be updated mid-conversation with `TTSUpdateSettingsFrame`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | ---------- | ----------------- | ------- | -------------------------------------- | @@ -154,7 +154,7 @@ async with aiohttp.ClientSession() as session: The `InputParams` / `params=` pattern is deprecated as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/services/video/heygen.mdx b/server/services/video/heygen.mdx index 3e777809b..6e888a7a3 100644 --- a/server/services/video/heygen.mdx +++ b/server/services/video/heygen.mdx @@ -87,7 +87,7 @@ Before using HeyGen video services, you need: Runtime-configurable settings. HeyGen has no model-level settings, so this is primarily used for the `extra` dict. See [Service - Settings](/guides/fundamentals/service-settings) for details. + Settings](/pipecat/fundamentals/service-settings) for details. ## Usage diff --git a/server/services/video/tavus.mdx b/server/services/video/tavus.mdx index 304f80d5f..98ea9196d 100644 --- a/server/services/video/tavus.mdx +++ b/server/services/video/tavus.mdx @@ -83,7 +83,7 @@ Before using Tavus video services, you need: Runtime-configurable settings. Tavus has no model-level settings, so this is primarily used for the `extra` dict. See [Service - Settings](/guides/fundamentals/service-settings) for details. + Settings](/pipecat/fundamentals/service-settings) for details. ## Usage diff --git a/server/services/vision/moondream.mdx b/server/services/vision/moondream.mdx index 4e6b4c3c3..f92c5dd7a 100644 --- a/server/services/vision/moondream.mdx +++ b/server/services/vision/moondream.mdx @@ -100,7 +100,7 @@ The service automatically detects and uses the best available hardware: ### Settings -Runtime-configurable settings passed via the `settings` constructor argument using `MoondreamService.Settings(...)`. See [Service Settings](/guides/fundamentals/service-settings) for details. +Runtime-configurable settings passed via the `settings` constructor argument using `MoondreamService.Settings(...)`. See [Service Settings](/pipecat/fundamentals/service-settings) for details. | Parameter | Type | Default | Description | | --------- | ----- | ----------- | ------------------------------------------------------------- | @@ -137,7 +137,7 @@ vision = MoondreamService( The deprecated `model` constructor parameter is replaced by `Settings` as of v0.0.105. Use `Settings` / `settings=` instead. See the [Service Settings - guide](/guides/fundamentals/service-settings) for migration details. + guide](/pipecat/fundamentals/service-settings) for migration details. ## Notes diff --git a/server/utilities/audio/krisp-viva-filter.mdx b/server/utilities/audio/krisp-viva-filter.mdx index b68717a03..21c00a605 100644 --- a/server/utilities/audio/krisp-viva-filter.mdx +++ b/server/utilities/audio/krisp-viva-filter.mdx @@ -11,7 +11,7 @@ To use Krisp, you need a Krisp SDK license. Get started at [Krisp.ai](https://kr ## Installation -See the [Krisp guide](/guides/features/krisp-viva) to learn how to install the Krisp VIVA SDK. +See the [Krisp guide](/pipecat/features/krisp-viva) to learn how to install the Krisp VIVA SDK. ## Environment Variables diff --git a/server/utilities/context-summarization.mdx b/server/utilities/context-summarization.mdx index 1a873f0df..d4d6a8487 100644 --- a/server/utilities/context-summarization.mdx +++ b/server/utilities/context-summarization.mdx @@ -7,7 +7,7 @@ description: "Reference for LLMAutoContextSummarizationConfig, LLMContextSummary Context summarization automatically compresses older conversation history when token or message limits are reached. It is configured via `LLMAutoContextSummarizationConfig` (auto-trigger thresholds) and `LLMContextSummaryConfig` (summary generation params), and managed by `LLMContextSummarizer`. -For a walkthrough of how to enable and customize context summarization, see the [Context Summarization guide](/guides/fundamentals/context-summarization). +For a walkthrough of how to enable and customize context summarization, see the [Context Summarization guide](/pipecat/fundamentals/context-summarization). ## LLMAutoContextSummarizationConfig diff --git a/server/utilities/serializers/telnyx.mdx b/server/utilities/serializers/telnyx.mdx deleted file mode 100644 index e69de29bb..000000000 diff --git a/server/utilities/serializers/twilio.mdx b/server/utilities/serializers/twilio.mdx deleted file mode 100644 index e69de29bb..000000000 diff --git a/server/utilities/turn-detection/krisp-viva-turn.mdx b/server/utilities/turn-detection/krisp-viva-turn.mdx index 645717a84..65abc2264 100644 --- a/server/utilities/turn-detection/krisp-viva-turn.mdx +++ b/server/utilities/turn-detection/krisp-viva-turn.mdx @@ -26,7 +26,7 @@ description: "Turn detection using Krisp VIVA SDK" ## Installation -`KrispVivaTurn` requires the Krisp Python SDK. See the [Krisp VIVA guide](/guides/features/krisp-viva) for installation instructions. +`KrispVivaTurn` requires the Krisp Python SDK. See the [Krisp VIVA guide](/pipecat/features/krisp-viva) for installation instructions. ## Environment Variables diff --git a/server/utilities/turn-management/external-turn-management.mdx b/server/utilities/turn-management/external-turn-management.mdx index 9aeb5854e..fd3efd24e 100644 --- a/server/utilities/turn-management/external-turn-management.mdx +++ b/server/utilities/turn-management/external-turn-management.mdx @@ -66,7 +66,7 @@ user_aggregator, assistant_aggregator = LLMContextAggregatorPair( `on_user_turn_idle` event when the user has been idle (not speaking) for this duration after the bot finishes speaking. Set to `0` to disable idle detection. See [Detecting Idle - Users](/guides/fundamentals/detecting-user-idle) for details. + Users](/pipecat/fundamentals/detecting-user-idle) for details. ### Event Handlers diff --git a/server/utilities/turn-management/transcriptions.mdx b/server/utilities/turn-management/transcriptions.mdx index 96a43279e..d36d9b4cc 100644 --- a/server/utilities/turn-management/transcriptions.mdx +++ b/server/utilities/turn-management/transcriptions.mdx @@ -94,4 +94,4 @@ For details on `UserTurnStoppedMessage` and `AssistantTurnStoppedMessage` fields ## Related - [Turn Events](/server/utilities/turn-management/turn-events) - Complete reference for turn lifecycle events -- [Saving Transcripts Guide](/guides/fundamentals/saving-transcripts) - Guide for saving conversation transcripts +- [Saving Transcripts Guide](/pipecat/fundamentals/saving-transcripts) - Guide for saving conversation transcripts diff --git a/server/utilities/turn-management/turn-events.mdx b/server/utilities/turn-management/turn-events.mdx index a2ec3fa05..28f361d31 100644 --- a/server/utilities/turn-management/turn-events.mdx +++ b/server/utilities/turn-management/turn-events.mdx @@ -122,7 +122,7 @@ async def on_user_turn_idle(aggregator): ### on_user_mute_started -Fired when user input is muted. See [User Input Muting](/guides/fundamentals/user-input-muting) for details on muting. +Fired when user input is muted. See [User Input Muting](/pipecat/fundamentals/user-input-muting) for details on muting. ```python @user_aggregator.event_handler("on_user_mute_started") diff --git a/server/utilities/turn-management/user-mute-strategies.mdx b/server/utilities/turn-management/user-mute-strategies.mdx index cde729c28..b9088a9bc 100644 --- a/server/utilities/turn-management/user-mute-strategies.mdx +++ b/server/utilities/turn-management/user-mute-strategies.mdx @@ -225,4 +225,4 @@ async def on_user_mute_stopped(aggregator): ## Related - [User Turn Strategies](/server/utilities/turn-management/user-turn-strategies) - Configure turn detection behavior -- [User Input Muting Guide](/guides/fundamentals/user-input-muting) - Guide for controlling user input +- [User Input Muting Guide](/pipecat/fundamentals/user-input-muting) - Guide for controlling user input diff --git a/server/utilities/turn-management/user-turn-strategies.mdx b/server/utilities/turn-management/user-turn-strategies.mdx index 48b27a098..8391ea838 100644 --- a/server/utilities/turn-management/user-turn-strategies.mdx +++ b/server/utilities/turn-management/user-turn-strategies.mdx @@ -444,5 +444,5 @@ user_aggregator, assistant_aggregator = LLMContextAggregatorPair( ## Related -- [User Input Muting](/guides/fundamentals/user-input-muting) - Control when user input is ignored +- [User Input Muting](/pipecat/fundamentals/user-input-muting) - Control when user input is ignored - [Smart Turn Detection](/server/utilities/turn-detection/smart-turn-overview) - AI-powered turn detection diff --git a/server/utilities/user-idle-processor.mdx b/server/utilities/user-idle-processor.mdx index 0b07092db..e90deaef4 100644 --- a/server/utilities/user-idle-processor.mdx +++ b/server/utilities/user-idle-processor.mdx @@ -6,7 +6,7 @@ description: "A processor that monitors user inactivity and triggers callbacks a DEPRECATED: UserIdleProcessor has been deprecated. Use `user_idle_timeout` parameter when creating your aggregator, see [Detecting Idle - Users](/guides/fundamentals/detecting-user-idle) for details. + Users](/pipecat/fundamentals/detecting-user-idle) for details. The `UserIdleProcessor` is a specialized frame processor that monitors user activity in a conversation and executes callbacks when the user becomes idle. It's particularly useful for maintaining engagement by detecting periods of user inactivity and providing escalating responses to inactivity.