From 5ed2d7ac2bd05ecc398cfaa100f7f64d5de4a688 Mon Sep 17 00:00:00 2001 From: Paul Shippy Date: Mon, 30 Jun 2025 17:31:31 -0700 Subject: [PATCH 1/3] Add session token option for AWS --- src/pipecat/services/aws_nova_sonic/aws.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pipecat/services/aws_nova_sonic/aws.py b/src/pipecat/services/aws_nova_sonic/aws.py index 77e9575b5..a7832669e 100644 --- a/src/pipecat/services/aws_nova_sonic/aws.py +++ b/src/pipecat/services/aws_nova_sonic/aws.py @@ -194,6 +194,7 @@ class AWSNovaSonicLLMService(LLMService): *, secret_access_key: str, access_key_id: str, + session_token: Optional[str] = None, region: str, model: str = "amazon.nova-sonic-v1:0", voice_id: str = "matthew", # matthew, tiffany, amy @@ -208,6 +209,7 @@ class AWSNovaSonicLLMService(LLMService): Args: secret_access_key: AWS secret access key for authentication. access_key_id: AWS access key ID for authentication. + session_token: AWS session token for authentication. region: AWS region where the service is hosted. model: Model identifier. Defaults to "amazon.nova-sonic-v1:0". voice_id: Voice ID for speech synthesis. Options: matthew, tiffany, amy. @@ -220,6 +222,7 @@ class AWSNovaSonicLLMService(LLMService): super().__init__(**kwargs) self._secret_access_key = secret_access_key self._access_key_id = access_key_id + self._session_token = session_token self._region = region self._model = model self._client: Optional[BedrockRuntimeClient] = None @@ -523,7 +526,9 @@ class AWSNovaSonicLLMService(LLMService): region=self._region, aws_credentials_identity_resolver=StaticCredentialsResolver( credentials=AWSCredentialsIdentity( - access_key_id=self._access_key_id, secret_access_key=self._secret_access_key + access_key_id=self._access_key_id, + secret_access_key=self._secret_access_key, + session_token=self._session_token, ) ), http_auth_scheme_resolver=HTTPAuthSchemeResolver(), From f891140a744f377fb770632bdfb5858018153e18 Mon Sep 17 00:00:00 2001 From: Paul Shippy Date: Mon, 30 Jun 2025 17:35:50 -0700 Subject: [PATCH 2/3] Update sample to take in session token --- examples/foundational/40-aws-nova-sonic.py | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/foundational/40-aws-nova-sonic.py b/examples/foundational/40-aws-nova-sonic.py index ef01f7a47..ecfc4c1fb 100644 --- a/examples/foundational/40-aws-nova-sonic.py +++ b/examples/foundational/40-aws-nova-sonic.py @@ -102,6 +102,7 @@ async def run_example(transport: BaseTransport, _: argparse.Namespace, handle_si secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"), access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), region=os.getenv("AWS_REGION"), # as of 2025-05-06, us-east-1 is the only supported region + session_token=os.getenv("AWS_SESSION_TOKEN"), voice_id="tiffany", # matthew, tiffany, amy # you could choose to pass instruction here rather than via context # system_instruction=system_instruction From 68ea5ee570a40f471fda8918f0aca27c40b95c1f Mon Sep 17 00:00:00 2001 From: Paul Shippy Date: Mon, 30 Jun 2025 17:39:42 -0700 Subject: [PATCH 3/3] Add to change log --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d6236f7d..57c5c9395 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 time, you will need to wrap it with `watchdog_coroutine()` so the watchdog timers are reset regularly. +- Added `session_token` parameter to `AWSNovaSonicLLMService`. + ### Fixed - Fixed a `AWSNovaSonicLLMService` issue introduced in 0.0.72.