蚂蚁 KAG 开源 AI 知识库框架原理与安装使用教程
蚂蚁集团推出的 KAG(Knowledge Augmented Generation)是一个结合知识图谱和向量检索的推理问答框架。相比传统 RAG,KAG 在复杂逻辑推理和多跳问答上表现更优,适用于金融、医疗等专业领域。本文介绍了 KAG 的核心架构、与 RAG 的区别,并提供了基于 Docker 在 Windows 环境下的详细安装配置及知识库构建流程。

蚂蚁集团推出的 KAG(Knowledge Augmented Generation)是一个结合知识图谱和向量检索的推理问答框架。相比传统 RAG,KAG 在复杂逻辑推理和多跳问答上表现更优,适用于金融、医疗等专业领域。本文介绍了 KAG 的核心架构、与 RAG 的区别,并提供了基于 Docker 在 Windows 环境下的详细安装配置及知识库构建流程。

最近发现了一款国产开源 AI 知识库框架:KAG(Knowledge Augmented Generation)知识增强生成。
KAG是蚂蚁集团、浙江大学等多方组织联合推出的一款专业领域知识增强服务框架。专门用于构建垂直领域的知识库,在电子政务等场景达到了较高的准确率,电子医疗问答也有出色表现。
KAG 是一个基于OpenSPG引擎和大型语言模型(LLM)的推理问答框架,旨在通过结合知识图谱和向量检索的优势,提供更加严谨的决策支持和信息检索服务。
KAG 通过四个关键方面来增强 LLM 和知识图谱:
简单来说,KAG 就是通过创新技术,更好的融合了知识图谱和向量检索诞生的一个知识库框架,并可以通过 LLM 逻辑推理结合知识图谱本身的推理去完成信息的检索。当知识图谱无法提供足够的信息时,KAG 会利用向量检索来找到相关的文本片段作为补充。
KAG 框架由知识构建 (kg-builder) 和问题求解 (kg-solver) 两大模块组成。其中 kg-builder 针对 LLM 优化了知识表示方式,支持灵活的知识构建和双向索引;kg-solver 则通过混合推理引擎,集成了检索、图谱推理、语言推理和数值计算等多种求解能力。
| 特性 | RAG | KAG |
|---|---|---|
| 知识表示 | 主要依赖向量相似度进行检索,无法很好地处理需要多跳推理的问题。 | 采用对 LLM 友好的知识表示,兼容无模式和有模式约束的知识,支持图结构知识与文本知识的互索引结构。 |
| 推理能力 | 对知识的逻辑关系不敏感,难以处理需要复杂推理的专业问题。 | 引入了逻辑符号引导的混合推理引擎,能够进行复杂的逻辑推理和多跳事实问答。 |
| 性能 | 在多跳任务和跨段落任务中表现不佳,生成的文本缺乏连贯性和逻辑性。 | 在多跳任务和跨段落任务中表现优异,显著提升了推理准确性和信息覆盖度。 |
| 应用场景 | 适用于一般的文本生成和检索任务,但在专业领域如法律、医学和科学等需要复杂推理的场景中表现不佳。 | 特别适用于需要复杂推理和多跳事实问答的专业领域,如金融、医疗、法律等。 |
官方给出的硬件要求:
虽然要求较高,但在本地 Windows 电脑上(如 16G 内存)也能正常使用。
首先需要安装docker-desktop。不清楚如何安装的朋友可参考官方文档。
KAG。version: "3.7"
services:
server:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-server:latest
container_name: release-openspg-server
ports:
- "8887:8887"
depends_on:
- mysql
- neo4j
- minio
environment:
TZ: Asia/Shanghai
LANG: C.UTF-8
command:
["java", "-Dfile.encoding=UTF-8", "-Xms2048m", "-Xmx8192m", "-jar", "arks-sofaboot-0.0.1-SNAPSHOT-executable.jar", "--server.repository.impl.jdbc.host=mysql", "--server.repository.impl.jdbc.password=openspg", "--builder.model.execute.num=5", "--cloudext.graphstore.url=neo4j://release-openspg-neo4j:7687?user=neo4j&password=neo4j@openspg&database=neo4j", "--cloudext.searchengine.url=neo4j://release-openspg-neo4j:7687?user=neo4j&password=neo4j@openspg&database=neo4j"]
mysql:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-mysql:latest
container_name: release-openspg-mysql
volumes:
- mysql_data:/var/lib/mysql
environment:
TZ: Asia/Shanghai
LANG: C.UTF-8
MYSQL_ROOT_PASSWORD: openspg
MYSQL_DATABASE: openspg
ports:
- "3306:3306"
command:
["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci"]
neo4j:
restart: always
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-neo4j:latest
container_name: release-openspg-neo4j
ports:
- "7474:7474"
- "7687:7687"
environment:
- TZ=Asia/Shanghai
- NEO4J_AUTH=neo4j/neo4j@openspg
- NEO4J_PLUGINS=["apoc"]
- NEO4J_server_memory_heap_initial__size=1G
- NEO4J_server_memory_heap_max__size=4G
- NEO4J_server_memory_pagecache_size=1G
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_dbms_security_procedures_unrestricted=*
- NEO4J_dbms_security_procedures_allowlist=*
volumes:
- neo4j_logs:/logs
- neo4j_data:/data
minio:
image: spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-minio:latest
container_name: release-openspg-minio
command: server --console-address ":9001" /data
restart: always
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio@openspg
TZ: Asia/Shanghai
ports:
- 9000:9000
- 9001:9001
volumes:
- minio_data:/data
volumes:
mysql_data:
neo4j_logs:
neo4j_data:
minio_data:
openspg,默认密码:openspg@kag。图存储配置
提示词中英文配置
向量配置
注:硅基流动平台提供免费的向量模型 API key,访问 https://siliconflow.cn/zh-cn/ 注册获取。
点击添加 maas 模型(兼容 openai 接口)。这里可以使用 gpt-4o 或其他兼容 OpenAI 接口的模型。配置好点击确定保存。
体验下来,蚂蚁的这个 KAG 知识库目前还不是特别完善,很多功能和体验都还不太 OK(比如知识库参数调整不完善,知识库创建之后无法编辑、修改已有的知识),使用过程中发现还有一些 bug 没有处理。不过 GitHub 的提交记录显示开发者们最近也在积极更新代码。
这个创新技术方向是 OK 的,但是就像 RAG 要出好的效果一样,是需要高质量知识库数据,以及模型的加持、参数的调优。KAG 确实不适合简单问答(毕竟太慢),更适合医疗、金融、法律、政务等需要复杂推理的一些场景。
KAG 目前还没有开放 API 出来,后续有 API 之后可以集成到 agent 里面,用一个问题识别来将简单问题和复杂问题区分开来回答,复杂问题走 KAG。本篇主要是想带大家安装体验 KAG 这项最新技术,即便它目前可能无法达到理想状态,但作为一个开源的知识库框架,它展现出了巨大的潜力。相信随着社区的不断完善和技术的迭代升级,KAG 会带来更多可能。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online