Python:基于LangChain的AI Agent(智能代理)应用开发实践
文章目录
- 前言
- 一、基本概念
- 二、安装依赖
-
- 1、安装LangChain包
- 2、安装大模型依赖
- 3、安装内置工具依赖
- 三、创建工具集
-
- 1、工具函数参数对象
-
- 1.1、单个参数的类型
- 1.2、多个参数的类型
- 2、模拟天气查询工具
- 3、检查报告读取工具
- 4、模拟数据查询工具
- 四、创建代理(Agent)
-
- 1、创建大模型连接
- 2、创建工具集
- 3、创建提示词模板
- 4、初始化代理
- 5、执行测试代理
- 写在最后
前言
代理 (Agents
) 是使用大语言模型(LLM
)最强大和最有趣的方法之一。LLM
的兴起使得代理 (Agents
) 在基于人工智能的应用中变得非常普遍。
使用代理 (Agents
) 可以让 LLM
访问工具。这些工具提供了无限的可能性。有了工具,LLM
可以搜索网络、进行数学计算、运行代码等等。
LangChain
库提供了大量预置的工具。然而,在许多真实项目中,我们通常会发现现有工具只能满足有限的需求。这意味着我们必须修改现有工具或完全构建新的工具。
一、基本概念
在 LangChain
中,Agent
的定义可以概括为:一个由大语言模型(LLM
)驱动的自主决策系统,它通过循环的“思考-行动-观察”过程,动态地选择和使用外部工具来逐步解决用户提出的复杂问题。其核心价值在于突破了单一模型能力的限制,将 LLM
的推理能力与外部工具的强大功能(搜索、计算、代码执行等)结合起来,从而能够处理那些模型自身知识之外或需要实时数据的任务。其工作流程如下图:
可见,AI Agent
就是一个小程序,负责在用户、大语言模型和工具之间进行传话,对于用户可见的,仅仅是发起了一个问题或者任务和接收到了最终的响应结果,中间的执行过程全由大语言模型自主规划(如:调用哪些工具函数,函数的返回异常重试等)。
在AI Agent
的应用中主要有以下参与对象:
- 用户 (
User
): 交互的发起者。 - 代理(
Agent
): 系统的核心协调者。 - 大语言模型 (
LLM
): 提供认知和生成能力。 - 工具 (
Tool
): 执行具体功能。 - 记忆库 (
Data Store
): 存储和提供对话历史上下文。
本文中我们先假定“记忆库”的存在或者不存在,主要通过Agent
、大语言模型和工具来体验一下Agent
应用的工作。
二、安装依赖
1、安装LangChain包
LangChain
包的安装在文章《Python:基于LangChain的RAG(检索增强生成)应用开发实践》一文中有较详细的说明。总之运行以下脚本即可:
pip install --upgrade langchain langchain-community
2、安装大模型依赖
文中使用的大语言模型-智谱AI,需要安装如下依赖:
pip install --upgrade httpx httpx-sse PyJWT
3、安装内置工具依赖
在初始化工具集时我们默认加入了llm-math
工具,需要安装以下依赖程序包:
pip install --upgrade numexpr
三、创建工具集
为了测试,这里定义模拟天气查询、检查报告读取和模拟数据查询三个工具函数,分别通过不同的提问请求来测试大模型对代理工具函数的调用。
1、工具函数参数对象
使用pydantic
来固定参数类型:
- 添加引入:
from pydantic import BaseModel, Field
1.1、单个参数的类型
class QueryInput(BaseModel):query: str = Field(default="", description="查询关键词")
1.2、多个参数的类型
class