通过先进的路由技术增强对话式AI,借助Amazon Bedrock 机器学习博客
利用先进的路由技术增强对话AI的能力
关键要点
在本篇文章中,我们探讨了如何利用AWS的Amazon Bedrock和LangChain来构建对话AI助手,论述了这两种方法的优缺点,以及在物联网设备管理中的应用。通过有效的路由技术,可以实现更加智能、灵活的用户交互体验。
对话式人工智能AI助手旨在通过智能地将查询路由到最适合的AI功能来提供准确的实时响应。借助AWS生成式AI服务,如Amazon Bedrock,开发人员可以创建能够专家般地管理和响应用户请求的系统。Amazon Bedrock是一个完全托管的服务,它提供来自AI公司如AI21 labs、Anthropic、Cohere、Meta、Stability AI和Amazon的一系列高性能基础模型FMs,用户只需通过单一API调用及其极广泛的构建生成式AI应用所需的能力,确保其安全性、隐私性与负责任的AI实践。
本文探讨了开发AI助手的两种主要方法:使用Amazon Bedrock Agents的托管服务,和利用开源技术如LangChain。我们深入分析了每种方法的优势和挑战,帮助你选择最合适的路径。
什么是AI助手?
AI助手是一种智能系统,能够理解自然语言查询,并与各种工具、数据源和API进行交互,以执行任务或为用户检索信息。有效的AI助手具备以下关键能力:
自然语言处理NLP和对话流知识库整合和语义搜索,以理解和获取与对话背景相关的信息执行任务,如数据库查询和自定义AWS Lambda函数处理专门的对话和用户请求我们通过物联网IoT设备管理的例子来展示AI助手的好处。在这个用例中,AI可以帮助技术人员通过命令获取数据或自动执行任务,从而提高制造业的操作效率。
Amazon Bedrock Agents 方法
Amazon Bedrock Agents使你能够构建能够跨公司系统和数据源运行多步骤任务的生成式AI应用。其主要能力包括:
从说明、API细节和数据源信息自动生成提示,节省数周的提示工程时间采用检索增强生成RAG来安全地连接代理与公司的数据源,并提供相关响应通过将请求分解为逻辑序列并调用必要的API来组织和运行多步骤任务通过链式思维CoT追踪提供代理的推理可见性,从而便于故障排查和模型行为引导提供提示工程能力,以修改自动生成的提示模板,增强对代理的控制你可以将Amazon Bedrock Agents和Amazon Bedrock Knowledge Bases结合使用,为复杂的路由用例构建和部署AI助手。这为开发者和组织提供了战略优势,简化了基础设施管理,提高了可扩展性,改善了安全性,减少了不必要的繁重工作。此外,它还能简化应用程序代码层,因为路由逻辑、向量化和内存都是完全管理的。
解决方案概述
本解决方案介绍了一个针对物联网设备管理和操作量身定制的对话式AI助手,使用的是Anthropic的Claude v21模型在Amazon Bedrock上实现。AI助手的核心功能由一组全面的指令称为系统提示主导,明确了其能力和专长。这样的指导确保AI助手能够处理从管理设备信息到运行操作命令的广泛任务。
gtgt以下是概述AI助手能力的系统提示:你是一个物联网操作代理,处理以下活动: 查询物联网设备信息 检查物联网操作指标历史数据 根据设备ID执行逐个操作 回答一般问题你可以从“IotDeviceSpecs”知识库中检查设备信息设备ID、功能、技术规格、安装指南、维护和故障排查、安全指南、保修和支持。此外,你也可以访问设备的历史数据或设备指标。这些设备指标存储在名为iotopsgluedb的Athena数据库中的iotdevicemetrics表中。该表模式包括油位、温度、压力、接收时间戳和设备ID等字段。你可以对设备执行的可用操作包括启动、关闭和重启。ltlt
大象加速器app下载凭借系统提示中详细列出的这些能力,AI助手遵循结构化的工作流程来解答用户问题。接下来的图示提供了该工作流程的可视化表示,展示了从初始用户交互到最终响应的每个步骤。

