首页 > 科技周边 > 人工智能 > 用Phidata建造代理抹布

用Phidata建造代理抹布

Christopher Nolan
发布: 2025-03-13 11:54:13
原创
827 人浏览过

当使用大语言模型(LLM)构建应用程序时,响应的质量在很大程度上取决于给定用户任务的有效计划和推理功能。尽管传统的抹布技术很强大,但合并代理工作流程可以显着增强系统处理和响应查询的能力。

在本文中,您将使用Phidata开源代理框架构建一个具有内存组件的代理抹布系统,以演示如何组合向量数据库,即,QDRANT,QDRANT,嵌入模型和智能代理以改进结果。

学习目标

  • 了解并设计架构,以实现代理抹布系统所需的组件。
  • 如何将矢量数据库和嵌入知识基础创建模型集成到代理工作流程中?
  • 学会实现内存组件以改进上下文保留
  • 开发一个可以执行多个工具调用的AI代理,并根据用户问题或使用Phidata决定选择哪种工具。
  • 现实世界中的用例构建文档分析助理代理商,该助理代理可以在知识库中与知识库和DuckDuckgo的个人信息进行交互,而在知识库中没有上下文。

本文作为数据科学博客马拉松的一部分发表

目录

  • 什么是特工和抹布?
  • 什么是Phidata?
  • 代理使用Phidata
  • 代理抹布的实时用例
  • 分步代码实现:使用QDrant,OpenAI和Phidata的代理抹布
  • 代理抹布的优势
  • 结论
  • 常见问题

什么是特工和抹布?

在AI背景下的代理是旨在模仿类似人类的思维和计划功能的组件。代理组件包括:

用Phidata建造代理抹布

  • 任务分解为可管理的子任务。
  • 关于要使用哪种工具并采取必要行动的智能决策。
  • 关于解决问题的最佳方法的推理。

抹布(检索式的一代)将知识检索与LLM功能相结合。当我们将代理集成到抹布系统中时,我们会创建一个强大的工作流程,可以:

用Phidata建造代理抹布

  • 明智地分析用户查询。
  • 将用户文档保存在知识库或矢量数据库中。
  • 为给定的用户查询选择适当的知识源或上下文。
  • 计划检索和响应生成过程。
  • 通过内存组件维护上下文。

传统抹布和代理抹布之间的关键区别在于决策层,该层决定如何处理每个查询并与工具进行交互以获取实时信息。

现在我们知道,有一个像Agentic抹布这样的东西,我们如何构建它?让我们分解。

什么是Phidata?

Phidata是一个旨在构建,监视和部署代理工作流程的开源框架。它支持配备有内存,知识,工具和推理功能的多模式AI代理。它的模型 - 敏捷的体系结构可确保与各种大型语言模型(LLM)的兼容性,从而使开发人员能够将任何LLM转换为功能性AI代理。此外,Phidata允许您使用自己的云(BYOC)方法部署代理工作流程,从而提供灵活性和对AI系统的控制。

Phidata的主要特征包括能够建立合作解决复杂问题的代理团队的能力,用户友好的代理UI无缝交互(Phidata Playground)以及对代理检索效果(RAG)(RAG)和结构化输出的内置支持。该框架还强调监视和调试,提供工具以确保强大而可靠的AI应用程序。

代理使用Phidata

探索基于代理的系统在现实世界应用中的变革力,利用Phidata来增强决策和任务自动化。

财务分析代理

通过整合诸如Yfinance之类的工具,Phidata允许创建可以获取实时股票价格,分析财务数据并总结分析师建议的代理商。这些代理商通过提供最新的市场见解来协助投资者和分析师做出明智的决定。

Web搜索代理

Phidata还可以帮助开发能够使用DuckDuckgo,Serpapi或Serper等搜索工具从Web中检索实时信息的代理。这些代理可以通过采购最新数据来回答用户查询,从而使其对于研究和信息收集任务很有价值。

多模式代理

Phidata还支持多模式功能,从而可以创建分析图像,视频和音频的代理。这些多模式代理可以处理诸如图像识别,文本到图像生成,音频转录和视频分析等任务,从而在各个领域提供多功能解决方案。对于文本形象或文本对视频任务,可以集成DALL-E和REPLICATE等工具,而对于图像到文本和视频对文本任务,可以利用多模式的LLM,例如GPT-4,Gemini 2.0,Claude AI等。

代理抹布的实时用例

想象一下,您有针对创业公司的文档,并希望创建一个聊天助手,该聊天助理可以根据该文档回答用户问题。为了使您的聊天机器人更聪明,还需要处理实时数据。通常,回答实时数据查询需要重建知识库或重建模型。

这是代理商发挥作用的地方。通过将知识库与代理相结合,您可以创建一个代理抹布(检索增强的生成)解决方案,不仅可以提高聊天机器人检索准确答案的能力,还可以提高其整体性能。

用Phidata建造代理抹布

我们有三个主要组成部分组成我们的知识基础。首先,我们有数据源,例如文档页面,PDF或我们要使用的任何网站。然后,我们拥有QDRANT,这是我们的矢量数据库 - 就像一个智能存储系统,可以帮助我们快速找到类似的信息。最后,我们拥有嵌入模型,该模型将我们的文本转换为计算机可以更好地理解的格式。这三个组成部分进入了我们的知识库,就像我们系统的大脑一样。

