diff --git a/src/pipecat/adapters/services/bedrock_adapter.py b/src/pipecat/adapters/services/bedrock_adapter.py index 3e99edf6e..2e5c2c62a 100644 --- a/src/pipecat/adapters/services/bedrock_adapter.py +++ b/src/pipecat/adapters/services/bedrock_adapter.py @@ -29,7 +29,7 @@ from pipecat.processors.aggregators.llm_context import ( class AWSBedrockLLMInvocationParams(TypedDict): """Context-based parameters for invoking AWS Bedrock's LLM API.""" - system: Optional[str] + system: Optional[List[dict[str, Any]]] # [{"text": "system message"}] messages: List[dict[str, Any]] tools: List[dict[str, Any]] tool_choice: LLMContextToolChoice diff --git a/src/pipecat/services/aws/llm.py b/src/pipecat/services/aws/llm.py index 781ae6322..b201f43aa 100644 --- a/src/pipecat/services/aws/llm.py +++ b/src/pipecat/services/aws/llm.py @@ -815,14 +815,10 @@ class AWSBedrockLLMService(LLMService): messages = [] system = [] if isinstance(context, LLMContext): - # Future code will be something like this: - # adapter = self.get_llm_adapter() - # params: AWSBedrockLLMInvocationParams = adapter.get_llm_invocation_params(context) - # messages = params["messages"] - # system = params["system_instruction"] # [{"text": "system message"}] - raise NotImplementedError( - "Universal LLMContext is not yet supported for AWS Bedrock." - ) + adapter: AWSBedrockLLMAdapter = self.get_llm_adapter() + params: AWSBedrockLLMInvocationParams = adapter.get_llm_invocation_params(context) + messages = params["messages"] + system = params["system"] # [{"text": "system message"}] else: context = AWSBedrockLLMContext.upgrade_to_bedrock(context) messages = context.messages