跳转到内容

CSV RAG 搜索

该工具用于在 CSV 文件内容中执行 RAG(检索增强生成)搜索。它允许用户针对指定 CSV 文件的内容进行语义查询。
在需要从大型 CSV 数据集中提取信息,而传统搜索方法可能效率较低时,这一功能尤其有用。所有名称中包含 “Search” 的工具(包括 CSVSearchTool
都属于 RAG 工具,旨在搜索不同来源的数据。

安装 crewai_tools 包:

Terminal window
pip install 'crewai[tools]'
from crewai_tools import CSVSearchTool
# 使用特定 CSV 文件初始化工具。
# 这样智能体只能搜索给定的 CSV 文件。
tool = CSVSearchTool(csv='path/to/your/csvfile.csv')
# 或者
# 不指定特定 CSV 文件初始化工具。
# 智能体需要在运行时提供 CSV 路径。
tool = CSVSearchTool()

下面这些参数可用于自定义 CSVSearchTool 的行为:

参数类型描述
csvstring可选。你要搜索的 CSV 文件路径。如果工具在初始化时未指定具体 CSV 文件,则该参数为必需;否则为可选。

默认情况下,该工具使用 OpenAI 进行嵌入和摘要。你可以按如下方式使用配置字典来定制模型:

from chromadb.config import Settings
tool = CSVSearchTool(
config={
"embedding_model": {
"provider": "openai",
"config": {
"model": "text-embedding-3-small",
# "api_key": "sk-...",
},
},
"vectordb": {
"provider": "chromadb", # 或 "qdrant"
"config": {
# "settings": Settings(persist_directory="/content/chroma", allow_reset=True, is_persistent=True),
# from qdrant_client.models import VectorParams, Distance
# "vectors_config": VectorParams(size=384, distance=Distance.COSINE),
}
},
}
)

传入该工具的文件路径会根据当前工作目录进行验证。解析后位于工作目录之外的路径会被拒绝并抛出 ValueError

如果你希望允许工作目录之外的路径(例如在测试或受信任的流水线中),请设置环境变量:

Terminal window
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true

URL 输入会经过验证:file:// URI 以及指向私有或保留 IP 范围的请求会被阻止,以防止服务器端请求伪造(SSRF)攻击。