

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

# 在工作階段中存放對話歷史記錄和內容
<a name="sessions-store-coversation"></a>

建立工作階段後，請使用 [CreateInvocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CreateInvocation.html) API 在工作階段內建立互動群組。對於每個分組，請使用 [PutInvocationStep](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_PutInvocationStep.html) API 操作來儲存每次互動的狀態檢查點，包括文字和影像。

在調用內將調用步驟加以組織的方式取決於使用案例。例如，如果您的代理程式可以協助客戶預訂行程，則您的調用和調用步驟可能如下所示：
+ 調用可以做為代理程式與客戶確認特定飯店不同日期空房狀況之對話的文字分組。
+ 每個調用步驟可能是代理程式與使用者之間的每個訊息，以及代理程式為擷取空房狀況所採取的每個步驟。

在 [PutInvocationStep](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_PutInvocationStep.html) API 中，您可以匯入與對話相關聯的影像。
+ 您最多可以包含 20 個影像。每個影像的大小、高度和寬度分別不得超過 3.75 MB、8000 px 和 8000 px。
+ 您可以匯入下列類型的影像：
  + PNG
  + JPEG
  + GIF
  + WEBP

**Topics**
+ [CreateInvocation 範例](#session-create-invocation)
+ [PutInvocationSteps 範例](#session-put-invocation-step)

## CreateInvocation 範例
<a name="session-create-invocation"></a>

下列程式碼範例示範如何使用 適用於 Python (Boto3) 的 AWS SDK將調用新增至作用中工作階段。對於 `sessionIdentifier`，您可以指定工作階段的 sessionId 或其 Amazon Resource Name (ARN)。如需此 API 的詳細資訊，請參閱 [CreateInvocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CreateInvocation.html)。

```
def create_invocation(session_identifier):
try:
    invocationId = client.create_invocation(
        sessionIdentifier=session_identifier,
        description="User asking about weather in Seattle",
        invocationId="12345abc-1234-abcd-1234-abcdef123456"
    )["invocationId"]
    print("invocation created")
    return invocationId
except ClientError as e:
    print(f"Error: {e}")
```

## PutInvocationSteps 範例
<a name="session-put-invocation-step"></a>

下列程式碼範例示範如何使用 適用於 Python (Boto3) 的 AWS SDK將調用步驟新增至作用中工作階段。程式碼會從工作目錄中新增文字和影像。對於 `sessionIdentifier`，您可以指定工作階段的 sessionId 或其 Amazon Resource Name (ARN)。對於調用識別碼，請指定調用的唯一識別碼 (UUID 格式) 以新增調用步驟。如需 API 的詳細資訊，請參閱 [PutInvocationStep](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_PutInvocationStep.html)。

```
def put_invocation_step(invocation_identifier, session_identifier):
with open('weather.png', 'rb') as image_file:
    weather_image = image_file.read()

try:
    client.put_invocation_step(
        sessionIdentifier=session_identifier,
        invocationIdentifier=invocation_identifier,
        invocationStepId="12345abc-1234-abcd-1234-abcdef123456",
        invocationStepTime="2023-08-08T12:00:00Z",
        payload={
            'contentBlocks': [
                {
                    'text': 'What\'s the weather in Seattle?',

                },
                {
                    'image': {
                        'format': 'png',
                        'source': {'bytes': weather_image}
                    }
                }

            ]
        }
    )
    print("invocation step created")
except ClientError as e:
    print(f"Error: {e}")
```