搜索
首页科技周边人工智能代理抹布系统如何改变技术?

介绍

人工智能进入了一个新时代。模型将基于预定义的规则输出信息的日子已经一去不复返了。当今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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用Huggingface Smollm建立个人AI助手如何使用Huggingface Smollm建立个人AI助手Apr 18, 2025 am 11:52 AM

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

通过斯坦福大学激动人心的新计划,精神健康的AI专心分析通过斯坦福大学激动人心的新计划,精神健康的AI专心分析Apr 18, 2025 am 11:49 AM

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

2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争Apr 18, 2025 am 11:44 AM

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

Python内置数据结构的综合指南 - 分析VidhyaPython内置数据结构的综合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

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

与替代方案相比,Openai新型号的第一印象与替代方案相比,Openai新型号的第一印象Apr 18, 2025 am 11:41 AM

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

AI投资组合|如何为AI职业建立投资组合?AI投资组合|如何为AI职业建立投资组合?Apr 18, 2025 am 11:40 AM

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

代理AI对安全操作可能意味着什么代理AI对安全操作可能意味着什么Apr 18, 2025 am 11:36 AM

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

Google与Openai:AI为学生打架Google与Openai:AI为学生打架Apr 18, 2025 am 11:31 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

mPDF

mPDF

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

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具