______________________________________________________________________
标题:变压器库知识图 表情符号🔍 颜色来源:蓝色 颜色To:紫色 sdk:docker 应用端口:7860 固定:false
知识图谱MCP资源管理器
这是一个基于Gradio的交互式工具,用于探索代码库知识图。它提供了一个使用模型上下文协议(MCP)搜索、导航和分析代码关系的web界面。
特性
- 搜索节点:使用语义搜索搜索代码实体、函数、类等
- 图形导航:探索代码元素之间的关系
- 实体跟踪:查看代码块中声明和调用的实体
- 向导:查找知识图中不同节点之间的路径
- 子图提取:提取并可视化特定节点周围的子图
- 文件结构:查看存储库的层次结构
用法
该应用程序从HuggingFace Transformers存储库加载预构建的知识图。你可以:
- 搜索:使用搜索选项卡查找相关的代码段和实体
- 探索:使用节点ID在图形中导航
- 分析:获取有关代码结构和关系的统计信息
技术细节
- 使用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数据集(推荐)
- 首先,将你的知识图推送到HuggingFace数据集
- 更新Dockerfile CMD以使用
--hf-dataset - 推送到Space存储库(不需要大文件)
选项2:使用本地JSON文件
- 使用Docker SDK在HuggingFace上创建新空间
- 在Space存储库中启用Git LFS
- 将此目录推送到Space存储库:
git lfs install
git lfs track "data/*.json"
git add .
git commit -m "Initial commit"
git push👥 团队
团队名称: CEPIA Ionis团队
团队成员:
