Source code for langchain_experimental.agents.agent_toolkits.csv.base

from __future__ import annotations

from io import IOBase
from typing import TYPE_CHECKING, Any, List, Optional, Union

from langchain_experimental.agents.agent_toolkits.pandas.base import (
    create_pandas_dataframe_agent,
)

if TYPE_CHECKING:
    from langchain.agents.agent import AgentExecutor
    from langchain_core.language_models import LanguageModelLike


[docs]def create_csv_agent( llm: LanguageModelLike, path: Union[str, IOBase, List[Union[str, IOBase]]], pandas_kwargs: Optional[dict] = None, **kwargs: Any, ) -> AgentExecutor: """创建pandas dataframe代理,通过加载csv到数据框中。 参数: llm: 用于代理的语言模型。 path: 字符串路径、类文件对象或字符串路径/类文件对象列表,可以通过pd.read_csv()读取为pandas DataFrames。 pandas_kwargs: 传递给pd.read_csv()的命名参数。 **kwargs: 传递给langchain_experimental.agents.agent_toolkits.pandas.base.create_pandas_dataframe_agent()的额外kwargs。 返回: 具有指定agent_type代理和访问已加载的DataFrame(s)以及任何用户提供的extra_tools的AgentExecutor。 示例: .. code-block:: python from langchain_openai import ChatOpenAI from langchain_experimental.agents import create_csv_agent llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0) agent_executor = create_pandas_dataframe_agent( llm, "titanic.csv", agent_type="openai-tools", verbose=True ) """ # noqa: E501 try: import pandas as pd except ImportError: raise ImportError( "pandas package not found, please install with `pip install pandas`." ) _kwargs = pandas_kwargs or {} if isinstance(path, (str, IOBase)): df = pd.read_csv(path, **_kwargs) elif isinstance(path, list): df = [] for item in path: if not isinstance(item, (str, IOBase)): raise ValueError(f"Expected str or file-like object, got {type(path)}") df.append(pd.read_csv(item, **_kwargs)) else: raise ValueError(f"Expected str, list, or file-like object, got {type(path)}") return create_pandas_dataframe_agent(llm, df, **kwargs)