Langflow 基于LangChain Astra DB开发RAG聊天机器人
简介
检索增强生成(Retrieval Augmented Generation,简称“RAG”)是一种人造言语环节,它触及将传统检索技术与LLM(大型言语模型)相结合,经过将生成属性与检索提供的高低文相结合来生成更准确和关系的文本。最近,这种技术在聊天机器人开发中失掉了宽泛的运行,使公司能够经过经常使用其数据定制的尖端LLM模型来改善与客户的智能化通讯。
Langflow()是Langchain的图形用户界面,Langchain是LLM的集中式开发环境。早在2022年10月,LangChain就颁布了,到2023年6月,它已成为GitHub上经常使用最多的开源名目之一。可以说,如今LangChain席卷了整团体工智能社区,特意是为创立和定制多个LLM而开发的框架,这些LLM具有与最关系的文本生成和嵌入模型集成、链接LLM调用的或许性、治理揭示的才干、装备向量数据库以减速计算的选项,以及将结果顺利交付给外部API和义务流等性能。
在这篇文章中,咱们将经常使用驰名的开源泰坦尼克号(Titanic)数据集()展现如何经常使用Langflow开发一个完整的端到端RAG聊天机器人。
经常使用Langflow平台开发RAG聊天机器人
首先,须要在Langflow平台()启动注册。为了开局一个新名目,可以依据用户需求极速定制一些有用的预构建流程。本文中要创立一个RAG聊天机器人程序,最好的选用是经常使用向量存储(Vector Store)RAG模板。图1显示了这种打算的原始操作流程。
图1:Langflow向量存储RAG模板流
在上述模板中,为嵌入和文本生成预先选用了OpenAI,这些是本文中经常使用的技术;然而,其余一些选项,如Ollama、NVIDIA和Amazon Bedrock等,也都是可用的,只有设置关系的API密钥即可轻松将其集成。值得留意的是,在经常使用与LLM提供程序的集成之前,要审核所选的集成能否在性能上处于优惠形态,如下图2所示。此外,可以定义全局变量,如API键和模型称号,以便于对流对象启动输入。
图2:OpenAI集成和概述的界面
向量存储Rag模板上提供了两种不同类型的流。其中,上方的一个显示了Rag的检索局部,其中经过上行文档、拆分、嵌入,而后将其保留到Astra DB(【译者注】。Astra DB是一个基于Apache Cassandra的开源云原生数据库服务,它提供了弱小的向量存储才干,十分适宜用于构建RAG系统)上的向量数据库中来提供高低文,该数据库可以在流界面上轻松创立。
目前,自动状况下,Astra DB对象能够智能检索Astra DB运行程序令牌,因此甚至不须要搜集它。最后,须要创立将嵌入值存储在向量DB中的汇合。为了正确存储嵌入结果,汇合维度须要与文档中提供的嵌入模型中的维度相婚配。因此,假设你选用的嵌入模型是OpenAI的text-embedding-3-small的话,那么创立的汇合维度必定是1536。下图3显示了完整的检索流程。
图3:泰坦尼克号数据集的检索流程
用于增强聊天机器人高低文的数据集是Titanic数据集(,CC0容许证)。在RAG流程完结时,聊天机器人应该能够提供详细的细节并回答无关乘客的复杂疑问。但首先,咱们须要在通用文件加载器对象上降级文件,而后经常使用全局变量“separator;”对其启动拆分,由于原始格局是CSV。此外,块堆叠和块大小须要设置为0,由于经过经常使用分隔符,每个块都将形容为一个乘客对应数据。假设输入文件是纯文本格局,那么,有必要运行块堆叠和大小设置来正确创立嵌入。为了成功流程,向量存储在demo_assistente数据库的titanic_vector_db中。
图4:完整的生成流程
接上去,让咱们转到RAG的生成流程,如图4所示,它是由聊天中的用户输入触发的,而后搜查到数据库中,为的揭示提供高低文。因此,假设用户在输入中征询与称号“Owen”关系的内容的话,搜查将在向量数据库的汇合中运转,寻觅与“Owen“关系的向量,而后检索并经过解析器运转它们以便将其转换为文本,最后取得稍后揭示所需的高低文。图5显示了相应的搜查结果。
图5:在向量数据库中启动搜查以失掉高低文的结果
回到一开局,经常使用检索流中的相反模型将嵌入模型再次衔接到向量数据库以运转有效搜查也是很关键的一步;否则的话,由于检索和生成流中经常使用的嵌入模型的不同,会造成检索结果内容总是空的。此外,这一步证实了在RAG中经常使用向量DB的渺小性能长处,在RAG中将高低文极速检索并传递给揭示,而后才干对用户做出任何类型的照应。
在图6所示的揭示中,高低文来自已转换为文本的解析器,疑问来自原始用户输入。下图显示了如何构建揭示,并将高低文与疑问结合起来。
图6:将传递给AI模型的揭示信息
揭示写好后,是时刻经常使用文本生成模型了。在此流程中,咱们选用经常使用GPT4模型,其温度参数(temperature)设置为0.5,这是聊天机器人的规范介绍参数值。温度参数将控制着LLM预测的随机性。一个较低数值的温度参数将发生更确定和间接的答案,从而发生更可预测的文本。相对来说,一个较高数值的温度参数将发生更具发明性的输入——虽然这个参数值太高时,模型很容易发生幻觉并发生不连接的文本。最后,只有经常使用全局变量和OpenAI的API键设置API键,这一步就很容易了。接上去,是时刻运转完整的流程并在Playground交互环境上审核一下运转结果了。
图7:Playground交互环境显示RAG聊天机器人的运转结果
图7中的对话分明地标明,聊天机器人能够正确地失掉高低文,并正确地回答了无关乘客的详细疑问。虽然发现泰坦尼克号上没有罗斯或杰克或许会令人绝望,但可怜的是,这是真的。如今,RAG聊天机器人曾经创立完结;咱们还可以继续增强其性能以提高会话性能并笼罩一些或许的“曲解”,然而本文重要展现Langflow框架如何轻松地顺应和定制LLM。
小结
最后,咱们来引见一下流部署的疑问。,存在多种可以供参考的部署打算。HuggingFace Spaces是一种部署RAG聊天机器人的简双方法,它具有可裁减的配件基础设备和本地Langflow,不须要任何装置。当然,Langflow也可以经过Kubernetes集群、Docker容器装置和经常使用,也可以经过VM和Google Cloud Shell间接在GCP中装置和经常使用。无关部署的更多信息,请参阅此框架无关文档()。
总之,新时代行未来到,低代码处置打算开局为人工智能在不久的未来在事实环球中的开展定下基调。本文引见了Langflow如何经过直观的UI和模板集中多种集成来彻底扭转人工智能。如今,任何具有人工智能基础常识的人都可以构建一个复杂的运行程序——这种程序的开发在本世纪初的话须要少量的编码和深度学习框架专业常识。
译者引见
朱先忠,社区编辑,专家博客、讲师,潍坊一所高校计算机老师,自在编程界老兵一枚。
原文题目: Creating a RAG Chatbot with Langflow and Astra DB ,作者:Bruno Caraffa