Amazon Bedrock 是一项完全托管的服务,使用单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM),以及构建生成式人工智能应用程序所需的一系列广泛功能,在维护隐私和安全的同时简化开发。
借助 Amazon Bedrock 的全面功能,您可以:
- 轻松尝试使用和微调各种热门 FM;
- 内置知识库,方便使用增强生成(RAG)等技术利用您的数据对其进行私人定制;
- 创建可执行复杂业务任务(从预订旅行和处理保险索赔到制作广告活动和管理库存)的托管代理,所有这些都无需编写任何代码。
由于 Amazon Bedrock 是无服务器的,因此您无需管理任何基础设施,并且可以使用已经熟悉的 AWS 服务将生成式人工智能功能安全地集成和部署到您的应用程序中。
Anthropic 的 Claude 2.1 基础模型现已在 Amazon Bedrock 中全面推出。Claude 2.1 为企业提供了关键功能,部分功能媲美甚至超越了GPT4,例如:
- Claude 2.1 支持 200,000 个令牌,相当于大约 150,000 个单词,或超过 500 页的文档。在将大量信息上传到 Claude 2.1 时,您可以汇总、执行问答、预测趋势,并比较和对比用于起草业务计划和分析复杂合同的多个文档。
- 与 Claude 2.0 相比,Claude 2.1 将开放式对话和文档问答的虚假陈述中的幻觉减少了 50%,将错误回答减少了 30%,将错误得出文档支持特定主张的比率降低了 3–4 倍。3. Claude 2.1 现在支持系统提示,这是一项新功能,可以让 Claude 更好地遵循指南、规则和说明。
- 用于函数调用和工作流程编排的测试版工具使用功能。
如何构建基于Claude2.1的多轮对话
Bedrock Agent 中推出了提示词模版管理功能,通过为代理定义和配置提示模板,可以更好地控制代理的行为。这些提示模板帮助您自定义代理如何处理基础模型中的用户输入文本和输出提示,如何在模型、操作组和知识库之间进行协调,以及如何向用户返回响应。 高级提示允许您通过更详细的配置以及为少量提示提供手工策划示例的能力来提高代理的准确性,该过程可让您通过提供一些与特定任务相关的标记示例来提高模型性能。
Bedrock Agent 的数据处理调用过程有4个步骤:
- 预处理(Pre-processing)
- 编排(Orchestration)
- 知识库响应生成(Knowledge base response generation)
- 后处理(Post-processing)
每个步骤都有对应的占位符变量,我们可以通过预处理和编排过程加入 变量,即可自动引入当前会话的历史记录,从而使整个问答参考对话上下文来给出用户更准确的回复。
修改高级提示词加入会话占位符
打开Bedrock Agent - Working draft, 编辑advanced prompts, 启用编排(Orchestration)模版,并修改为如下内容:
Human:
You are a research assistant AI that has been equipped with one or more functions to help you answer a <question>. Your goal is to answer the user's question to the best of your ability.
You were created with these instructions to consider as well:
<auxiliary_instructions>$instruction$</auxiliary_instructions>
$prompt_session_attributes$
Always return your final answer within <answer></answer> tags.
$conversation_history$
The user input is <question>$question$</question>
Assistant: <scratchpad> I understand I cannot use functions that have not been provided to me to answer this question.
$agent_scratchpad$
因为本文只是为了测试基于大模型的会话功能,我们暂时禁用其他过程(预处理、知识库响应生成、后处理)的提示词模版能力。这时,控制台的配置信息将显示如下:
提示词修改并保存后,我没需要点击“Prepare” 准备WorkingDraft环境:
在生产环境,如果您不希望对提示词的变更影响到生产环境的使用,您可以通过在代理(Agent)中创建别名(Aliases)并产生新的版本。在调用Bedrock Agent时,使用Aliases ID指定版本信息,这样不同版本之间的环境配置将相互隔离,互不影响。
现在,来看一下基于上下文的对话示例吧:
总结
基于Amazon Bedrcok Agent可以在几分钟内建立一个基于历史对话上下文和大语言模型的会话系统,并应用到客服、问答等各种场景中。同时基于Claude2.1强大的Token(令牌)数量和准确的回复能力,可以大幅提升在客服和问答场景的易用性和可靠性。
如果你想快速体验搭建自己的基于Bedrock Claude2、Agent、知识库也可以参考:github.com/cloudswb/aw…
本文由博客一文多发平台 OpenWrite 发布!