Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 57 additions & 8 deletions server/services/s2s/aws.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,51 @@ Before using AWS Nova Sonic services, you need:
<ParamField path="params" type="Params" default="Params()">
Model parameters for audio configuration and inference. See [Params](#params)
below.

<Warning>
**Deprecated**: Use `settings=AWSNovaSonicLLMSettings(...)` for inference settings (temperature, max_tokens, top_p, endpointing_sensitivity) and `audio_config=AudioConfig(...)` for audio configuration (sample rates, sample sizes, channel counts).
</Warning>
</ParamField>

<ParamField path="audio_config" type="AudioConfig" default="AudioConfig()">
Audio configuration for sample rates, sample sizes, and channel counts. See [AudioConfig](#audioconfig) below.
</ParamField>

<ParamField path="settings" type="AWSNovaSonicLLMSettings" default="None">
AWS Nova Sonic LLM settings including inference parameters. If provided together with deprecated top-level parameters, the `settings` values take precedence.
</ParamField>

<ParamField path="system_instruction" type="str" default="None">
System-level instruction for the model.

<Warning>
**Deprecated**: Use `settings=AWSNovaSonicLLMSettings(system_instruction="...")` instead.
</Warning>
</ParamField>

<ParamField path="tools" type="ToolsSchema" default="None">
Available tools/functions for the model to use.
</ParamField>

### AudioConfig

Audio configuration parameters for input and output streams. Set at initialization via the `audio_config` constructor argument.

| Parameter | Type | Default | Description |
| ---------------------- | ----- | ------- | ---------------------------------- |
| `input_sample_rate` | `int` | `16000` | Audio input sample rate in Hz. |
| `input_sample_size` | `int` | `16` | Audio input sample size in bits. |
| `input_channel_count` | `int` | `1` | Number of input audio channels. |
| `output_sample_rate` | `int` | `24000` | Audio output sample rate in Hz. |
| `output_sample_size` | `int` | `16` | Audio output sample size in bits. |
| `output_channel_count` | `int` | `1` | Number of output audio channels. |

### Params

<Warning>
**Deprecated**: Use `settings=AWSNovaSonicLLMSettings(...)` for inference settings and `audio_config=AudioConfig(...)` for audio configuration.
</Warning>

Audio and inference parameters that can be set at initialization via the `params` constructor argument.

| Parameter | Type | Default | Description |
Expand All @@ -141,50 +174,66 @@ Audio and inference parameters that can be set at initialization via the `params

```python
import os
from pipecat.services.aws.nova_sonic import AWSNovaSonicLLMService
from pipecat.services.aws.nova_sonic import (
AWSNovaSonicLLMService,
AWSNovaSonicLLMSettings,
)

llm = AWSNovaSonicLLMService(
secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
region=os.getenv("AWS_REGION"),
voice_id="matthew",
system_instruction="You are a helpful assistant.",
settings=AWSNovaSonicLLMSettings(
system_instruction="You are a helpful assistant.",
),
)
```

### With Custom Parameters

```python
from pipecat.services.aws.nova_sonic import AWSNovaSonicLLMService, Params
from pipecat.services.aws.nova_sonic import (
AWSNovaSonicLLMService,
AWSNovaSonicLLMSettings,
AudioConfig,
)

llm = AWSNovaSonicLLMService(
secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
region="us-east-1",
model="amazon.nova-2-sonic-v1:0",
voice_id="tiffany",
system_instruction="You are a helpful assistant.",
params=Params(
settings=AWSNovaSonicLLMSettings(
system_instruction="You are a helpful assistant.",
temperature=0.5,
max_tokens=2048,
endpointing_sensitivity="MEDIUM",
),
audio_config=AudioConfig(
input_sample_rate=16000,
output_sample_rate=24000,
endpointing_sensitivity="MEDIUM",
),
)
```

### With Function Calling

```python
from pipecat.services.aws.nova_sonic import AWSNovaSonicLLMService
from pipecat.services.aws.nova_sonic import (
AWSNovaSonicLLMService,
AWSNovaSonicLLMSettings,
)

llm = AWSNovaSonicLLMService(
secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
region="us-east-1",
voice_id="matthew",
system_instruction="You are a helpful assistant that can check the weather.",
settings=AWSNovaSonicLLMSettings(
system_instruction="You are a helpful assistant that can check the weather.",
),
tools=tools, # ToolsSchema instance
)

Expand Down