기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
제어 세션 컨텍스트
세션 컨텍스트를 더 잘 제어하기 위해 에이전트에서 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용 에이전트를 사용하면 세션의 일부에 걸쳐 지속되는 다음과 같은 유형의 컨텍스트 속성을 정의할 수 있습니다.
-
세션 속성 — 사용자와 상담원 간 세션 동안 지속되는 속성입니다. 세션 시간 제한 (the
idleSessionTTLinSeconds
) 을 초과하지 않는 한 동일한 InvokeAgent요청은 모두 동일한 세션에sessionId
속합니다. -
promptSessionAttributes— 단일 턴 (한 번의 InvokeAgent호출) 동안 지속되는 속성. 오케스트레이션 기본 프롬프트 템플릿을 편집할 때 $prompt_session_attributes$ 자리 표시자를 사용할 수 있습니다. 이 자리 표시자는 런타임 시 필드에 지정한 속성으로 채워집니다.
promptSessionAttributes
세션 상태 속성은 다음과 같은 두 단계로 정의할 수 있습니다.
-
작업 그룹을 설정하고 Lambda 함수를 작성할 때는 Amazon Bedrock에 반환되는 응답 이벤트에
promptSessionAttributes
또는 를sessionAttributes
포함하십시오. -
런타임 중에 요청을 보낼 때 InvokeAgent요청 본문에
sessionState
객체를 포함시켜 대화 도중에 세션 상태 속성을 동적으로 변경하십시오.
세션 속성 예제
다음 예제에서는 세션 속성을 사용하여 사용자에게 보내는 메시지를 개인화합니다.
-
<first_name><request>애플리케이션 코드를 작성하여 사용자에게 이름과 상담원에게 하고 싶은 요청을 제공하고 답변을 변수로
저장하도록 요청하세요.
-
신청 코드를 작성하여 다음 InvokeAgent본문과 함께 요청을 보내십시오.
{ "inputText": "
<request>
", "sessionState": { "sessionAttributes": { "firstName": "<first_name>
" } } } -
사용자가 애플리케이션을 사용하고 이름을 입력하면 코드가 세션 속성으로 이름을 보내고 에이전트는 세션 기간 동안 이름을 저장합니다.
-
세션 속성은 Lambda 입력 이벤트에서 전송되므로 작업 그룹의 Lambda 함수에서 이러한 세션 속성을 참조할 수 있습니다. 예를 들어, 작업 API 스키마가 요청 본문의 이름을 요구하는 경우, API 요청을 전송할 때 해당 필드를 자동으로 채우도록 작업 그룹에 대한 Lambda 함수를 작성할 때
firstName
세션 속성을 사용할 수 있습니다.
프롬프트 세션 속성 예제
다음 일반 예제에서는 프롬프트 세션 속성을 사용하여 에이전트에 임시 컨텍스트를 제공합니다.
-
<request>라는
변수에 사용자 요청을 저장하는 애플리케이션 코드를 작성하십시오.
-
사용자가 에서 상대 시간 (예: “내일”) 을 나타내는 단어를 사용하는 경우 사용자 위치의 시간대를 검색하도록 애플리케이션 코드를 작성하고 <request>라는 변수에 저장합니다
<timezone>.
-
다음 본문과 함께 InvokeAgent요청을 보내도록 애플리케이션을 작성하십시오.
{ "inputText": "
<request>
", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>
" } } } -
사용자가 상대 시간을 나타내는 단어를 사용하는 경우 코드는
timeZone
prompt 세션 속성을 전송하고 에이전트는 턴 기간 동안 이를 저장합니다. -
예를 들어 사용자가
I need to book a hotel for tomorrow
요청하면 코드가 사용자의 시간대를 상담원에게 보내고 상담원은 “내일”이 가리키는 정확한 날짜를 확인할 수 있습니다. -
프롬프트 세션 속성은 다음 단계에서 사용할 수 있습니다.
-
오케스트레이션 프롬프트 템플릿에 $prompt_session_attributes$ 자리 표시자를 포함하면 FM에 대한 오케스트레이션 프롬프트에 프롬프트 세션 속성이 포함됩니다.
-
프롬프트 세션 속성은 Lambda 입력 이벤트에서 전송되며 API 요청을 채우는 데 사용하거나 응답에서 반환되는 데 사용할 수 있습니다.
-
작업 그룹 호출 결과
응답에서 제어를 반환하도록 작업 그룹을 구성한 경우 다음 필드를 포함하여 후속 InvokeAgentInvokeAgent응답에 작업 그룹을 호출한 결과를 보낼 수 있습니다. sessionState
-
invocationId
— 이 ID는 InvokeAgent응답returnControl
필드의 ReturnControlPayload개체에invocationId
반환된 ID와 일치해야 합니다. -
returnControlInvocationResults
— 작업을 호출하여 얻은 결과를 포함합니다. ReturnControlPayload객체를 전달하여 API 요청을 수행하거나 정의한 함수를 호출하도록 애플리케이션을 설정할 수 있습니다. 그런 다음 여기에 해당 작업의 결과를 제공할 수 있습니다.returnControlInvocationResults
목록의 각 구성원은 다음 중 하나입니다.-
에이전트가 이전 InvokeAgent시퀀스에서 호출해야 한다고 예측한 API 작업과 시스템에서 해당 작업을 호출한 결과를 포함하는 ApiResult객체입니다. 일반적인 형식은 다음과 같습니다.
{ "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
-
에이전트가 이전 InvokeAgent시퀀스에서 호출해야 한다고 예측한 함수와 시스템에서 작업을 호출한 결과를 포함하는 FunctionResult객체입니다. 일반적인 형식은 다음과 같습니다.
{ "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }
-
제공된 결과는 추가 조정을 위한 컨텍스트로 사용하거나, 에이전트가 응답 형식을 지정할 수 있도록 사후 처리에 보내거나, 에이전트의 사용자 응답에 직접 사용할 수 있습니다.
지식 기반 검색 구성
에이전트에 연결된 지식베이스의 검색 구성을 수정하려면 구성을 지정하려는 각 지식베이스의 구성 목록이 있는 knowledgeBaseConfigurations
필드를 포함하세요. knowledgeBaseId
를 지정합니다. vectorSearchConfiguration
필드에서 다음과 같은 쿼리 구성을 지정할 수 있습니다 (이러한 구성에 대한 자세한 내용은 참조쿼리 구성).
-
검색 유형 — 지식 베이스에서 벡터 임베딩만 검색할지 (
SEMANTIC
) 벡터 임베딩과 원시 텍스트 (HYBRID
) 를 모두 검색할지 여부 필드를 사용하세요.overrideSearchType
-
검색된 결과 최대 수 — 응답에 사용할 쿼리 검색 결과의 최대 수입니다.
-
메타데이터 및 필터링 - 데이터 소스 파일의 메타데이터 속성을 기반으로 결과를 필터링하도록 구성할 수 있는 필터입니다.