来源:互联网 更新时间:2026-07-22 14:58
掌握智能体开发的关键技术,探索 Langchain 框架下的实用工具集成。
智能体开发,可以说是大模型应用里最值得关注的方向之一。市面上关于智能体的概念五花八门,但核心无非就两个:一个是函数调用,另一个是工具的实现。
说到函数调用,目前主流有两种方式:一种是早期的 function call,另一种是最近大火的 MCP 协议。无论哪种,最终目的都是让大模型能够调用外部工具来实现具体功能。而今天我们重点要聊的,就是基于 Langchain 框架来实现各类工具。
在智能体开发中,工具是一个绕不开的概念。操作数据库需要数据库工具,访问搜索引擎需要搜索工具……可以说,智能体里的所有外部调用,最终都是以工具的形式来体现的。
在实际开发中,工具通常以函数或服务的形式出现。比如定义一个搜索引擎工具,只需要封装一个函数,让大模型自己生成函数所需的参数,然后交给 Python 引擎执行,取回结果即可。
Langchain 内置了大量现成的工具,覆盖了搜索、代码解释器、数据库访问等多种场景,直接拿来用就行。具体支持哪些,可以参考下面的截图。
下面就以基于 pandas 的智能数据分析为例,演示如何实现一个简单的 Excel 数据分析工具。
首先需要安装 Langchain 相关的依赖包:
# 安装包
pip install --upgrade langchain_openai
pip install --upgrade langchain
Langchain 官方封装了一个专门操作 pandas 的函数——create_pandas_dataframe_agent,用它来实例化一个 pandas Agent 即可:
agent = create_pandas_dataframe_agent(self.llm, df_list, allow_dangerous_code=True, verbose=True)
完整代码如下(当然,你也可以直接参考官方文档手动实现):
import os
import logging
import pandas as pd
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain_openai import ChatOpenAI, OpenAI
# 需要换成你自己的参数
openai_api_key = "api_key"
openai_api_base = "openai_url"
model = "model"
# Adjust logging levels for specific libraries to reduce noise
logging.getLogger("openai").setLevel(logging.DEBUG)
logging.getLogger("langchain").setLevel(logging.DEBUG)
logging.getLogger("httpx").setLevel(logging.DEBUG)
logging.getLogger("httpcore").setLevel(logging.DEBUG)
logger = logging.getLogger(__name__)
logging.basicConfig(
level=logging.INFO, # 设置日志级别为DEBUG
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # 定义日志格式
datefmt='%Y-%m-%d %H:%M:%S' # 定义时间格式
)
class LangChainPandas:
def __init__(self, model, temperature=0.8):
os.environ['OPENAI_API_KEY'] = openai_api_key
os.environ['OPENAI_API_BASE'] = openai_api_base
# self.llm = ChatOpenAI(model_name=model, verbose=True, temperature=temperature)
self.llm = OpenAI(model_name=model, openai_api_base=openai_api_base, openai_api_key=openai_api_key, temperature=temperature)
def create_agent(self, path_list):
df_list = [pd.read_excel(path) for path in path_list]
agent = create_pandas_dataframe_agent(self.llm, df_list, allow_dangerous_code=True, verbose=True)
return agent
def chat(self, query, path_list):
agent = self.create_agent(path_list)
result = agent.invoke(query)
return result.get('output', "")
if __name__ == "__main__":
agent = LangChainPandas(model)
# excel文件路径
path_list = ["path1", "path2"]
while True:
query = input("请输入您的问题: ")
result = agent.chat(query, path_list)
print(f"result: {result}")
从代码可以看出,核心逻辑并不复杂:定义好数据源,实例化 agent,然后自然语言提问即可。官方文档中还有更详细的场景示例,感兴趣的话可以深入研究一下。
七麦数据官网网页地址 七麦数据官方入口在线首页
问卷星官方网站入口地址 问卷星网页版在线使用
币安Binance官方中文网站 币安App最新版下载及新手注册指南
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
淘宝直播如何看回放在哪里看?怎么查看淘宝直播回放
摩托车活塞环性能如何
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
豆包AI专业版使用教程【新手必看】
索尼限时赠送PS Plus Premium七日会员,需手
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
迷你网名古风男生霸气(精选100个)
文雅简易网名男生可爱(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
《梦幻西游》特殊鬼怪怎么抓-隐藏变异鬼应对要点
币圈十大实用工具:从实时行情监控到数据分析、资产管理
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
闲鱼严选和验货宝哪个可靠?闲鱼的验货宝怎么样,,
币安杀入美股市场,重头戏bStocks还没来
陈姓和杨姓网名大全男生(精选100个)
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc