제어 에이전트 세션 컨텍스트 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

제어 에이전트 세션 컨텍스트

세션 컨텍스트를 더 잘 제어하기 위해 다음을 수정할 수 있습니다. SessionState에이전트의 개체. 은SessionState개체에는 차례에 걸쳐 유지 관리할 수 있는 정보가 포함되어 있습니다 (별도). InvokeAgent요청 및 응답). 이 정보를 사용하여 사용자 대화 중에 상담원에게 대화 상황을 제공할 수 있습니다.

일반적인 형식 SessionState객체는 다음과 같습니다.

{ "sessionAttributes": { "<attributeName1>": "<attributeValue1>", "<attributeName2>": "<attributeValue2>", ... }, "promptSessionAttributes": { "<attributeName3>": "<attributeValue3>", "<attributeName4>": "<attributeValue4>", ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }

주제를 선택하면 해당 필드에 대해 자세히 알아볼 수 있습니다. SessionState개체.

세션 및 프롬프트 세션 속성

Amazon Bedrock Agents를 사용하면 세션의 일부에 걸쳐 지속되는 다음과 같은 유형의 컨텍스트 속성을 정의할 수 있습니다.

세션 상태 속성은 다음과 같은 두 단계로 정의할 수 있습니다.

  • 작업 그룹을 설정하고 Lambda 함수를 작성할 때는 Amazon Bedrock에 반환되는 응답 이벤트에 promptSessionAttributes 또는 를 sessionAttributes 포함하십시오.

  • 런타임 중에 다음을 전송할 때 InvokeAgent요청 중에 세션 상태 속성을 동적으로 변경할 수 있도록 요청 본문에 sessionState 객체를 포함시키십시오.

세션 속성 예제

다음 예제에서는 세션 속성을 사용하여 사용자에게 보내는 메시지를 개인화합니다.

  1. 애플리케이션 코드를 작성하여 사용자에게 이름과 상담원에게 하고 싶은 요청을 제공하고 답변을 변수로 저장하도록 요청하세요.<first_name> 그리고 <request>.

  2. 보낼 애플리케이션 코드를 작성하세요. InvokeAgent다음 본문을 포함하여 요청하십시오.

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. 사용자가 애플리케이션을 사용하고 이름을 입력하면 코드가 세션 속성으로 이름을 보내고 에이전트는 세션 기간 동안 이름을 저장합니다.

  4. 세션 속성은 Lambda 입력 이벤트에서 전송되므로 작업 그룹의 Lambda 함수에서 이러한 세션 속성을 참조할 수 있습니다. 예를 들어, 작업 API스키마가 요청 본문의 이름을 요구하는 경우, 요청을 전송할 때 해당 필드를 자동으로 채우도록 작업 그룹에 대한 Lambda 함수를 작성할 때 firstName 세션 속성을 사용할 수 있습니다. API

프롬프트 세션 속성 예제

다음 일반 예제에서는 프롬프트 세션 속성을 사용하여 에이전트에 임시 컨텍스트를 제공합니다.

  1. 라는 변수에 사용자 요청을 저장하는 애플리케이션 코드를 작성합니다.<request>.

  2. 사용자가 상대적 시간을 나타내는 단어 (예: “내일”) 를 사용하는 경우 사용자 위치의 시간대를 검색하도록 애플리케이션 코드를 작성하십시오.<request>라는 변수에 저장합니다.<timezone>.

  3. 보낼 애플리케이션을 작성하세요. InvokeAgent다음 본문을 포함한 요청:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. 사용자가 상대 시간을 나타내는 단어를 사용하는 경우 코드는 timeZone prompt session 속성을 전송하고 에이전트는 기간 동안 이를 저장합니다.

  5. 예를 들어 사용자가 I need to book a hotel for tomorrow 요청하면 코드가 사용자의 시간대를 상담원에게 보내고 상담원은 “내일”이 가리키는 정확한 날짜를 확인할 수 있습니다.

  6. 프롬프트 세션 속성은 다음 단계에서 사용할 수 있습니다.

작업 그룹 호출 결과

액션 그룹이 컨트롤을 반환하도록 구성한 경우 InvokeAgent응답으로 작업 그룹을 호출한 결과를 다음 단계로 전송할 수 있습니다. sessionState InvokeAgent다음 필드를 포함하여 응답하십시오.

  • invocationId— 이 ID는 returnControl 필드의 ReturnControlPayload개체에 invocationId 반환된 ID와 일치해야 합니다. InvokeAgent응답.

  • returnControlInvocationResults— 작업을 호출하여 얻은 결과를 포함합니다. ReturnControlPayload객체를 전달하여 API 요청을 수행하거나 정의한 함수를 호출하도록 애플리케이션을 설정할 수 있습니다. 그런 다음 여기에 해당 작업의 결과를 제공할 수 있습니다. returnControlInvocationResults목록의 각 구성원은 다음 중 하나입니다.

    • 에이전트가 예측한 API 작업을 포함하는 ApiResult개체는 이전에 호출되어야 합니다. InvokeAgent시스템에서 작업을 호출한 시퀀스와 결과. 일반 형식은 다음과 같습니다.

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • 에이전트가 예측한 함수를 포함하는 FunctionResult객체는 이전 버전에서 호출되어야 합니다. InvokeAgent시퀀스 및 시스템에서 작업을 호출한 결과. 일반 형식은 다음과 같습니다.

      { "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

제공된 결과는 추가 조정을 위한 컨텍스트로 사용하거나, 에이전트가 응답 형식을 지정할 수 있도록 사후 처리에 보내거나, 에이전트의 사용자 응답에 직접 사용할 수 있습니다.

지식 기반 검색 구성

에이전트에 연결된 지식베이스의 검색 구성을 수정하려면 구성을 지정하려는 각 지식베이스의 구성 목록이 있는 knowledgeBaseConfigurations 필드를 포함하세요. knowledgeBaseId를 지정합니다. vectorSearchConfiguration필드에서 다음과 같은 쿼리 구성을 지정할 수 있습니다 (이러한 구성에 대한 자세한 내용은 참조쿼리 및 응답 생성 구성 및 사용자 지정).

  • 검색 유형 — 지식 베이스에서 벡터 임베딩만 검색할지 (SEMANTIC) 벡터 임베딩과 원시 텍스트 (HYBRID) 를 모두 검색할지 여부 필드를 사용하세요. overrideSearchType

  • 검색된 결과 최대 수 — 응답에 사용할 쿼리 검색 결과의 최대 수입니다.

  • 메타데이터 및 필터링 - 데이터 소스 파일의 메타데이터 속성을 기반으로 결과를 필터링하도록 구성할 수 있는 필터입니다.