文档搜索工具

Dataiku DSS文档助手是一个基于LangChain的RecursiveUrlLoader的文档搜索工具,用于获取和搜索Dataiku DSS文档内容。

  • by Galina-Blokh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Galina-Blokh/custom-mcp-server-bedrock-langchain-agent

使用说明

Dataiku DSS文档助理

该项目提供了一个自定义的Dataiku DSS文档助手,使用LangChain的RecursiveUrlLoader来获取和搜索文档内容。

快速开始

运行代理(默认情况下为LLM模式):

source mcp_aiagent/bin/activate
python agent_simple_custom.py --iter-mode llm

运行测试比较(余弦、启发式、LLM):

source mcp_aiagent/bin/activate
python test_search.py --max-docs 50 --max-results 3 --force-refresh

包括迭代引导爬行比较:

python test_search.py \
  --queries "create dataset" "containerized execution" \
  --max-docs 50 --max-results 3 \
  --include-iterative --iter-steps 2 --iter-branch 3 --iter-modes llm heuristic cosine \
  --force-refresh

文件

应用

  • agent_simple_custom.py --交互式CLI代理(仅入口点)

测试

  • test_search.py --比较三种搜索工具(余弦、启发式、LLM重新排序)

其他

  • __init__.py -Python包初始化
  • mcp_aiagent/ -具有所有必需依赖关系的虚拟环境

用法

运行代理(交互式)

source mcp_aiagent/bin/activate
# Choose iterative mode at startup: llm (default) | heuristic | cosine
python agent_simple_custom.py --iter-mode llm

行为:

  • 代理使用以下命令对每个查询执行迭代式、相关性引导的扩展 iterative_expand_crawl(steps=2, branch=3, mode="<your-mode>").
  • 它只返回 top_overall 迭代抓取的URL(无回填)。如果找到的值小于5,则返回更少的值并明确指出。
  • 主页和片段URL被过滤。

运行搜索比较测试

此脚本获取一次文档,然后并排运行三个工具并打印顶部结果。您还可以包括跨模式的迭代引导爬行比较。

source mcp_aiagent/bin/activate
python test_search.py \
  --queries "create dataset" "containerized execution" "Jupyter notebooks" "visual recipes vs code recipes" \
  --max-results 5 \
  --max-docs 50 \
  --force-refresh

包括迭代引导爬行(可选):

python test_search.py \
  --queries "create dataset" "containerized execution" \
  --max-results 3 \
  --max-docs 50 \
  --include-iterative \
  --iter-steps 2 \
  --iter-branch 3 \
  --iter-modes cosine heuristic llm \
  --force-refresh

笔记:

  • 主页 https://doc.dataiku.com/dss/latest/ 被工具过滤掉。
  • LLM重新排名需要有效的AWS基岩证书 .env.
  • 获取行为(深度/超时/排除)在中配置 dataiku_tools.py.
  • 测试输出列出了每个方法、查询、URL和归一化相关性得分(0-100)。
  • 片段URL(带 #...)在爬行和排名过程中被忽略。
  • 迭代引导爬行(iterative_expand_crawl)默认为 steps=2, branch=3 并返回 top_overall (最多5个URL)。代理不会回填——如果发现的数量较少,它返回的数量也会较少。
  • 启动时可以选择代理迭代模式 --iter-mode {llm|heuristic|cosine}。默认值为 llm.
  • LLM检查器(search_dataiku_docs_llm)直接从URL/标题/代码段判断相关性(无余弦预选)。分数是基于排名的(100、90、80等)。

特性

  • 自定义文档加载:使用RecursiveUrlLoader获取Dataiku文档
  • 智能高速缓存:缓存文档以提高性能
  • 智能搜索:内置相关性评分搜索功能
  • 网页过滤:可以按特定主题的模式过滤URL
  • 错误处理:优雅地处理超时错误和有问题的URL

需求

  • Python 3.10+
  • 带有所需软件包的虚拟环境(请参见 mcp_aiagent/)
  • Bedrock的AWS证书(in .env 文件)

运作原理

  1. 文档获取:使用RecursiveUrlLoader进行爬网https://doc.dataiku.com/dss/latest/
  2. 内容处理:使用BeautifulSoup从HTML中提取干净的文本
  3. 缓存:将提取的文档存储在内存中以提高性能
  4. 搜索:提供对缓存文档的智能搜索
  5. 回应:根据查询返回相关URL和内容片段

与标准mcp服务器获取工具相比,自定义实现提供了更好的控制、缓存和搜索功能。