该工作流程包括以下步骤:
当用户请求助手执行任务时,过程开始;例如,询问特定物联网设备devicexxx的最大数据点。此文本输入被捕获并发送到AI助手。AI助手解析用户的文本输入。它使用提供的对话历史、动作组和知识库来理解上下文并确定必要的任务。在解析和理解用户意图后,AI助手定义任务。这是基于助手按照系统提示和用户输入解读的指令。然后,这些任务通过一系列API调用传递。使用ReAct提示,它将任务分解为一个一个处理的步骤:对于设备指标检查,我们使用checkdevicemetrics动作组,这涉及调用Lambda函数,然后查询Amazon Athena以获取请求的数据。对于直接的设备操作,如启动、关闭或重启,我们使用actionondevice动作组,它调用Lambda函数。此函数启动一个过程,将命令发送到物联网设备。对于本文,Lambda函数使用Amazon Simple Email ServiceAmazon SES发送通知。我们利用Amazon Bedrock Knowledge Bases从存储为嵌入的历史数据中获取信息,存储在Amazon OpenSearch Service的向量数据库中。在任务完成后,由Amazon Bedrock FM生成最终响应并传达给用户。Amazon Bedrock Agents会自动使用有状态会话存储信息,以保持同一次对话的连续性。当经过可配置的空闲超时后,状态会被删除。技术概述
下面的图表展示了用Amazon Bedrock Agents部署AI助手的架构。
它包含以下关键组件:
对话界面 对话界面使用Streamlit,一个开源Python库,简化了机器学习ML和数据科学自定义美观网页应用的创建。它托管在Amazon Elastic Container ServiceAmazon ECS上,使用AWS Fargate访问,并通过应用程序负载均衡器访问。你可以使用Fargate与Amazon ECS一起运行容器,而无需管理服务器、集群或虚拟机。Amazon Bedrock Agents Amazon Bedrock Agents通过一系列推理步骤和相应的操作完成用户查询,基于ReAct提示:Amazon Bedrock Knowledge Bases Amazon Bedrock Knowledge Bases提供完全管理的RAG,为AI助手提供访问你的数据的能力。在我们的用例中,我们将设备规格上传到一个Amazon Simple Storage ServiceAmazon S3存储桶中。它作为知识库的数据源。动作组 这些是定义API架构,用于调用特定的Lambda函数以与物联网设备和其他AWS服务互动。Anthropic Claude v21在Amazon Bedrock中 此模型解释用户查询并协调任务流。Amazon Titan Embeddings 此模型作为文本嵌入模型,将自然语言文本从单个单词到复杂文档转化为数字向量。这使向量搜索能力得以实现,系统能够在语义上将用户查询与知识库中最相关的条目进行匹配,以实现有效检索。该解决方案与AWS服务集成,如Lambda用于响应API调用的代码执行,Athena用于查询数据集,OpenSearch Service用于在知识库中搜索,以及Amazon S3用于存储。这些服务协同工作,为物联网设备操作管理提供通过自然语言命令的无缝体验。
优势
此解决方案提供以下优势:
实施复杂性:由于Amazon Bedrock Agents抽象了大部分底层复杂性,因此所需的代码行更少,从而减少了开发工作。管理像OpenSearch Service这样的向量数据库变得简单,因为Amazon Bedrock Knowledge Bases处理向量化和存储。通过预定义的动作组,与各种AWS服务的集成更加流畅。开发者体验:Amazon Bedrock控制台提供了一个用户友好的接口,用于提示开发、测试和根本原因分析RCA,增强了整体开发者体验。敏捷性和灵活性:Amazon Bedrock Agents允许在新模型如Claude 30可用时无缝升级,从而使你的解决方案保持最新。服务配额和限制由AWS管理,减少了监控和扩展基础设施的负担。安全性:Amazon Bedrock是一个完全托管的服务,遵循AWS严格的安全和合规标准,可能简化组织的安全审查。尽管Amazon Bedrock Agents为构建对话式AI应用提供了简化和管理的解决方案,但一些组织可能更喜欢开源方法。在这种情况下,你可以使用像LangChain这样的框架,我们将在下一节中讨论。
LangChain 动态路由方法
LangChain是一个开源框架,简化了构建对话式AI的过程,允许集成大型语言模型LLMs和动态路由能力。借助LangChain表达语言LCEL,开发人员可以定义路由,创建非确定性链,其中前一步的输出决定了下一步。路由帮助提供与LLMs交互的一致性与结构。
在本篇文章中,我们使用与物联网设备管理相同的示例。然而,主要的区别在于我们需要单独处理系统提示,并将每个链视为一个独立实体。路由链根据用户输入决定目标链。此决策通过传递系统提示、聊天历史和用户问题,由LLM进行支持。
解决方案概述
以下图示展示了动态路由解决方案的工作流程。
工作流程包括以下步骤:
用户向AI助手提出一个问题,比如“设备1009的最大指标是多少?”LLM评估每个问题和来自同一会话的聊天历史,以确定问题的性质以及它属于哪个主题领域例如SQL、操作、搜索或SME。LLM对输入进行分类,然后LCEL路由链处理该输入。路由链根据输入选择目标链,LLM会被提供以下系统提示:“根据以下用户问题,将其分类为候选提示之一。你可能需要在考虑聊天历史和问题上下文后修改输入。有时,用户可能只是假设你了解对话的上下文,而不会提供清晰的输入。因此,您将获得聊天历史以获取更多上下文。仅用Markdown代码片段响应,包含一个JSON对象,格式必须完全符合下面的要求。不要对您的分类提供任何解释,除了Markdown。我只需要知道你选择的目标和下一步的输入lt候选提示gtphysics 适合回答关于物理学的问题sql sql 适合查询AWS Athena的sql。用户输入可能看起来像:为设备x获取最大值或最小值?lambdachain 适合执行Amazon Lambda的操作,如关闭设备或关闭引擎。用户输入可能是关闭设备x,或终止进程y等。rag 适合搜索知识库并检索关于设备和相关信息的信息。用户问题可能是:你知道设备x的情况吗?default 如果输入不适合上述任何候选提示,可以用来继续对话并回应类似于提供对话总结的查询lt/候选提示gt”
LLM通过评估用户的问题及聊天历史来判断查询的性质和主题领域。然后,LLM对输入进行分类,并输出JSON响应,格式如下:
json{ destination 使用的提示名称 nextinputs 可能修改后的原始输入}
路由链使用此JSON响应来调用相应的目标链。存在四个特定主题的目标链,各自有其系统提示:
涉及SQL的查询将被发送到用于数据库交互的SQL目标链。你可以使用LCEL构建SQL链。面向操作的问询将调用自定义Lambda目标链以执行操作。借助LCEL,你可以定义自己的自定义函数;在我们的案例中,它是一个运行预定义Lambda函数以发送带有设备ID的电子邮件的函数。比如用户输入可能是“关闭设备1009”。以搜索为中心的询问会进入RAG目标链进行信息检索。SME相关的提问将被发送到SME/专家目标链以获取专业见解。每个目标链接受输入并运行必要的模型或函数:SQL链使用Athena运行查询。RAG链使用OpenSearch Service进行语义搜索。自定义Lambda链运行Lambda函数以执行操作。SME/专家链利用Amazon Bedrock模型提供见解。来自每个目标链的响应由LLM组成成连贯的见解,然后传递给用户,完成查询周期。用户输入和响应被存储在Amazon DynamoDB中,以为LLM提供当前会话和过去交互的上下文。DynamoDB中持久化信息的持续时间由应用程序控制。技术概述
以下图表展示了LangChain动态路由解决方案的架构。
该网页应用由Streamlit构建,托管在Amazon ECS上并使用Fargate,并通过应用程序负载均衡器访问。我们使用Anthropic的Claude v21在Amazon Bedrock上作为我们的LLM。该网页应用通过LangChain库与模型进行交互。它还与多种其他AWS服务如OpenSearch Service、Athena和DynamoDB互动,以满足最终用户的需求。
优势
此解决方案提供以下优势:
实施复杂性:尽管需要更多的代码和自定义开发,LangChain为路由逻辑和与各种组件的集成提供了更大的灵活性和控制。管理像OpenSearch Service这样的向量数据库需要额外的设置和配置工作。向量化过程在代码中实现。与AWS服务的集成可能涉及更多的自定义代码和配置。开发者体验:LangChain的基于Python的方法和广泛的文档对已经熟悉Python和开源工具的开发者具有吸引力。提示开发和调试可能要求比使用Amazon Bedrock控制台更手动的努力。敏捷性和灵活性:LangChain支持多种LLM,使你可以在不同模型或供应商之间切换,增强灵活性。LangChain的开源性质使得社区驱动的改进和定制成为可能。安全性:作为一个开源框架,LangChain可能需要在组织内进行更严格的安全审查和检验,从而可能增加额外的负担。结论
对话AI助手是简化操作和增强用户体验的变革性工具。
构建一个实时、低代码的时间序列数据异常检测管道,使用 Amazon Aurora、Amazon Re
构建实时低代码异常检测管道关键要点本文提供了一种使用 Amazon Aurora、Amazon Redshift ML 和 Amazon SageMaker 构建实时低代码异常检测解决方案的方法。该方案可有效监测资产,识别设备异常,支持工业物联网IIoT中的数据分析需求。工业物联网IIOT革命改变了...