Vitech通过Amazon Bedrock革新信息访问与AI驱动的聊天机器人
关键要点
在本篇文章中,我们将探讨Vitech如何利用Amazon Bedrock和生成性人工智能AI构建VitechIQ,一个为员工提供内部联系文档访问的AI驱动聊天机器人。Vitech面临的信息访问挑战通过这一创新解决方案得以有效应对。
Vitech是一家全球领先的云中心福利和投资管理软件提供商。Vitech致力于帮助团体保险、养老金基金管理和投资客户扩展服务及能力,优化操作并获得分析洞察。为了更好地服务客户,Vitech维护着一个信息库,其中包括产品文档用户指南、标准操作流程、运行手册,这些文档当前分散在多个内部平台例如,Confluence网站和SharePoint文件夹上。缺乏一个集中且易于导航的知识系统导致了以下几项问题:
由于缺乏高效的检索系统,生产力下降,并且经常导致信息过载由于没有统一的真实信息来源,信息访问不一致为了解决这些挑战,Vitech利用生成性人工智能与Amazon Bedrock构建了VitechIQ,一个供员工访问内部文档库的AI驱动聊天机器人。
对于想要构建与内部文档库互动的AI驱动聊天机器人的客户,AWS提供了完全托管的能力Amazon Bedrock 知识库,可以从数据摄取到检索实现完整的检索增强生成RAG工作流,且无需构建自定义集成或管理数据流。同时,开源技术如Langchain也可以用于协调端到端流程。
在本博客中,我们将详细介绍构建解决方案所需的架构组件、评估标准以及用户在VitechIQ中的交互过程。
技术组件与评估标准
在这一部分,我们讨论构建解决方案所需的关键技术组件和评估标准。
安卓加速器免费托管大型语言模型
Vitech探索了使用Amazon Sagemaker托管大型语言模型LLM的选项。Vitech希望获得一个完全托管和安全的体验来托管LLM,并消除托管第三方模型所需的不必要劳动。Amazon Bedrock是一个完全托管的服务,通过API使来自领先人工智能初创公司及亚马逊的模型可用,用户可以从多种模型中选择,以找到最适合其用例的解决方案。借助Bedrock的无服务器体验,用户可以快速上手,私下自定义模型并使用AWS工具轻松集成和部署,而无需管理任何基础设施。因此,Vitech选择了Amazon Bedrock来托管LLM,并与现有基础设施无缝整合。
检索增强生成与微调
传统的LLM并不了解Vitech的流程,因此必须将LLM的能力与Vitech的知识库相结合。微调将允许Vitech在小样本集上训练模型,从而使用Vitech的术语提供响应。然而,在此用例中,与微调相关的复杂性和成本并不符合要求。因此,Vitech选择了检索增强生成RAG,在这种方式中,LLM可以使用向量嵌入来执行语义搜索,并在与聊天机器人互动时为用户提供更相关的答案。
数据存储
Vitech的产品文档大部分以pdf格式提供,因此这是VitechIQ所使用的标准格式。在其他格式下,如果文档可用,用户会先预处理这些数据并转换成pdf格式。这些文档上传并存储在Amazon S3中,成为集中式数据存储。
数据切块
切块是将大型文本文档分解为更小、更易于管理的段落如段落或章节的过程。Vitech选择了一种递归切块方法,动态地根据文本的固有结构如章节和部分进行划分,从而提供了更自然的文本切分。1000个标记大小的切块与200个标记的重叠能够提供最佳结果。
大型语言模型
VitechIQ使用两个主要的LLM模型来解决提供高效和准确信息检索的业务挑战:
向量嵌入 此过程将文档转换为数值表示,确保捕捉语义关系相似文档在数值上彼此靠近,从而实现高效搜索。Vitech探索了多种向量嵌入模型,并选择了由Amazon Bedrock提供的Amazon Titan Embeddings文本模型。问答 VitechIQ的核心功能是根据检索到的上下文为用户查询提供简明可信的答案。Vitech选择了Amazon Bedrock提供的Anthropic Claude模型。该模型的高标记限制为200000约150000个单词使其能够处理大型上下文并保持对正在进行的对话的关注,从而能够提供更准确和相关的响应。此外,VitechIQ还在模型的输出中包含来自向量数据库的元数据例如,文档链接,为用户提供来源归属并增强对生成答案的信任。提示工程
提示工程对于知识检索系统至关重要。提示引导LLM如何根据用户问题进行响应和互动,同时也帮助确定模型的定位。作为提示工程的一部分,VitechIQ针对LLM配置了一组指令,确保对话相关并消除歧视言论,并指导模型如何回应开放式对话。以下是VitechIQ中使用的提示示例:
plaintext你是Jarvis,一个旨在与人类互动的聊天机器人。你的主要功能是:1 友好的问候:当用户启动对话时,热情回应。2 开放式对话:当用户提供随机上下文或开放式陈述时,确认并询问,以更好地理解他们的意图。3 诚实:如果你不知道用户问题的答案,简单地说你不知道,避免编造答案。你的名字是Jarvis,在整个对话中保持友好和乐于助人的语调。使用以下上下文来回答最后的问题。如果你不知道答案,简单地说你不知道,不要尝试编造一个答案。{context}{chathistory}Human {humaninput}Chatbot
向量存储
Vitech探索了像OpenSearch和Redis这样的向量存储。然而,Vitech在处理和管理Amazon Aurora PostgreSQL兼容版数据库方面拥有专业知识。Amazon Aurora PostgreSQL支持开源pgvector扩展以处理向量嵌入,并且Amazon Aurora优化读取提供了一种具成本效益且高效的选择。这些因素促使Vitech选择Amazon Aurora PostgreSQL作为向量嵌入的存储。
处理框架
LangChain提供无缝的机器学习ML模型集成,使Vitech能够构建自定义自动化AI组件并保持模型无关性。LangChain的现成链和代理库使Vitech能够采用提示模板和记忆管理等功能,从而加速整体开发过程。Vitech使用Python虚拟环境冻结LangChain依赖项的稳定版本,并无缝地将其从开发转移到生产环境。通过LangChain的ConversationBufferMemory库,VitechIQ使用有状态会话存储对话信息,保持对话的相关性。状态在可配置的闲置超时时间后被删除。
VitechIQ使用了多个LangChain库,以下是一些显著库及其用法:
langchainllms (Bedrock) 与Amazon Bedrock提供的LLMs交互langchainembeddings (BedrockEmbeddings) 创建嵌入langchainchainsquestionanswering (loadqachain) 执行问答langchainprompts (PromptTemplate) 创建提示模板langchainvectorstorespgvector (PGVector) 创建向量嵌入并执行语义搜索langchaintextsplitter (RecursiveCharacterTextSplitter) 将文档分割成块langchainmemory (ConversationBufferMemory) 管理对话记忆它们使用的版本包括:
langchain==00306langchainexperimental==0024langsmith==0043pgvector==023streamlit==1280streamlitextras==034用户界面
VitechIQ的用户界面使用Streamlit构建。Streamlit提供友好的用户体验,快速构建交互式和易于部署的解决方案在Vitech广泛使用的Python库。Streamlit应用托管在Amazon Elastic Compute CloudAmazon EC2上,并由Elastic Load BalancingELB支撑,允许Vitech在流量增加时进行扩展。
优化搜索结果
为减少幻觉并优化标记大小和搜索结果,VitechIQ使用值k在搜索函数中执行语义搜索similaritysearchwithscore。VitechIQ将嵌入响应过滤为前10个结果,并将数据集限制为得分少于048的记录表示密切相关,从而识别出最相关的响应并消除噪声。

