当使用大语言模型(LLM)构建应用程序时,响应的质量在很大程度上取决于给定用户任务的有效计划和推理功能。尽管传统的抹布技术很强大,但合并代理工作流程可以显着增强系统处理和响应查询的能力。
在本文中,您将使用Phidata开源代理框架构建一个具有内存组件的代理抹布系统,以演示如何组合向量数据库,即,QDRANT,QDRANT,嵌入模型和智能代理以改进结果。
本文作为数据科学博客马拉松的一部分发表。
在AI背景下的代理是旨在模仿类似人类的思维和计划功能的组件。代理组件包括:
抹布(检索式的一代)将知识检索与LLM功能相结合。当我们将代理集成到抹布系统中时,我们会创建一个强大的工作流程,可以:
传统抹布和代理抹布之间的关键区别在于决策层,该层决定如何处理每个查询并与工具进行交互以获取实时信息。
现在我们知道,有一个像Agentic抹布这样的东西,我们如何构建它?让我们分解。
Phidata是一个旨在构建,监视和部署代理工作流程的开源框架。它支持配备有内存,知识,工具和推理功能的多模式AI代理。它的模型 - 敏捷的体系结构可确保与各种大型语言模型(LLM)的兼容性,从而使开发人员能够将任何LLM转换为功能性AI代理。此外,Phidata允许您使用自己的云(BYOC)方法部署代理工作流程,从而提供灵活性和对AI系统的控制。
Phidata的主要特征包括能够建立合作解决复杂问题的代理团队的能力,用户友好的代理UI无缝交互(Phidata Playground)以及对代理检索效果(RAG)(RAG)和结构化输出的内置支持。该框架还强调监视和调试,提供工具以确保强大而可靠的AI应用程序。
探索基于代理的系统在现实世界应用中的变革力,利用Phidata来增强决策和任务自动化。
通过整合诸如Yfinance之类的工具,Phidata允许创建可以获取实时股票价格,分析财务数据并总结分析师建议的代理商。这些代理商通过提供最新的市场见解来协助投资者和分析师做出明智的决定。
Phidata还可以帮助开发能够使用DuckDuckgo,Serpapi或Serper等搜索工具从Web中检索实时信息的代理。这些代理可以通过采购最新数据来回答用户查询,从而使其对于研究和信息收集任务很有价值。
Phidata还支持多模式功能,从而可以创建分析图像,视频和音频的代理。这些多模式代理可以处理诸如图像识别,文本到图像生成,音频转录和视频分析等任务,从而在各个领域提供多功能解决方案。对于文本形象或文本对视频任务,可以集成DALL-E和REPLICATE等工具,而对于图像到文本和视频对文本任务,可以利用多模式的LLM,例如GPT-4,Gemini 2.0,Claude AI等。
想象一下,您有针对创业公司的文档,并希望创建一个聊天助手,该聊天助理可以根据该文档回答用户问题。为了使您的聊天机器人更聪明,还需要处理实时数据。通常,回答实时数据查询需要重建知识库或重建模型。
这是代理商发挥作用的地方。通过将知识库与代理相结合,您可以创建一个代理抹布(检索增强的生成)解决方案,不仅可以提高聊天机器人检索准确答案的能力,还可以提高其整体性能。
我们有三个主要组成部分组成我们的知识基础。首先,我们有数据源,例如文档页面,PDF或我们要使用的任何网站。然后,我们拥有QDRANT,这是我们的矢量数据库 - 就像一个智能存储系统,可以帮助我们快速找到类似的信息。最后,我们拥有嵌入模型,该模型将我们的文本转换为计算机可以更好地理解的格式。这三个组成部分进入了我们的知识库,就像我们系统的大脑一样。
现在,我们从Phidata定义了代理对象。
代理连接到三个组件:
注意:这里的知识库和DuckDuckgo都将充当工具,然后基于任务或用户查询,代理将采取行动用于生成响应的工具。默认情况下,嵌入模型也是OpenAI,因此我们将使用OpenAI – GPT-4O作为推理模型。
让我们构建此代码。
现在是时候建立一个可以在知识库中与知识库和DuckDuckgo的个人信息(网站)进行互动的DocumentAnalyzer助理代理商了。
要构建代理RAG工作流,我们需要安装一些包括:
PIP安装Phidata Google-generativeai duckduckgo-search qdrant-client
在此步骤中,我们将设置环境变量并收集所需的API凭据以运行此用例。对于OpenAi API密钥,您可以从:https://platform.openai.com/中获得。创建您的帐户并创建一个新密钥。
来自phi.sknowledge.website intiment intoble website noverledgebasebase 从phi.vectordb.qdrant导入qdrant 来自phi.agent进口代理 来自phi.storage.agent.sqlite导入sqlagentstorage 来自phi.model.openai进口Openaichat 来自phi.tools.duckduckgo import duckduckgo 导入操作系统 os.environ ['openai_api_key'] =“ ”
现在,您必须通过为矢量数据库提供集合名称,URL和API密钥来初始化QDRANT客户端。 QDRANT数据库存储并从网站上索引知识,使代理商可以根据用户查询执行相关信息的检索。此步骤为您的代理设置数据层:
collection_name =“ AgentIc-rag” qdrant_url =“ ” qdrant_api_key =“ ” vector_db = qdrant( collection = collection_name, url = qdrant_url, api_key = qdrant_api_key, )
在这里,您将定义代理商将吸引其知识的来源。在此示例中,我们正在建立一个文档分析仪代理,该代理可以使我们的工作易于回答网站的问题。我们将使用QDrant文档网站URL进行索引。
网站知识库对象与QDRANT矢量数据库进行交互,以存储提供的URL的索引知识。然后,它将代理商加载到知识库中以检索。
注意:请记住,我们使用负载函数将数据源索引到知识库。每个集合名称只需运行一次,如果更改集合名称并想要添加新数据,则只有此时间再次运行加载功能。
url =“ https://qdrant.tech/documentation/overview/” 知识_base = weblotskinkegledebase( urls = [url], max_links = 10, vector_db = vector_db, ) 知识_base.load()#仅在创建集合之后运行一次,请评论此
该代理为响应生成,信息检索的知识库和SQLite存储系统配置LLM(GPT-4),以跟踪交互和响应作为内存。它还设置了DuckDuckgo搜索工具,以便在需要时进行其他Web搜索。此设置形成了能够回答查询的核心AI代理。
我们将将show_tool_calls设置为true,以观察后端运行时执行,并跟踪查询是将查询路由到知识库还是DuckDuckgo搜索工具。运行此单元格时,它将创建一个数据库文件,其中通过将存储器存储和设置add_history_to_messages设置为true来保存所有消息。
代理=代理( 型号= OpenAICHAT(), 知识=知识_base, 工具= [duckduckgo()], show_tool_calls = true, markdown = true, 存储= sqlagentStorage(table_name =“ agentic_rag”,db_file =“ agents_rag.db”), add_history_to_messages = true, )
最后,代理准备处理用户查询。通过调用print_response()函数,您可以传递用户查询,并且代理通过从知识库中检索相关信息并处理它来做出响应。如果查询不是来自知识库,它将使用搜索工具。让我们观察变化。
agent.print_response( “文档中提到的索引技术是什么?” 流= true )
agent.print_response( “谁是维拉特·科利?” 流= true )
发现代理抹布的关键优势,智能代理和关系图结合在一起以优化数据检索和决策。
使用内存组件实施代理抹布为构建智能知识检索系统和搜索引擎提供了可靠的解决方案。在本文中,我们探讨了什么是代理商和抹布,以及如何结合它们。通过代理抹布的组合,由于代理的决策能力,查询路由会提高。
答:是的,Phidata旨在支持能够处理涉及图像,视频和音频的任务的多模式AI代理。它集成了诸如dall-e之类的工具,并复制以进行文本形象或文本到视频生成,并利用多模式LLMS(例如GPT-4,Gemini 2.0)和Claude AI进行图像对文本和视频对文本任务。
Q2。哪些工具和框架可用于开发代理抹布系统?A.开发代理检索增强的生成(RAG)系统涉及利用各种工具和框架,以促进自主代理与检索和发电能力的整合。以下是用于此目的的一些工具和框架:Langchain,Llamaindex,Phidata,Crewai和Autogen。
Q3。 Phidata可以与外部工具和知识库集成吗?答:是的,Phidata允许整合各种工具和知识库。例如,它可以与用于实时库存分析的财务数据工具(例如YFINANCE)或DuckDuckgo(例如DuckDuckgo)等财务数据工具连接,以检索最新信息。这种灵活性使创建针对特定用例的专用代理。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是用Phidata建造代理抹布的详细内容。更多信息请关注PHP中文网其他相关文章!