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

如何基于LangChain构建可路由至PandasAI/LLMChain的多能力内部工具?

LangChain工具请求路由方案建议

结论:必须构建Agent做请求路由

只用PandasAI处理所有请求的弊端很明显:PandasAI是为结构化数据分析设计的,处理通用对话类任务(比如生成诗歌)不仅效率低,还容易生成不符合预期的结果。引入Agent可以让大模型通过语义判断,自动把请求分流到对应的处理模块,大幅提升工具的实用性和响应质量。

改造后的代码示例

现有代码(仅用PandasAI)

from langchain.llms import OpenAI
from pandasai import PandasAI

llm = OpenAI(temperature=0)
pandas_ai = PandasAI(llm)

def handle_query(query, sales_df):
    return pandas_ai.run(sales_df, prompt=query)

带Agent路由的改造代码

from langchain.agents import AgentType, initialize_agent, Tool
from langchain.llms import OpenAI
from pandasai import PandasAI

# 初始化核心组件
llm = OpenAI(temperature=0)
pandas_ai = PandasAI(llm)
sales_df = your_sales_dataframe  # 替换为实际的销售数据DataFrame

# 定义各模块处理函数
def process_sales_query(query):
    return pandas_ai.run(sales_df, prompt=query)

def process_general_conversation(query):
    return llm.predict(query)

# 配置工具列表,给Agent明确的功能指引
tools = [
    Tool(
        name="SalesDataAnalyzer",
        func=process_sales_query,
        description="专门处理销售数据相关查询,比如计算YoY增长、月度销售额统计、区域业绩对比等结构化数据分析任务"
    ),
    Tool(
        name="GeneralChat",
        func=process_general_conversation,
        description="处理所有非数据分析类请求,比如生成诗歌、回答常识问题、文案创作、日常聊天等通用对话任务"
    )
]

# 初始化Zero-Shot Agent(无需历史示例,靠工具描述判断)
agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True  # 开启后可以看到Agent的思考过程,方便调试
)

# 统一入口函数
def handle_user_query(query):
    return agent.run(query)

预期运行效果

  • 数据分析请求示例:

    用户输入:"计算2023年Q3和2022年Q3的销售额同比增长率"
    Agent会调用SalesDataAnalyzer工具,通过PandasAI计算并返回结果。

  • 通用对话请求示例:

    用户输入:"写一首关于电商促销季的短诗"
    Agent会调用GeneralChat工具,直接让LLM生成符合要求的诗歌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:37:21