介绍
人工智能进入了一个新时代。模型将基于预定义的规则输出信息的日子已经一去不复返了。当今AI中的尖端方法围绕着抹布(检索增强的生成)系统,更具体地说,是使用代理智能检索,分析和验证信息的使用。这是智能数据检索的未来 - 机器学习模型不仅回答问题,而且以前所未有的精度和深度来回答问题。
在此博客中,我们将研究如何使用Crewai和Langchain建立自己的代理驱动的破布系统,这是两种最有力的工具,这些工具彻底改变了我们与AI互动的方式。但是,在我们研究代码之前,让我们熟悉这些改变游戏规则的技术。
学习成果
- 通过实时数据检索来了解抹布的基础及其在提高AI准确性方面的作用。
- 探索了CREWAI的功能及其专业代理如何促进AI系统中有效的任务自动化。
- 了解Langchain如何实现任务链接,从而创建逻辑工作流,从而增强AI驱动的过程。
- 发现了如何使用Llama 3,Groq API,Crewai和Langchain等工具来构建代理抹布系统,以获取可靠且智能的信息检索。
本文作为数据科学博客马拉松的一部分发表。
目录
- 介绍
- 什么是检索的一代?
- 什么是克鲁伊?
- 什么是兰班?
- Crewai Langchain:抹布的梦想团队
- 建立自己的代理抹布系统
- 步骤1:设置环境
- Step2:添加GROQ API密钥
- 步骤3:设置LLM
- 步骤3:从PDF检索数据
- 步骤4:创建通过PDF的抹布工具
- 步骤5:用tavily添加Web搜索
- 步骤6:定义路由器工具
- 步骤7:创建代理商
- 步骤8:定义任务
- 步骤9:建立船员
- 步骤10:运行管道
- 结论
- 常见问题
什么是检索的一代?
抹布代表了现代AI中的一种混合方法。与仅依赖于培训中易于存在的知识的传统模型不同,RAG系统从外部数据源(例如数据库,文档或网络)中汲取实时信息来增强其响应。
简而言之,抹布系统不仅猜测或依赖它“知道”的内容,还可以积极检索相关的,最新的信息,然后基于它产生连贯的响应。这样可以确保AI的答案不仅准确,而且基于真实的,可验证的事实。
为什么抹布很重要?
- 动态信息: RAG允许AI从外部来源获取当前的实时数据,从而使其更加响应和最新。
- 提高的准确性:通过检索和引用外部文档,RAG降低了模型产生幻觉或不准确答案的可能性。
- 增强的理解:相关背景信息的检索提高了AI提供详细,知情回应的能力。
现在,您已经了解了抹布是什么,请想象一下代理 - AI的AI实体处理特定任务,例如检索数据,评估其相关性或验证其准确性。这是Crewai和Langchain发挥作用的地方,使过程变得更加精简和强大。
什么是克鲁伊?
将Crewai视为精心策划代理团队的智能经理。每个代理商都专门从事特定任务,无论是检索信息,对其相关性进行评分还是过滤错误。当这些代理商合作时,魔术就会发生 - 一起工作以处理复杂的查询并提供精确,准确的答案。
Crewai为什么是革命性的?
- 代理情报: Crewai将任务分解为专业的子任务,将每个任务分配给唯一的AI代理。
- 协作AI:这些代理人互动,彼此之间的信息和任务,以确保最终结果是强大而值得信赖的。
- 可定制和可扩展的: Crewai是高度模块化的,使您可以构建可以适应各种任务的系统 - 无论是回答简单的问题还是进行深入研究。
什么是兰班?
尽管Crewai带来了代理商的智能,但Langchain使您能够构建将AI任务融合在一起的工作流程。它确保代理商以正确的顺序执行任务,从而创建无缝,精心策划的AI流程。
为什么Langchain至关重要?
LLM编排:Langchain与各种大型语言模型(LLMS)一起工作,从Openai到拥抱的脸,从而实现了复杂的自然语言处理。
- 数据灵活性:您可以将Langchain连接到从PDF到数据库和Web搜索的不同数据源,以确保AI可以访问最相关的信息。
- 可伸缩性:使用Langchain,您可以构建每个任务导致下一个任务的管道 - 完善的AI操作(如多步骤问题答案或研究)。
Crewai Langchain:抹布的梦想团队
通过将CREWAI基于代理的框架与Langchain的任务编排相结合,您可以创建一个强大的代理抹布系统。在此系统中,每个代理都扮演角色 - 无论是获取相关文档,验证检索到的信息的质量还是为准确性的评分答案。这种分层方法可确保响应不仅准确,而且基于最相关和最新信息。
让我们前进并建立一个由代理动力的抹布系统,该系统使用AI代理的管道回答复杂问题。
建立自己的代理抹布系统
现在,我们将开始在下面逐步构建自己的代理抹布系统:
潜入代码之前,让我们安装必要的库:
! ! !
步骤1:设置环境
我们首先导入必要的库:
来自langchain_openai进口chatopenai 导入操作系统 从crewai_tools导入pdfsearchtool 来自langchain_community.tools.tavily_search导入tavilySearchResults 从Crewai_tools导入工具 来自Crewai进口工作人员 从Crewai进口任务 来自Crewai进口代理
在此步骤中,我们进口:
- Chatopenai:与Llama等大型语言模型进行交互的界面。
- PDFSearchTool:从PDF搜索和检索信息的工具。
- TavilySearchResults:用于检索基于Web的搜索结果。
- 机组人员,任务,代理: Crewai的核心组件,使我们能够协调代理和任务。
Step2:添加GROQ API密钥
要访问GROQ API,通常需要通过生成API密钥来验证。您可以通过登录GROQ控制台来生成此键。这是该过程的一般概述:
- 使用您的凭据登录到GROQ控制台。
- 导航到API键:转到可以管理API键的部分。
- 生成一个新密钥:选择创建或生成新API密钥的选项。
- 保存API密钥:生成后,请确保复制并安全地存储密钥,因为对API请求进行身份验证需要。
此API键将在您的HTTP标头中使用,以进行API请求,以与GROQ系统进行身份验证和交互。
始终请参考官方GroQ文档,以获取与访问API有关的具体详细信息或其他步骤。
导入操作系统 os.environ ['groq_api_key'] ='添加groq api键'
步骤3:设置LLM
llm = chatopenai( openai_api_base =“ https://api.groq.com/openai/v1”, openai_api_key = os.environ ['groq_api_key'], model_name =“ llama3-8b-8192”, 温度= 0.1, max_tokens = 1000, )
在这里,我们定义了系统将使用的语言模型:
- Llama3-8B-8192:具有80亿个参数的大型语言模型,使其足够强大以处理复杂的查询。
- 温度:设置为0.1,以确保模型的输出是高度确定性和精确的。
- 最大令牌:限制为1000个令牌,确保响应保持简洁和相关。
步骤3:从PDF检索数据
为了演示抹布的工作原理,我们下载了PDF并搜索它:
导入请求 pdf_url ='https://proceedings.neurips.cc/paper_files/paper/paper/2017/file/3f5ee243547dee91fbd053c1c4a8445aaaaa paper.pdf' 响应= requests.get(pdf_url) 使用打开('attenstion_is_all_you_need.pdf','wb')作为文件: file.write(响应。
这将下载著名的“注意力是您需要的”纸,并在本地节省。我们将在以下步骤中使用此PDF进行搜索。
步骤4:创建通过PDF的抹布工具
在本节中,我们创建了一个抹布工具,该工具使用语言模型和嵌入者来搜索PDF,以进行语义理解。
- PDF集成: PDFSearchTool加载pdf(activate_is_all_you_need.pdf)进行查询,从而允许系统从文档中提取信息。
- LLM配置:我们使用Llama3-8B(通过GROQ的API)作为语言模型来处理用户查询并根据PDF内容提供详细的答案。
- 嵌入式设置: HuggingFace的Baai/BGE-SMALL-EN-V1.5模型用于嵌入,使该工具能够与PDF最相关的部分匹配查询。
最后,rag_tool.run()函数是通过查询执行的,例如“自我发挥机制在大语言模型中如何发展?”检索信息。
rag_tool = pdfsearchtool(pdf ='/content/attenstion_is_all_you_need.pdf', config = dict( llm = dict( 提供者=“ groq”,#或Google,Openai,人类,Llama2,... config = dict( 型号=“ Llama3-8b-8192”, #温度= 0.5, #top_p = 1, #stream = true, ), ), 嵌入= dict(dict)( 提供者=“ Huggingface”,#或Openai,Ollama,... config = dict( 型号=“ baai/bge-small-en-v1.5”, #task_type =“ retrieval_document”, #title =“嵌入”, ), ), ) ) rag_tool.run(“自我注意机制如何在大语言模型中发展?”)
步骤5:用tavily添加Web搜索
设置您的Tavily API密钥,以启用Web搜索功能:
导入操作系统 #设置Tavily API密钥 os.environ ['tavily_api_key'] =“添加您的Tavily API密钥” web_search_tool = tavilySearchResults(k = 3) web_search_tool.run(“大语言模型中的自我发挥机制是什么?”)
该工具允许我们执行网络搜索,最多检索3个结果。
步骤6:定义路由器工具
@工具 def router_tool(问题): “”“路由器函数”“” 如果有问题的“自我注意”: 返回“矢量店” 别的: 返回'web_search'
路由器工具将查询引导到矢量站(用于高技术问题)或Web搜索。它检查查询的内容并做出适当的决定。
步骤7:创建代理商
我们定义了一系列代理来处理查询避开管道的不同部分:
路由器代理:
将问题路由到正确的检索工具(PDF或Web搜索)。
router_agent = agent( 角色='路由器', 目标='路由用户问题与矢量店或Web搜索', backstory =(( “您是将用户问题路由到矢量店或Web搜索的专家。” “使用矢量店进行有关与检索的一代有关的概念问题。” “您不必对与这些主题有关的问题中的关键字进行严格的态度。否则,请使用Web-Search。” ), 详细= true, laster_delegation = false, llm = llm, )
猎犬代理:
从所选源(PDF或Web搜索)中检索信息。
retiever_agent =代理( 角色=“ retriever”, 目标=“使用从矢量店检索到的信息来回答问题”, backstory =(( “您是提问任务的助手。” “使用检索到上下文中存在的信息回答问题。” “您必须提供一个明确的简洁答案。” ), 详细= true, laster_delegation = false, llm = llm, )
分级代理:
确保检索到的信息相关。
grader_agent =代理( 角色='答案分级器', 目标='过滤出错误的检索', backstory =(( “您是评估检索文档与用户问题的相关性的分级人。” “如果文档包含与用户问题相关的关键字,请将其评为相关。” “这不必是一个严格的测试。您必须确保答案与问题有关。” ), 详细= true, laster_delegation = false, llm = llm, )
幻觉分级机:
过滤幻觉(错误答案)。
幻觉_grader =代理( 角色=“幻觉分级机”, 目标=“过滤幻觉”, backstory =(( “您是一个幻觉分级,评估答案是否基于一组事实来扎根 /支持。” “确保您精心查看答案,并检查提供的响应是否与提出的问题相对立” ), 详细= true, laster_delegation = false, llm = llm, )
答案分手:
评分最终答案并确保其有用。
wonse_grader = agent( 角色=“答案分级器”, 目标=“从答案中滤除幻觉。”,, backstory =(( “您是评估答案是否对解决问题有用的分级人。” “确保您精心查看答案,并检查对提出的问题是否有意义” “如果答案是相关的,则会产生清晰简洁的回应。” “如果答案不相关,请使用'web_search_tool'执行WebSearch ), 详细= true, laster_delegation = false, llm = llm, )
步骤8:定义任务
每个任务都被定义以将特定角色分配给代理:
路由器任务:
确定查询是否应转到PDF搜索或Web搜索。
router_task =任务( description =(“分析问题{问题}中的关键字”” “基于关键字,决定它是否符合矢量店搜索或Web搜索。” “返回一个单词'vectorstore',如果它符合矢量店搜索的条件。” “如果有资格进行Web搜索,请返回单个单词'WebSearch'。” “不要提供任何其他有利的或解释。” ), Expect_output =(“基于问题给出二进制选择'WebSearch'或“向量店”” “不要提供任何其他有利或解释。”),,, agent = router_agent, 工具= [router_tool], )
检索员任务:
检索必要的信息。
retiever_task =任务( description =(“基于路由器任务的响应,借助相应的工具,{Question}提取信息。” “如果路由器任务输出为'WebSearch',请使用Web_serach_tool从Web检索信息。” “如果路由器任务输出为'vectorStore',请使用rag_tool从向量存储中检索信息。” ), Exceels_output =(“您应该分析'Router_task'的输出 “如果响应是'WebSearch',则使用Web_search_tool从网络检索信息。” “如果响应是'vectorstore',则使用rag_tool从矢量店检索信息。” “返回剑术和共识文本作为响应。”),,, 代理= retiever_agent, context = [router_task], #工具= [retiever_tool], )
分级任务:
评分检索的信息。
grader_task =任务( description =(“基于Quetion {Quartion}的回收者任务的响应,评估检索内容是否与问题相关。” ), Exceeld_output =(“二进制分数'是'或'否'分数,以指示文档是否与问题相关” “如果“ retriever_task”的响应与提出的问题保持一致,则必须回答'是'。” “如果'retriever_task'的响应与提出的问题不符,则必须回答'no'。” “除了'是'或'否'之外,不要提供任何序言或解释。”), 代理= grader_agent, context = [retiever_task], )
幻觉任务:
确保答案是基于事实的。
幻觉_task =任务( description =(“基于Quetion {Quartion}的Grader任务的响应,评估答案是否在一组事实中接地 /支持。”),),),,),, Exceels_output =(“二进制分数'是'或'否'分数,以指示答案是否与问的问题同步” “答复'是',如果答案有用并包含有关提出问题的事实。” “答案'no',如果答案没有用,并且不包含有关提出问题的事实。” “除了'是'或'否'之外,不要提供任何序言或解释。”), 代理=幻觉_grader, context = [grader_task], )
答案任务:
提供最终答案或在需要时执行Web搜索。
答案_task =任务( description =(“基于对Quetion {Quartion}的幻觉任务的响应,评估答案是否对解决问题很有用。” “如果答案是'是',请返回一个清晰简洁的答案。” “如果答案是'no',则执行'WebSearch'并返回响应”),), Expect_Output =(“如果'幻觉_task'是'yes'的响应,请返回明确而简洁的响应。” “使用'Web_search_tool'执行Web搜索,并仅在'幻觉_task''is'no'的响应时才返回清晰而简洁的响应。” “否则回应为'对不起!找不到有效的响应'。”),), context = [幻觉_task], agent = wonse_grader, #tools = [wonse_grader_tool], )
步骤9:建立船员
我们将代理和任务分组为一个将管理整个管道的工作人员:
rag_crew = crew( 代理= [router_agent,retriever_agent,grader_agent,幻觉_grader,anding_grader], tasks = [router_task,retriever_task,grader_task,allucination_task,anding_task], 详细= true, )
步骤10:运行管道
最后,我们提出一个问题并启动抹布系统:
输入= {“问题”:“自我发挥的机制如何帮助大型语言模型?”} 结果= rag_crew.kickoff(输入=输入) 打印(结果)
该管道通过代理来处理问题,检索相关信息,过滤幻觉,并提供简洁而相关的答案。
结论
抹布,克鲁伊和兰班的结合是对AI的未来的瞥见。通过利用代理智能和任务链接,我们可以构建更智能,更快,更准确的系统。这些系统不仅会生成信息 - 它们会积极检索,验证和过滤它,以确保响应质量的最高质量。
借助Crewai和Langchain等工具,可以使用智能,由代理驱动的AI系统构建智能的可能性。无论您是从事AI研究,自动化客户支持还是任何其他数据密集型领域,代理抹布系统都是释放新效率和准确性水平的关键。
您可以单击此处访问链接。
关键要点
- RAG系统将自然语言的生成与实时数据检索相结合,确保AI可以从外部来源中获取准确的,最新的信息,以获得更可靠的响应。
- Crewai雇用了一个专业的AI代理团队,每个团队都负责不同的任务,例如数据检索,评估和验证,从而产生了高效,高效的代理系统。
- Langchain可以创建连接各种任务的多步骤工作流程,从而使AI系统可以通过大型语言模型(LLMS)的逻辑测序和编排更有效地处理信息。
- 通过将Crewai的代理框架与Langchain的任务链接相结合,您可以构建智能的AI系统,以实时检索和验证信息,从而显着提高响应的准确性和可靠性。
- 该博客介绍了使用Llama 3,Groq API,Crewai和Langchain等高级工具创建自己的代理抹布系统的过程,这清楚了这些技术如何共同使用以自动化和增强AI-DRIENS解决方案。
常见问题
Q1。 Crewai如何为建筑代理系统做出贡献?A. Crewai精心策划了多个AI代理,每个人都专门从事诸如检索信息,验证相关性和确保准确性之类的任务。
Q2。 Langchain在抹布系统中使用了什么?答:Langchain创建了将AI任务链在一起的工作流程,以确保数据处理和检索的每个步骤以正确的顺序发生。
Q3。代理在抹布系统中的作用是什么?A.代理处理特定任务,例如检索数据,验证其准确性和评分响应,使系统更加可靠和精确。
Q4。为什么我要在抹布系统中使用groq API?答:GROQ API可访问强大的语言模型,例如Llama 3,为复杂的任务提供了高性能的AI。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是代理抹布系统如何改变技术?的详细内容。更多信息请关注PHP中文网其他相关文章!

利用“设备” AI的力量:建立个人聊天机器人CLI 在最近的过去,个人AI助手的概念似乎是科幻小说。 想象一下科技爱好者亚历克斯(Alex)梦见一个聪明的本地AI同伴 - 不依赖

他们的首届AI4MH发射于2025年4月15日举行,著名的精神科医生兼神经科学家汤姆·因斯尔(Tom Insel)博士曾担任开幕式演讲者。 Insel博士因其在心理健康研究和技术方面的杰出工作而闻名

恩格伯特说:“我们要确保WNBA仍然是每个人,球员,粉丝和公司合作伙伴,感到安全,重视和授权的空间。” anno

介绍 Python擅长使用编程语言,尤其是在数据科学和生成AI中。 在处理大型数据集时,有效的数据操作(存储,管理和访问)至关重要。 我们以前涵盖了数字和ST

潜水之前,一个重要的警告:AI性能是非确定性的,并且特定于高度用法。简而言之,您的里程可能会有所不同。不要将此文章(或任何其他)文章作为最后一句话 - 目的是在您自己的情况下测试这些模型

建立杰出的AI/ML投资组合:初学者和专业人士指南 创建引人注目的投资组合对于确保在人工智能(AI)和机器学习(ML)中的角色至关重要。 本指南为建立投资组合提供了建议

结果?倦怠,效率低下以及检测和作用之间的差距扩大。这一切都不应该令任何从事网络安全工作的人感到震惊。 不过,代理AI的承诺已成为一个潜在的转折点。这个新课

直接影响与长期伙伴关系? 两周前,Openai提出了强大的短期优惠,在2025年5月底之前授予美国和加拿大大学生免费访问Chatgpt Plus。此工具包括GPT-4O,A A A A A


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6
视觉化网页开发工具