JSON RAG 搜索
JSONSearchTool
Section titled “JSONSearchTool”JSONSearchTool 旨在帮助在 JSON 文件内容中进行高效而精确的搜索。它采用 RAG(检索与生成)搜索机制,允许用户指定 JSON 路径,以便在特定 JSON 文件中进行定向搜索。此能力显著提升了搜索结果的准确性和相关性。
使用以下 pip 命令安装 JSONSearchTool:
pip install 'crewai[tools]'下面是一些更新后的示例,展示如何有效地利用 JSONSearchTool 在 JSON 文件中进行搜索。这些示例考虑了代码库中识别出的当前实现和使用模式。
from crewai_tools import JSONSearchTool
# 通用 JSON 内容搜索# 适用于 JSON 路径事先已知或可以在运行时动态识别的场景。tool = JSONSearchTool()
# 将搜索范围限制到特定 JSON 文件# 当你希望把搜索范围限制在某个具体 JSON 文件时,使用此初始化方式。tool = JSONSearchTool(json_path='./path/to/your/file.json')json_path(str, optional):指定要搜索的 JSON 文件路径。如果工具用于通用搜索,则不需要该参数;传入后,它会将搜索限制在指定的 JSON 文件中。
JSONSearchTool 通过配置字典支持广泛的自定义。这使用户可以根据自身需求选择不同的嵌入和摘要模型。
tool = JSONSearchTool( config={ "llm": { "provider": "ollama", # 其他选项包括 google、openai、anthropic、llama2 等 "config": { "model": "llama2", # 这里可以指定其他可选配置。 # temperature=0.5, # top_p=1, # stream=true, }, }, "embedding_model": { "provider": "google-generativeai", # 或 openai、ollama 等 "config": { "model_name": "gemini-embedding-001", "task_type": "RETRIEVAL_DOCUMENT", # 这里可以添加进一步的自定义选项。 }, }, })传入该工具的文件路径会根据当前工作目录进行验证。解析后位于工作目录之外的路径会被拒绝并抛出 ValueError。
如果你希望允许工作目录之外的路径(例如在测试或受信任的流水线中),请设置环境变量:
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=trueURL 验证
Section titled “URL 验证”URL 输入会经过验证:file:// URI 以及指向私有或保留 IP 范围的请求会被阻止,以防止服务器端请求伪造(SSRF)攻击。