本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
先决条件
注意
配置和调用内联代理功能在 Amazon Bedrock 的预览版中,可能会发生变化。
在调用内联代理之前,请完成以下先决条件:
确定要用于配置内联代理的基础模型、要调用代理的区域,以及告诉内联代理应该做什么的指令。
创建或准备以下一个或多个要用于内联代理的 Amazon Bedrock 代理属性。
字段 应用场景 行动小组 提供操作组列表,每个操作组定义内联代理可以执行的操作。例如,您可以定义一个操作组 “预约”,以帮助用户执行诸如 CreateAppointment、 GetAppointment CancelAppointment、等操作。 guardrailConfiguration 配置防护栏以屏蔽话题、防止出现幻觉并为您的应用程序实施保护措施。 knowledgeBases 将知识库与您的内联代理关联,以增强模型生成的响应。知识库不仅可以用来回答用户查询和分析文档,还可以通过为提示提供上下文来增强向基础模型提供的提示。 promptOverridenConfiguration 在代理序列的不同部分配置覆盖提示,以提高内联代理的准确性。 customerEncryptionArn 指定用于加密内联代理的 AWS KMS 密钥的亚马逊资源名称 (ARN)。 -
创建 AWS 身份和访问管理 (IAM) Access Management 角色并将本步骤中提到的策略附加到该角色。
在调用内联代理之前,您必须创建一个 IAM 角色来提供使用
InvokeInlineAgent
API 和访问 Lambda 函数、知识库和基础模型等资源的必要权限。按照创建向 IAM 用户委派权限的角色中的步骤,为您的内联代理创建自定义服务角色。创建 IAM 角色后,将以下策略附加到该角色。
注意
出于安全考虑,最佳做法是在创建您的账户 ID 和
*.ids
特定资源 ID 后,将、和替换为区域。${region}
${account-id}
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeInlineAgent", "Effect": "Allow", "Action": "bedrock:InvokeInlineAgent" } { "Sid": "InvokeFoundationModel", "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": "arn:aws:bedrock:
${region}
::foundation-model/{modelId
}" }, { "Sid": "S3AccessForKBAndActions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectMetadata" ], "Resource": "arn:aws:s3:::" }, { "Sid": "S3AccessForCodeInterpreter", "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAttributes", "s3:GetObjectAttributes" ], "Resource": "arn:aws:s3:::bucket/path/to/file
" }, { "Sid": "KnowledgeBaseAccess", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": "arn:aws:bedrock:${region}
:${account-id}
:knowledge-base/knowledge-base-id
" }, { "Sid": "GuardrailAccess", "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": "arn:aws:bedrock:${region}
:${account-id}
:guardrail/${guardrail-id}
" }, { "Sid": "LambdaInvoke", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:${region}
:${account-id}
:function:function-name
" }, { "Sid": "KMSAccess", "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:${region}
:${account-id}
:key/${key-id}
" } ] }