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

使用LangChain+本地Llama2处理大CSV数据集QA时的问题求助

解决LangChain CSV Agent处理大数据集时的结果不准确问题

问题背景

使用本地Llama2模型结合LangChain的create_csv_agent处理14万行、18列的CSV数据集,遇到两个核心问题:

  • 请求返回10条VAX_TYPE为COVID19的记录时,仅返回5条
  • 查询数据集总行数时得到错误结果5
  • 已尝试create_pandas_dataframe_agent、数据嵌入向量数据库方案,结果仍不准确

核心原因及解决方法

1. 强制加载全量数据(解决抽样问题)

LangChain的CSV Agent默认会对大文件进行抽样(通常仅加载前几行),这是导致结果与“5”相关的直接原因。手动加载完整DataFrame再传入Agent,避免默认抽样:

import pandas as pd
from langchain_experimental.agents.agent_toolkits import create_csv_agent

# 手动加载全量CSV,绕过Agent的默认抽样逻辑
df = pd.read_csv("MLdata.csv")

agent = create_csv_agent(
    local_llm,
    df,  # 传入完整DataFrame而非文件路径
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    handle_parsing_errors=True
)

# 测试查询
print(agent.run("请返回10条VAX_TYPE为COVID19的记录。"))
print(agent.run("请告诉我数据集的总行数。"))

2. 自定义提示词强化全量查询要求

本地Llama2模型可能对默认提示词理解不足,导致生成的查询逻辑仅针对抽样数据。自定义提示词明确要求基于全量数据处理:

from langchain.prompts import PromptTemplate

custom_prompt = PromptTemplate(
    input_variables=["input", "agent_scratchpad"],
    template="""你是处理大型CSV数据集的专家,必须基于完整数据集执行查询,禁止使用抽样数据。
用户问题:{input}
思考步骤:
1. 确认查询需要覆盖的全量数据范围
2. 生成可执行的Python代码完成查询
3. 执行代码并返回准确结果
思考过程:{agent_scratchpad}
"""
)

agent = create_csv_agent(
    local_llm,
    df,
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    handle_parsing_errors=True,
    prompt=custom_prompt
)

3. 优化Agent类型与参数

切换到更适合表格数据的Agent类型,同时调整迭代次数确保复杂查询完成:

from langchain.agents.agent_types import AgentType
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent

agent = create_pandas_dataframe_agent(
    local_llm,
    df,
    verbose=True,
    agent_type=AgentType.OPENAI_FUNCTIONS,  # 支持函数调用的类型更稳定
    handle_parsing_errors=True,
    max_iterations=20  # 增加迭代次数,避免中途终止
)

4. 先验证数据加载正确性

排除CSV文件本身的加载问题(如编码、分隔符错误导致行合并):

# 手动验证数据完整性
print(f"实际总行数:{len(df)}")
print(f"VAX_TYPE为COVID19的实际记录数:{len(df[df['VAX_TYPE'] == 'COVID19'])}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:05:05