Amazon Bedrock VPC接口端点
Vitech希望确保所有通信保持私密并不经过公共互联网。VitechIQ使用Amazon Bedrock VPC接口端点确保连通性端到端安全。
监控
VitechIQ应用日志发送至Amazon CloudWatch。这帮助Vitech管理层获得当前使用和趋势的洞察。此外,Vitech使用Amazon Bedrock运行时指标来衡量延迟、性能和标记数量。
我们注意到Amazon Bedrock与Claude的结合不仅匹配,甚至在某些情况下超越了我们与竞争生成性AI解决方案的性能和质量,同时符合Vitech的安全标准。
Madesh Subbanna,Vitech数据库与分析副总裁
解决方案概述
让我们看看这些组件如何结合在一起,以展示最终用户体验。以下图示展示了解决方案架构。
VitechIQ的用户体验可以分为两个流程:文档库和知识检索。
文档库流程
该步骤包括了对构成知识库的文档的策划和收集。内部,Vitech利益相关者进行尽职调查,审查并批准文档,然后上传到VitechIQ。每个上传到VitechIQ的文档,用户提供一个内部参考链接Confluence或SharePoint,以确保可以追踪任何未来的修订,确保最新的信息可用。一旦新文档版本可用,VitechIQ会更新嵌入,以保持推荐信息的相关性和及时性。
Vitech利益相关者会在每周手动审查上传请求的文档和修订。因此,文档在一周内能准备妥当在VitechIQ中供用户使用。
以下截图展示了VitechIQ的文档上传界面。
上传过程包括以下步骤:
领域利益相关者将文档上传至VitechIQ。LangChain使用递归切块解析文档,并将其发送至Amazon Titan Embeddings模型。Amazon Titan Embeddings模型生成向量嵌入。这些向量嵌入存储在Aurora PostgreSQL数据库中。用户收到上传成功或失败的通知。知识检索流程
在此流程中,用户与VitechIQ聊天机器人互动,聊天机器人为他们的问题提供汇总和准确的答案。VitechIQ还提供源文档的归属以响应用户问题使用在先前流程中上传文档的URL。
以下截图展示了用户与VitechIQ的互动。
该过程包括以下步骤:
用户通过自然语言向VitechIQ提问。该问题通过Amazon Bedrock接口端点发送至Amazon Titan Embeddings模型。Amazon Titan Embeddings模型将该问题转换并生成向量嵌入。向量嵌入被发送到Amazon Aurora PostgreSQL,以在知识库文档中执行语义搜索。使用RAG,提示经过上下文和相关文档的增强,并随后发送至Amazon BedrockAnthropic Claude进行汇总。Amazon Bedrock根据提示指令生成汇总响应,并将响应返回给用户。随着用户提出更多问题,上下文也会被回传至提示中,使其了解正在进行的对话。
VitechIQ所带来的利益
通过利用生成性AI的力量,VitechIQ成功解决了信息碎片化和不可获取的关键挑战。以下是VitechIQ的主要成就和创新影响:
集中知识中心 这有助于简化信息检索过程,使咨询产品团队的询问减少超过50。提升生产力与效率 用户能够快速准确地访问信息。VitechIQ每天平均有50名用户使用,每月大约进行2000次查询。持续演变与学习 Vitech能够扩展其知识库到新领域。Vitech的API文档涵盖35000份文档,文档大小可达3 GB已上传至VitechIQ,使开发团队能无缝搜索所需文档。结论
VitechIQ证明了公司致力于利用AI的力量以实现运营卓越,以及Amazon Bedrock所提供的能力。随着Vitech对这一解决方案的不断迭代,优先的路线图项目包括使用LangChain表达语言LCEL、将Streamlit应用程序现代化以在Docker上托管,以及自动化文档上传过程。此外,Vitech还在探索为外部客户构建类似能力的机会。VitechIQ的成功是进一步技术发展的踏脚石,为科技如何在企业世界增强人类能力设立了新的标准。Vitech通过与AWS在生成性AI创新中心等项目上的合作,继续进行创新,识别额外的客户导向实现方案。了解更多信息,请访问Amazon Bedrock。
作者介绍
Samit Kumbhani 是位于纽约市地区的AWS高级解决方案架构师,拥有18年以上的经验。他目前与独立软件供应商ISV合作,构建高可扩展、创新和安全的云解决方案。在工作之外,Samit喜欢打板球、旅行和骑自行车。
Murthy Palla 是Vitech的技术经理,拥有9年的数据架构和工程经验。他拥有德克萨斯大学奥斯汀分校的AWS解决方案架构师和AI/ML工程师认证,专注于现代Python、Oracle和PostgreSQL数据库等。Murthy在当前的角色中领导研发项目,开发创新的数据湖和仓储解决方案。他的专业领域还包括将生成性AI应用于业务应用,推动Vitech的技术进步和运营卓越。
Madesh Subbanna 是Vitech的副总