对话界面 - 使用 Claude LLM 的聊天机器人

对话界面 - 使用 Claude LLM 的聊天机器人

本笔记本应该可以很好地与 SageMaker Studio 中的 Data Science 3.0 内核一起使用

在本笔记本中,我们将使用 Amazon Bedrock 中的基础模型 (FMs) 构建一个聊天机器人。对于我们的用例,我们使用 Claude V3 Sonnet 作为我们的基础模型。有关更多详细信息,请参阅文档 。它在复杂的推理、细微的内容创作、科学查询、数学和编码方面表现出色。数据团队可以将 Sonnet 用于 RAG,以及跨越大量信息的搜索和检索,而销售团队可以利用 Sonnet 进行产品推荐、预测和有针对性的营销。

概述

对话界面,如聊天机器人和虚拟助手,可用于增强我们客户的用户体验。聊天机器人使用自然语言处理 (NLP) 和机器学习算法来理解和响应用户查询。聊天机器人可用于各种应用程序,如客户服务、销售和电子商务,以快速高效地回答用户的查询。它们可通过各种渠道访问,如网站、社交媒体平台和消息应用程序。

使用 Amazon Bedrock 的聊天机器人

Amazon Bedrock - 对话界面

用例

  1. 聊天机器人 (基本) - 使用 FM 模型的零射聊天机器人
  2. 使用提示的聊天机器人 - 模板(Langchain) - 带有某些上下文的聊天机器人
  3. 带有角色的聊天机器人 - 带有定义角色的聊天机器人,例如职业教练和人类互动
  4. 上下文感知聊天机器人 - 通过生成嵌入来传递外部文件的上下文。

使用 Langchain 框架构建 Amazon Bedrock 的聊天机器人

在对话界面(如聊天机器人)中,记住以前的交互非常重要,既短期又长期。

LangChain 以两种形式提供内存组件。首先,LangChain 提供用于管理和操作先前聊天消息的帮助实用程序。这些旨在是模块化的和通用的,不管它们如何使用。其次,LangChain 提供了轻松将这些实用程序合并到链中的方法。 它允许我们轻松定义和交互不同类型的抽象,这使得构建强大的聊天机器人变得容易。

构建带有上下文的聊天机器人 - 关键元素

构建上下文感知聊天机器人的第一个过程是生成上下文的嵌入。通常,我们将有一个摄取过程,该过程将通过我们的嵌入模型运行并生成将存储在某种矢量存储中的嵌入。在这个例子中,我们使用 Titan Embeddings 模型来完成这项工作。

嵌入

第二个过程是用户请求编排、交互、调用和返回结果

聊天机器人

架构[上下文感知聊天机器人]

4

设置

⚠️ ⚠️ ⚠️ 在运行此笔记本之前,请确保我们已运行Bedrock boto3 设置笔记本 笔记本。⚠️ ⚠️ ⚠️ 然后运行下面的这些安装

请注意

我们正在跟踪使用 RunnableWithMessageHistory Runnable History Issue 时出现的一个讨厌的警告。现在请忽略警告消息

⚠️ ⚠️ ⚠️ 如果我们还没有这样做,请取消注释并运行 pip 安装 ⚠️ ⚠️ ⚠️