目录 RAG 搜索
DirectorySearchTool
Section titled “DirectorySearchTool”DirectorySearchTool 允许在指定目录的内容中进行语义搜索,利用检索增强生成(RAG)方法高效浏览文件。它具有很强的灵活性,既可以在运行时动态指定搜索目录,也可以在初始设置时固定目录。
要使用 DirectorySearchTool,请先安装 crewai_tools 包。在终端中执行以下命令:
pip install 'crewai[tools]'初始化与使用
Section titled “初始化与使用”从 crewai_tools 包中导入 DirectorySearchTool 即可开始使用。你可以不指定目录来初始化工具,这样就能在运行时设置搜索目录;也可以使用预定义目录进行初始化。
from crewai_tools import DirectorySearchTool
# 用于在运行时动态指定目录tool = DirectorySearchTool()
# 用于固定目录搜索tool = DirectorySearchTool(directory='/path/to/directory')directory:指定搜索目录的字符串参数。初始化时可选,但如果一开始没有设置,则在搜索时必须提供。
自定义模型与嵌入
Section titled “自定义模型与嵌入”默认情况下,DirectorySearchTool 使用 OpenAI 进行嵌入和摘要。你可以通过以下方式自定义这些设置,包括更改模型提供方和配置,以便高级用户获得更高的灵活性。
from chromadb.config import Settings
tool = DirectorySearchTool( 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=true