W
AI-Wiki
SOURCE

Yuxi-Know:一站式智能知识库与知识图谱问答系统开发平台 - 今日头条 摘要

文档概览

  • 文章先交代背景:随着大模型应用扩展,RAG与知识图谱融合问答 被视为解决精准问答与知识管理的核心方案,而传统知识库系统常见问题包括格式兼容有限、模型适配单一、知识关联薄弱。
  • 随后给出产品定位:Yuxi-Know 被描述为一款基于大模型的开源智能知识库与知识图谱问答系统,强调“一站式”“易部署”“支持二次开发”。
  • 中段进入实际使用,重点讲 Docker Compose 部署、环境依赖、API_KEY 配置、启动命令、访问地址与首次初始化。
  • 然后分别介绍三条主要使用路径:智能对话、知识库管理、知识图谱管理。
  • 结尾总结其适用场景,包括企业内部知识库、教育辅导、科研资料整理与开发者二次开发。

关键事实

整体定位

  • Yuxi-Know 被原文定位为一款开源的智能知识库与知识图谱问答系统。
  • 它的核心用途是构建智能问答系统和知识管理平台。
  • 文章反复强调其是一站式平台,不只是单纯文档问答,而是把知识库、知识图谱、智能体对话、模型适配与权限管理整合在同一系统里。
  • 项目托管在 GitHub,仓库地址为 https://github.com/xerrors/Yuxi-Know
  • 开源协议为 MIT。

技术栈与系统组成

  • 原文明确列出其技术架构为:LangGraph + Vue.js + FastAPI + LightRAG。
  • 图数据库使用 Neo4j,承担知识图谱导入、可视化与图查询功能。
  • 向量数据库使用 Milvus,承担文档分块后的索引与检索。
  • 部署方式基于 Docker Compose 进行容器编排。
  • 从系统组成上看,它至少覆盖前端界面、后端 API、向量检索、图数据库、模型接入与工具调用几个部分。

模型与能力范围

  • 多模型支持被视为其主要卖点之一。
  • 原文点名支持的云端模型平台包括:OpenAI、智谱清言、阿里 DashScope、豆包方舟。
  • 同时支持本地部署模型,举例为 vllm、ollama。
  • 切换模型的基本方式是配置对应 API_KEY。
  • 默认依赖的服务商是 SiliconFlow,因此初始化时必填的是 SILICONFLOW_API_KEY
  • 若要启用联网搜索,原文给出可选配置项 TAVILY_API_KEY

知识库与知识图谱两条能力线

  • 知识库线路:上传 PDF、TXT、Markdown、Docx 等文档,或者通过 URL 抓取网页内容;系统会自动分块、建立索引,并存入 Milvus。
  • 知识图谱线路:准备 jsonl 格式的三元组数据,每行一条,字段为 htr;导入后写入 Neo4j,并支持图谱可视化和图查询。
  • 文档检索和图谱查询都可以在对话时作为工具能力接入大模型。
  • 因此它不是单一的向量检索系统,而是把文档型知识与结构化关系型知识同时纳入问答流程。

权限与扩展能力

  • 文章提到系统具备三级角色权限:超级管理员、管理员、普通用户。
  • 同时带有内容审查机制,用于保障服务合规性。
  • 还支持智能体扩展,开发者可以编写自定义智能体代码来满足个性化需求。

使用与部署流程

运行前提

  • 需要预先安装 Docker。
  • 需要安装 nvidia-container-toolkit
  • 即使没有 GPU,也可以运行核心服务;限制主要在本地模型使用。
  • 支持 Linux、macOS 和 Windows。
  • Windows 环境下原文特别说明需使用 PowerShell。
  • 建议使用 Python 3.12 及以上版本,以保证兼容性。

拉取代码

  • 原文推荐直接拉取稳定版本分支 v0.4.3,以保证运行稳定性。
  • 使用的命令为:
  • git clone --branch v0.4.3 --depth 1 https://github.com/xerrors/Yuxi-Know.git
  • cd Yuxi-Know

初始化脚本与 .env 生成

  • 原文推荐先运行初始化脚本,而不是手动一步步配置。
  • Linux/macOS 使用:./scripts/init.sh
  • Windows PowerShell 使用:.\scripts\init.ps1
  • 脚本会自动检查并创建 .env 文件。
  • 脚本会提示输入必需的 SILICONFLOW_API_KEY
  • 脚本也会提示可选输入 TAVILY_API_KEY,用于联网搜索。
  • 脚本还会自动拉取所有必需的 Docker 镜像,因此不需要手动逐个拉取。

