知识图谱探索工具

这是一个基于Gradio的交互式工具,用于探索代码仓库知识图谱,提供搜索、导航和分析代码关系的功能。

  • by lailanelkoussy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lailanelkoussy/mcp-first-birthday

使用说明


标题:变压器库知识图 表情符号🔍 颜色来源:蓝色 颜色To:紫色 sdk:docker 应用端口:7860 固定:false

知识图谱MCP资源管理器

这是一个基于Gradio的交互式工具,用于探索代码库知识图。它提供了一个使用模型上下文协议(MCP)搜索、导航和分析代码关系的web界面。

特性

  • 搜索节点:使用语义搜索搜索代码实体、函数、类等
  • 图形导航:探索代码元素之间的关系
  • 实体跟踪:查看代码块中声明和调用的实体
  • 向导:查找知识图中不同节点之间的路径
  • 子图提取:提取并可视化特定节点周围的子图
  • 文件结构:查看存储库的层次结构

用法

该应用程序从HuggingFace Transformers存储库加载预构建的知识图。你可以:

  1. 搜索:使用搜索选项卡查找相关的代码段和实体
  2. 探索:使用节点ID在图形中导航
  3. 分析:获取有关代码结构和关系的统计信息

技术细节

  • 使用Gradio构建web界面
  • 使用LanceDB进行高效的代码索引和搜索
  • 支持混合搜索(关键字+语义嵌入)
  • 使用Salesforce/SFR-Embedding-Code-400M_R模型预先计算嵌入

数据源

该应用程序支持从以下位置加载知识图:

1.HuggingFace Hub数据集(推荐)

直接从HuggingFace数据集加载:

python gradio_mcp.py --host 0.0.0.0 --port 7860 --hf-dataset "username/dataset-name"

2.本地JSON文件

使用本地JSON文件(例如。, multihop_knowledge_graph_with_embeddings.json):

python gradio_mcp.py --host 0.0.0.0 --port 7860 --graph-file data/multihop_knowledge_graph_with_embeddings.json

创建和发布数据集

您可以将现有的知识图保存到HuggingFace Hub:

from RepoKnowledgeGraphLib import RepoKnowledgeGraph

# Load from local file
kg = RepoKnowledgeGraph.load("path/to/graph.json")

# Push to HuggingFace Hub (without embeddings to reduce size)
kg.to_hf_dataset("username/my-knowledge-graph", save_embeddings=False, private=False)

# Or with embeddings (larger dataset)
kg.to_hf_dataset("username/my-knowledge-graph-with-embeddings", save_embeddings=True)

Docker配置

默认的Dockerfile使用本地JSON文件。要改用HuggingFace数据集,请修改中的CMD行 Dockerfile:

# Using HuggingFace dataset (recommended for smaller Docker image)
CMD ["python", "-u", "gradio_mcp.py", "--host", "0.0.0.0", "--port", "7860", "--hf-dataset", "username/dataset-name"]

# Using local file (requires large data file in image)
CMD ["python", "-u", "gradio_mcp.py", "--host", "0.0.0.0", "--port", "7860", "--graph-file", "/app/data/multihop_knowledge_graph_with_embeddings.json"]

本地开发

要在本地运行:

docker build -t gradio-mcp-space .
docker run -p 7860:7860 gradio-mcp-space

如果没有Docker:

pip install -r requirements.txt
python gradio_mcp.py --host 0.0.0.0 --port 7860 --hf-dataset "username/dataset-name"

部署到HuggingFace空间

选项1:使用HuggingFace数据集(推荐)

  1. 首先,将你的知识图推送到HuggingFace数据集
  2. 更新Dockerfile CMD以使用 --hf-dataset
  3. 推送到Space存储库(不需要大文件)

选项2:使用本地JSON文件

  1. 使用Docker SDK在HuggingFace上创建新空间
  2. 在Space存储库中启用Git LFS
  3. 将此目录推送到Space存储库:
    git lfs install
    git lfs track "data/*.json"
    git add .
    git commit -m "Initial commit"
    git push
    

👥 团队

团队名称: CEPIA Ionis团队

团队成员: