Type something to search...
构建高效ai搜索代理:使用pydanticai和langgraph框架的最佳实践与技巧

构建高效ai搜索代理:使用pydanticai和langgraph框架的最佳实践与技巧

图片由作者使用 ChatGpt-4o 创建

一个 AI代理 是一个自主软件程序,旨在感知其环境、做出决策并执行任务,以在没有人类干预的情况下实现特定目标。这些代理可以与用户、其他系统或其周围环境进行互动,根据收集到的信息调整其行为。

Pydantic AI 是一个 Python 框架,简化了利用生成性 AI 开发生产级应用的过程。它与 Pydantic(一个数据验证库)无缝集成,以简化 AI 代理的创建和管理,特别是那些由大型语言模型(LLMs)驱动的代理。

LangGraph 是一个旨在构建具有状态的多参与者应用的库,使用大型语言模型(LLMs)。它使开发者能够创建代理和多代理工作流,提供诸如审核、容错可扩展性、持久化上下文和逐令牌流式传输等功能。LangGraph 特别适合需要全面控制代理工作流的应用。

总之,虽然 Pydantic AI 和 LangGraph 都促进了 AI 代理的开发,但 Pydantic AI 专注于将 Pydantic 集成到生成性 AI 应用中,以简化数据验证,而 LangGraph 提供了一个强大的框架,用于构建复杂的、有状态的代理工作流,利用大型语言模型。

让我们来看看一个使用 Pydantic AI 构建的简单代理,该代理利用了搜索工具(Talivy 工具)。Pydantic AI 的一大亮点是其对异步操作的支持,这显著提高了 AI 代理的效率和响应能力。下面提供了代码片段,我们将逐步讲解。首先,确保所有环境变量存储在当前工作目录中的 .env 文件中。一旦在 .env 文件中设置了变量,就可以使用 load_dotenv 函数从 dotenv 库加载它们。以下是 .env 文件可能的样子:

Image 2

源代码

接下来,我们计划在 Jupyter Notebook 中开发这个。然而,由于事件循环冲突,Jupyter Notebook 不允许直接使用 asyncio.run()。为了解决这个问题,我们使用 nest_asyncio 库。另一个关键步骤是启用对所有代理运行的存储和监控,这被称为 LLM可观察性 的概念。为此,我们使用 logfire。

下一步是定义代理,这很简单。在这里,我们选择 OpenAI 的 GPT-4 模型。deps_type 参数至关重要,因为它指定了用于依赖注入的类型。该参数使我们能够定义代理在其操作过程中可能需要的外部资源或服务的结构,例如数据库连接、API 客户端或配置设置。在这种情况下,我们没有使用它。result_type 设置为 str,表示代理的输出将是一个字符串。此外,system_prompt 作为代理行为的指导。

Image 3

然后,使用 Pydantic AI 提供的 @search_agent.tool 装饰器将 talivy_tool 函数注册为 search_agent 的工具。这个装饰器使得该函数可以在代理的操作过程中被利用。Talivy 搜索是一个在线搜索工具,使用时需要 API 密钥。

最后,代理使用用户提供的提示执行。在这种情况下,提示涉及一个非常近期的话题,LLM 可能尚不知晓,这使我们能够观察代理如何利用搜索工具进行响应。下面的示例说明了代理如何激活该工具、收集相关信息并生成全面的最终响应。

Image 4

Pydantic Logfire — LLM可观察性平台

当上述代理与用户查询一起执行时,Pydantic代理不仅为用户生成响应,还将交互记录到Pydantic Logfire平台上指定的项目中。要利用此功能,我们需要创建一个帐户并设置一个新项目,以便存储和监控代理的日志。下面的截图展示了输出在平台上的显示方式。

Image 5

在线搜索代理 — LangGraph

以下代码片段演示了如何使用 LangGraph 构建相同的在线搜索代理。如所示,该过程涉及更多步骤来完成代理,但它提供了更大的控制和自定义。与前面的示例类似,代理的响应和其他详细信息可以在 LangSmith 平台上记录和监控。

Image 6

在没有明确指令的情况下,模型节点根据用户输入自主决定是否需要工具调用。如果模型节点可以独立处理查询,它将跳过工具调用,直接生成最终响应。

使用 FastAPI 和 Docker 容器创建应用程序

源代码

要运行此应用程序,请克隆 GitHub 存储库,并按照说明将 .env 文件添加到当前工作目录。确保您的系统上已安装 Docker。

  1. 使用以下命令构建 Docker 镜像:

    docker build -t pydantic-ai-app .
    
  2. 使用以下命令运行容器:

    docker run -d -p 80:80 pydantic-ai-app
    
  3. 要验证容器是否正在运行,请使用:

    docker ps
    

应用程序启动后,通过在您的网络浏览器中导航到 http://0.0.0.0/docs 访问它。

代码概述

FastAPI 是一个现代、高性能的 Python 框架,用于构建 API,具有异步编程、自动验证和自动生成文档的特点,使其非常适合生产级应用。要构建一个 FastAPI 应用,首先创建一个新的 Python 文件(backend/main.py)并定义我们的 FastAPI 应用(app.py)。然后,设置像 /search/healthcheck 这样的端点,以暴露您的 LLM 应用功能。以下是当前工作目录的文件结构。

Image 7

后端的核心功能如下:

Image 8

以下是 app.py 的内容

Image 9

FastAPI 提供了一个直观且用户友好的接口,用于与 API 交互,并且内置了由 Swagger UIReDoc 提供支持的自动生成文档。

Image 10

要将此 FastAPI 应用容器化,我们可以利用以下 Dockerfile:

Image 11

要运行 Docker 容器,请按照以下步骤操作:

  1. 使用命令构建 Docker 镜像
    docker build -t pydantic-ai-app .
    
  2. 使用以下命令启动 Docker 容器
    docker run -d -p 80:80 pydantic-ai-app
    
  3. 最后,通过执行
    docker ps
    
    验证容器是否成功运行。

如果设置成功,您将看到容器详细信息列出如下:

Image 12

总之,本文强调了使用 Pydantic AI 和 LangGraph 构建 AI 代理的过程,展示了它们的独特功能和应用。Pydantic AI 通过简化数据验证和集成来简化代理创建,而 LangGraph 提供了构建复杂、有状态工作流的广泛控制。此外,使用 Logfire 和 LangSmith 等工具增强了代理性能的可观察性和监控。通过利用像 FastAPI 和 Docker 这样的框架,这些代理可以高效地部署,确保在生产环境中的可扩展性和稳健性。

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...