跳转到内容

JSON RAG 搜索

JSONSearchTool 旨在帮助在 JSON 文件内容中进行高效而精确的搜索。它采用 RAG(检索与生成)搜索机制,允许用户指定 JSON 路径,以便在特定 JSON 文件中进行定向搜索。此能力显著提升了搜索结果的准确性和相关性。

使用以下 pip 命令安装 JSONSearchTool

Terminal window
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

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

Terminal window
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true

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