步驟 5:從Python程式碼呼叫客服人員 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 5:從Python程式碼呼叫客服人員

在此步驟中,您將了解如何使用 以程式設計方式與代理程式互動 AWS SDK for Python (Boto)。此範例程式碼示範如何使用 InvokeAgent 操作,這需要 AGENT ID 和 ALIAS ID 作為參數才能呼叫您的代理程式。此程式碼說明如何傳送提示給您的客服人員、處理回應,以及處理串流和非串流回應模式。這可讓您將 Bedrock 代理程式整合到您自己的 Python 應用程式。

如需詳細資訊,請參閱從您的應用程式叫用 代理程式

從Python程式碼呼叫客服人員
  1. 取得代理程式的 ID。如需詳細資訊,請參閱檢視客服人員的相關資訊

  2. 取得客服人員別名的 ID。如需詳細資訊,請參閱檢視 Amazon Bedrock 中客服人員別名的相關資訊

  3. 執行下列程式碼。更新下列項目:

    • AGENT_ID – 代理程式的 ID。

    • ALIAS_ID – 代理程式的別名 ID。

    • REGION – 您建立代理程式 AWS 的區域,例如 us-east-1

    若要從代理程式串流回應,請將 的值變更為 streamFinalResponse True

    import boto3 import logging from botocore.exceptions import ClientError logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def invoke_agent(client, agent_id, alias_id, prompt, session_id): response = client.invoke_agent( agentId=agent_id, agentAliasId=alias_id, enableTrace=True, sessionId = session_id, inputText=prompt, streamingConfigurations = { "applyGuardrailInterval" : 20, "streamFinalResponse" : False } ) completion = "" for event in response.get("completion"): #Collect agent output. if 'chunk' in event: chunk = event["chunk"] completion += chunk["bytes"].decode() # Log trace output. if 'trace' in event: trace_event = event.get("trace") trace = trace_event['trace'] for key, value in trace.items(): logging.info("%s: %s",key,value) print(f"Agent response: {completion}") if __name__ == "__main__": client=boto3.client( service_name="bedrock-agent-runtime", region_name="REGION") agent_id = "AGENT_ID" alias_id = "ALIAS_ID" session_id = "123456" prompt = "What's the current time?" try: invoke_agent(client, agent_id, alias_id, prompt, session_id) except ClientError as e: print(f"Client error: {str(e)}") logger.error("Client error: %s", {str(e)})