CSV RAG 搜索
CSVSearchTool
Section titled “CSVSearchTool”该工具用于在 CSV 文件内容中执行 RAG(检索增强生成)搜索。它允许用户针对指定 CSV 文件的内容进行语义查询。
在需要从大型 CSV 数据集中提取信息,而传统搜索方法可能效率较低时,这一功能尤其有用。所有名称中包含 “Search” 的工具(包括 CSVSearchTool)
都属于 RAG 工具,旨在搜索不同来源的数据。
安装 crewai_tools 包:
pip install 'crewai[tools]'from crewai_tools import CSVSearchTool
# 使用特定 CSV 文件初始化工具。# 这样智能体只能搜索给定的 CSV 文件。tool = CSVSearchTool(csv='path/to/your/csvfile.csv')
# 或者
# 不指定特定 CSV 文件初始化工具。# 智能体需要在运行时提供 CSV 路径。tool = CSVSearchTool()下面这些参数可用于自定义 CSVSearchTool 的行为:
| 参数 | 类型 | 描述 |
|---|---|---|
| csv | string | 可选。你要搜索的 CSV 文件路径。如果工具在初始化时未指定具体 CSV 文件,则该参数为必需;否则为可选。 |
自定义模型与嵌入
Section titled “自定义模型与嵌入”默认情况下,该工具使用 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。
如果你希望允许工作目录之外的路径(例如在测试或受信任的流水线中),请设置环境变量:
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=trueURL 验证
Section titled “URL 验证”URL 输入会经过验证:file:// URI 以及指向私有或保留 IP 范围的请求会被阻止,以防止服务器端请求伪造(SSRF)攻击。