手动环境变量配置

  • 如果不走脚本,也可以手动复制模板:cp .env.template .env
  • 然后编辑 .env,原文示例给出如下关键参数:
  • MODEL_DIR=./models
  • SAVE_DIR=./saves
  • SILICONFLOW_API_KEY=...,该项在原文中被标注为必需。
  • TAVILY_API_KEY=...,用于搜索服务,为可选项。
  • 可选模型 API_KEY 包括:OPENAI_API_KEYZHIPUAI_API_KEYDEEPSEEK_API_KEYARK_API_KEYDASHSCOPE_API_KEY
  • Neo4j 默认使用容器内置服务,示例中 NEO4J_URINEO4J_USERNAMENEO4J_PASSWORD 都被标注为默认无需修改。
  • 超级管理员也可以通过环境变量预设:YUXI_SUPER_ADMIN_NAMEYUXI_SUPER_ADMIN_PASSWORD,但原文说明这两项是可选的,启动后系统也会提示设置。

启动服务

  • 统一启动命令为:docker compose up --build -d
  • 原文建议加 -d 让服务在后台运行。
  • 启动后后端不会立刻可用,初始化需要 2-3 分钟。
  • 这 2-3 分钟内需要耐心等待,不要强制终止进程。

故障处理

  • 文中特别给出一个常见故障:Milvus 向量数据库可能启动失败。
  • 处理方式不是整套环境全部重建,而是先单独拉起 Milvus:docker compose up milvus -d
  • 然后重启 API 服务:docker restart api-dev
  • 这是文中明确保留的例外处理步骤。

状态检查与访问入口

  • 可以通过 docker ps 查看所有容器状态,确认服务是否正常运行。
  • Web 前端地址:http://localhost:5173
  • API 文档地址:http://localhost:5050/docs
  • API 文档被明确说明可用于查看后端接口详情。

首次初始化

  • 首次访问前端界面时,系统会提示设置超级管理员账号和密码。
  • 该账号是系统最高权限账号。
  • 其用途包括管理用户、配置系统参数等。
  • 原文特别提醒要牢记该账号密码。
  • 完成超级管理员初始化后,才进入正常登录和使用流程。

功能路径整理

智能对话功能

  • 登录后首页可见的核心模块包括:智能体对话、知识库管理、知识图谱管理。
  • 正式使用前,文章建议先进入右上角“设置”检查系统配置是否正确。
  • 重点检查模型供应商和 API_KEY 配置是否生效。
  • 如果要切换模型,需要在模型配置中选择对应供应商,并确保已配置该供应商的 API_KEY。
  • 进入“智能体”页面后,点击“创建新对话”即可开始交互。
  • 在右侧配置面板中可以设置系统提示词、驱动模型、是否启用工具等参数。
  • 文中给出的示例提示词是:You are a professional technical assistant
  • 示例模型是 SiliconFlow 提供的 **Qwen**/Qwen2.5-7B-Instruct,并注明为免费模型。
  • 示例工具是 “Tavily 网页搜索”。
  • 开启后,系统能把知识库内容、联网搜索结果和大模型能力结合起来生成回答。
  • 文中示例问题包括“解释什么是机器学习”和“推荐几本 AI 领域的经典书籍”,前者用于定义型问答,后者用于结合知识库与网络资源生成推荐列表。

知识库管理

  • 在“知识库”模块中,可以新建知识库并上传文档。
  • 支持的文件格式原文明确列出:PDF、TXT、Markdown、Docx。
  • 除本地上传外,还支持“添加 URL”,由系统自动抓取网页内容并加入知识库。
  • 上传后系统会自动进行分块、索引,并把结果存储到 Milvus 向量数据库。
  • 处理耗时与文件大小相关,大文件可能需要几分钟。
  • 文中示例是上传一份 PDF 格式的《Python 编程入门》文档。
  • 处理完成后,可以在对话中提问“Python 中列表和字典的区别是什么”,系统会从已上传文档中检索相关内容,再结合大模型生成回答。
  • 除导入和问答外,还支持对知识库进行编辑、删除和权限设置,用于控制不同用户的访问权限。

知识图谱使用

  • 知识图谱功能依赖 Neo4j。
  • 使用时需要先准备 jsonl 格式数据。
  • 原文要求每行一条数据,结构为三元组对象,包含 htr 三个字段。
  • 文中给出的示例包括:
  • {"h": "北京", "t": "中国", "r": "首都"}
  • {"h": "Python", "t": "编程语言", "r": "属于"}
  • {"h": "机器学习", "t": "人工智能", "r": "子集"}
  • 在界面点击“导入图谱”后,选择整理好的 jsonl 文件,系统会将数据导入 Neo4j。
  • 导入完成后,可在图谱可视化界面查看实体之间的关联。
  • 如果在对话中启用“查询知识图谱”工具,智能助手就可以基于图谱回答关系型问题。
  • 原文示例问题是“北京和中国是什么关系”,示例返回答案为“首都”。

重要细节