连接图数据库与大语言模型的桥梁
HugeGraph-LLM是一个综合工具包,结合了图数据库与大语言模型的能力。它实现了HugeGraph与LLMs的无缝集成,用于构建智能应用。
详细源代码文档请访问我们的DeepWiki页面。(推荐)
[!IMPORTANT]
- Python: 3.10+(未在3.12上测试)
- HugeGraph Server: 1.3+(推荐:1.5+)
- UV包管理器: 0.7+
ruff format .ruff check .pre-commit install(在根目录执行)pre-commit run --all-files选择您偏好的部署方式:
同时启动HugeGraph Server和RAG服务的最快方式:
bash# 1. 设置环境 cp docker/env.template docker/.env # 编辑docker/.env并将PROJECT_PATH设置为实际项目路径 # 所有可用配置选项参见"config.md" # 如果hugegraph-llm下没有.env配置文件,执行以下命令 cd hugegraph-llm && touch .env && cd .. # 2. 部署服务 cd docker docker-compose -f docker-compose-network.yml up -d # 3. 验证部署 docker-compose -f docker-compose-network.yml ps # 4. 访问服务 # HugeGraph Server: http://localhost:8080 # RAG Service: http://localhost:8001
对各个组件有更多控制需求时使用:
可用镜像
hugegraph/rag - 开发镜像,可访问源代码hugegraph/rag-bin - 生产优化的二进制镜像(使用Nuitka编译)bash# 1. 创建网络 docker network create -d bridge hugegraph-net # 2. 启动HugeGraph Server docker run -itd --name=server -p 8080:8080 --network hugegraph-net hugegraph/hugegraph # 3. 启动RAG服务 docker pull hugegraph/rag:latest docker run -itd --name rag \ -v /path/to/your/hugegraph-llm/.env:/home/work/hugegraph-llm/.env \ -p 8001:8001 --network hugegraph-net hugegraph/rag # 4. 监控日志 docker logs -f rag
用于开发和自定义:
bash# 1. 启动HugeGraph Server docker run -itd --name=server -p 8080:8080 hugegraph/hugegraph # 2. 安装UV包管理器(如未安装) curl -LsSf https://astral.sh/uv/install.sh | sh # 3. 克隆并设置项目 git clone https://github.com/apache/incubator-hugegraph-ai.git cd incubator-hugegraph-ai # 配置环境(详细选项参见config.md),如不存在.env文件将自动创建 # 4. 安装依赖并激活环境 # 注意:如果下载缓慢,取消注释../pyproject.toml中的镜像行或使用:uv config --global index.url https://pypi.tuna.tsinghua.edu.cn/simple # 或创建本地uv.toml设置镜像以避免git diff(参见根目录uv.toml示例) uv sync --extra llm # 自动创建.venv并安装依赖 source .venv/bin/activate # 激活一次 - 以下所有命令均假设在此环境中 # 5. 启动RAG演示 python -m hugegraph_llm.demo.rag_demo.app # 访问地址:http://127.0.0.1:8001 # 6.(可选)自定义主机/端口 python -m hugegraph_llm.demo.rag_demo.app --host 127.0.0.1 --port 18001
额外设置(可选)
[!NOTE] 以下命令假设您已从步骤4激活虚拟环境
bash# 如需使用向量数据库后端(如Milvus、Qdrant),同步可选依赖: uv sync --extra vectordb # 下载NLTK停用词以优化文本处理 python ./src/hugegraph_llm/operators/common_op/nltk_helper.py # 更新配置文件 python -m hugegraph_llm.config.generate --update
[!TIP]
uv sync会自动创建虚拟环境(.venv)并安装所有依赖- 使用
source .venv/bin/activate激活一次 - 后续所有命令均假设在此环境中- 详细使用示例参见https://github.com/apache/incubator-hugegraph-ai/blob/main/hugegraph-llm/quick_start.md
交互式Web界面
使用Gradio界面进行可视化知识图谱构建:
输入选项:
Schema配置:
!知识图谱构建器
运行演示后,配置文件会自动生成:
hugegraph-llm/.envhugegraph-llm/src/hugegraph_llm/resources/demo/config_prompt.yaml系统支持中英文提示词。切换语言方法:
LANGUAGE=en改为LANGUAGE=CN(或反之)支持值:
LANGUAGE=EN - 英文提示词(默认)LANGUAGE=CN - 中文提示词[!NOTE] 使用Web界面时配置更改会自动保存。手动修改后,刷新页面即可加载更新。
LLM提供商支持:本项目使用LiteLLM实现多提供商LLM支持。
如果您之前使用过RAGPipeline或KgBuilder等高级类,项目现在通过Scheduler API提供稳定流程。使用SchedulerSingleton.get_instance().schedule_flow(...)以编程方式调用工作流。以下是符合新架构的简洁工作示例。
pythonfrom hugegraph_llm.flows.scheduler import SchedulerSingleton scheduler = SchedulerSingleton.get_instance() res = scheduler.schedule_flow( "rag_graph_only", query="Tell me about Al Pacino.", graph_only_answer=True, vector_only_answer=False, raw_answer=False, gremlin_tmpl_num=-1, gremlin_prompt=None, ) print(res.get("graph_only_answer"))
pythonfrom hugegraph_llm.flows.scheduler import SchedulerSingleton scheduler = SchedulerSingleton.get_instance() res = scheduler.schedule_flow( "rag_vector_only", query="Summarize the career of Ada Lovelace.", vector_only_answer=True, vector_search=True ) print(res.get("vector_only_answer"))
pythonfrom hugegraph_llm.flows.scheduler import SchedulerSingleton scheduler = SchedulerSingleton.get_instance() response = scheduler.schedule_flow( "text2gremlin", "find people who worked with Alan Turing", 2, # example_num "hugegraph", # schema_input(图名称或schema) None, # gremlin_prompt_input(可选) ["template_gremlin", "raw_gremlin"], ) print(response.get("template_gremlin"))
pythonfrom hugegraph_llm.flows.scheduler import SchedulerSingleton examples = [{"id": "natural language query", "gremlin": "g.V().hasLabel('person').valueMap()"}] res = SchedulerSingleton.get_instance().schedule_flow("build_examples_index", examples) print(res)
变更原因:内部执行引擎已重构为基于管道的调度器(GPipeline + GPipelineManager)。调度器提供稳定入口点,同时保持流程实现的模块化。
如需迁移特定代码片段,请提交PR或issue并包含旧代码,我们可提供针对性转换。
[!IMPORTANT] 对于使用AI编码辅助为hugegraph-llm贡献代码的开发者:
- 入门必读:首先阅读
../rules/README.md了解完整的AI辅助开发工作流- 模块上下文:将此目录中的
AGENTS.md重命名为LLM的上下文文件(如CLAUDE.md、copilot-instructions.md)- 代码分析:遵循
../rules/prompts/project-deep.md中的综合分析方法- 文档:保持
../rules/prompts/project-general.md中的结构化文档标准- 质量标准:确保类型注解、适当测试和一致的模式
- 业务逻辑:专注于图-LLM集成逻辑和RAG管道优化
这些指南确保一致的代码质量和可维护的图-AI集成。
许可证:Apache License 2.0 | 社区:Apache HugeGraph
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务