现在,我们从Phidata定义了代理对象。

代理连接到三个组件:

  • 一个帮助它思考和计划的推理模型(例如GPT-4,Gemini 2.0或Claude)。
  • 内存(sqlagentstorage),可帮助它记住以前的对话
  • 可以用来查找信息的工具(例如DuckDuckgo搜索)

注意:这里的知识库和DuckDuckgo都将充当工具,然后基于任务或用户查询,代理将采取行动用于生成响应的工具。默认情况下,嵌入模型也是OpenAI,因此我们将使用OpenAI – GPT-4O作为推理模型。

让我们构建此代码。

分步代码实现:使用QDrant,OpenAI和Phidata的代理抹布

现在是时候建立一个可以在知识库中与知识库和DuckDuckgo的个人信息(网站)进行互动的DocumentAnalyzer助理代理商了。

步骤1:设置依赖项

要构建代理RAG工作流,我们需要安装一些包括:

  • Phidata:定义代理对象和工作流执行。
  • Google生成的AI - 推理模型IE,Gemini 2.0 Flash
  • QDRANT - 将保存知识库的矢量数据库,然后用来检索相关信息
  • DuckDuckgo - 用于提取实时信息的搜索引擎。
 PIP安装Phidata Google-generativeai duckduckgo-search qdrant-client
登录后复制

步骤2:初始配置和设置API键

在此步骤中,我们将设置环境变量并收集所需的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'] =“ ”
登录后复制

步骤3:设置向量数据库 - QDRANT

现在,您必须通过为矢量数据库提供集合名称,URL和API密钥来初始化QDRANT客户端。 QDRANT数据库存储并从网站上索引知识,使代理商可以根据用户查询执行相关信息的检索。此步骤为您的代理设置数据层:

  • 创建群集:https://cloud.qdrant.io/
  • 在创建群集后,为群集命名并复制API密钥。
  • 在Curl命令下,您可以复制端点URL。
 collection_name =“ AgentIc-rag”
qdrant_url =“ ”
qdrant_api_key =“ ”

vector_db = qdrant(
    collection = collection_name,
    url = qdrant_url,
    api_key = qdrant_api_key,
)
登录后复制

步骤4:创建知识库

在这里,您将定义代理商将吸引其知识的来源。在此示例中,我们正在建立一个文档分析仪代理,该代理可以使我们的工作易于回答网站的问题。我们将使用QDrant文​​档网站URL进行索引。

网站知识库对象与QDRANT矢量数据库进行交互,以存储提供的URL的索引知识。然后,它将代理商加载到知识库中以检索。

注意:请记住,我们使用负载函数将数据源索引到知识库。每个集合名称只需运行一次,如果更改集合名称并想要添加新数据,则只有此时间再次运行加载功能。

 url =“ https://qdrant.tech/documentation/overview/”

知识_base = weblotskinkegledebase(
    urls = [url],
    max_links = 10,
    vector_db = vector_db,
)

知识_base.load()#仅在创建集合之后运行一次,请评论此
登录后复制

步骤5:定义您的代理商

该代理为响应生成,信息检索的知识库和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,
)
登录后复制

步骤6:尝试多个查询

最后,代理准备处理用户查询。通过调用print_response()函数,您可以传递用户查询,并且代理通过从知识库中检索相关信息并处理它来做出响应。如果查询不是来自知识库,它将使用搜索工具。让我们观察变化。

查询-1:来自知识库

agent.print_response(
  “文档中提到的索引技术是什么?” 
  流= true
)
登录后复制

用Phidata建造代理抹布

在知识库之外查询2

 agent.print_response(
  “谁是维拉特·科利?” 
  流= true
)
登录后复制

用Phidata建造代理抹布

代理抹布的优势

发现代理抹布的关键优势,智能代理和关系图结合在一起以优化数据检索和决策。

  • 增强的推理能力可获得更好的响应产生。
  • 智能工具选择基于查询上下文,例如知识库和DuckDuckgo或任何其他工具,我们可以从中获取可以提供给代理的上下文。
  • 可改善上下文意识的内存集成,可以记住并提取历史对话消息。
  • 更好的计划和任务分解,代理工作流的主要部分是完成任务并将其分解为子任务,然后做出更好的决策和行动计划。
  • 与PDF,网站,CSV,文档等各种数据源的灵活集成。

结论

使用内存组件实施代理抹布为构建智能知识检索系统和搜索引擎提供了可靠的解决方案。在本文中,我们探讨了什么是代理商和抹布,以及如何结合它们。通过代理抹布的组合,由于代理的决策能力,查询路由会提高。

关键要点

  • 通过集成记忆,知识库和动态查询处理,发现使用Phidata的代理抹布如何增强AI。
  • 学会用Phidata实施代理抹布,以产生有效的信息检索和适应性响应。
  • Phidata数据库提供了一个简化的实现过程,其中只有30行核心代码以及多模式(例如Gemini 2.0闪存)。
  • 内存组件对于维持上下文和提高响应相关性至关重要。
  • 多个工具的集成(知识库,Web搜索)可以使灵活的信息检索 - 矢量数据库(例如QDRANT)提供高级索引功能,以进行有效搜索。

常见问题

Q1。 Phidata可以处理多模式任务,为此目的集成了哪些工具?

答:是的,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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板