You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让LangChain Pandas DataFrame Agent无本地答案时调用谷歌搜索?

实现LangChain Pandas Agent + 谷歌搜索的 fallback 功能

要让Agent优先从Pandas DataFrame取数,找不到答案时自动调用谷歌搜索,你需要把Pandas操作工具和谷歌搜索工具整合进同一个Agent,而不是用单一的create_pandas_dataframe_agent。下面是具体实现步骤:

1. 安装依赖

先确保安装所需的Python包:

pip install langchain langchain-openai pandas langchain-community google-search-results

(注:google-search-results是SerpAPI的客户端,用它调用谷歌搜索更简便,你需要去SerpAPI官网申请免费密钥)

2. 配置API密钥

设置环境变量存储OpenAI和SerpAPI的密钥:

# Linux/macOS
export OPENAI_API_KEY="你的OpenAI密钥"
export SERPAPI_API_KEY="你的SerpAPI密钥"

# Windows(PowerShell)
$env:OPENAI_API_KEY="你的OpenAI密钥"
$env:SERPAPI_API_KEY="你的SerpAPI密钥"

3. 整合工具并创建Agent

直接用通用工具调用Agent框架,把Pandas工具和谷歌搜索工具组合起来:

import pandas as pd
from langchain_openai import OpenAI
from langchain_community.agent_toolkits.pandas.pandas import create_pandas_dataframe_toolkit
from langchain_community.tools.google_search import GoogleSearchRun
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate

# 加载你的CSV数据到DataFrame
df = pd.read_csv("your_dataset.csv")

# 初始化大模型
llm = OpenAI(temperature=1)

# 创建操作DataFrame的工具集合
pandas_toolkit = create_pandas_dataframe_toolkit(llm=llm, df=df)
pandas_tools = pandas_toolkit.tools

# 创建谷歌搜索工具
google_search = GoogleSearchRun()

# 合并两个工具列表
tools = pandas_tools + [google_search]

# 定义系统提示词,引导Agent的执行逻辑
system_prompt = """你是兼具DataFrame数据分析和网络搜索能力的助手。
处理用户问题时,优先使用Pandas工具从给定的DataFrame中查找答案;
如果DataFrame中没有相关信息,再调用谷歌搜索工具获取网络数据。
最终用自然语言整理结果回复用户。"""

# 构建提示模板
prompt = ChatPromptTemplate.from_messages([
    ("system", system_prompt),
    ("user", "{input}"),
    ("agent_scratchpad", "{agent_scratchpad}")
])

# 创建工具调用Agent
agent = create_tool_calling_agent(llm=llm, tools=tools, prompt=prompt)

# 创建Agent执行器
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

4. 测试使用

现在可以用这个执行器处理两种类型的问题:

# 测试从DataFrame取数的问题
result1 = agent_executor.invoke({"input": "数据集中2023年的总销售额是多少?"})
print(result1["output"])

# 测试需要搜索的问题
result2 = agent_executor.invoke({"input": "2024年电商行业的最新监管政策是什么?"})
print(result2["output"])

注意事项

  • 如果不想用SerpAPI,也可以用LangChain的GoogleSearchAPIWrapper,但需要配置谷歌自定义搜索的API密钥和搜索引擎ID,步骤更繁琐。
  • 你的temperature=1设置会让模型输出更随机,如果需要更精准的数据分析结果,可以调低到0.1左右。

内容的提问来源于stack exchange,提问作者zizon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:10:24