AI个人学习
和实操指南
讯飞绘镜

语析(Yuxi-Know):基于知识图谱的智能问答平台

综合介绍

Yuxi-Know 是一个开源的智能问答平台,结合知识图谱和 RAG(检索增强生成)技术,帮助用户快速获取精准答案。它基于 Neo4j 存储知识图谱,使用 FastAPI 和 VueJS 构建后端和前端,支持多种大模型,如 OpenAI、DeepSeek、豆包等。系统集成了 Milvus 向量数据库,支持 PDF、TXT 等多种格式的知识库文件。Yuxi-Know 提供联网检索、DeepSeek-R1 推理模型和工具调用功能,适合开发者构建知识管理或智能客服系统。项目在 GitHub 上开源,易于部署和扩展。

语析(Yuxi-Know):基于知识图谱的智能问答平台-1


语析(Yuxi-Know):基于知识图谱的智能问答平台-1

 

功能列表

  • 支持多种大模型调用,包括 OpenAI、DeepSeek、豆包、智谱清言等。
  • 提供知识图谱查询,基于 Neo4j 存储结构化数据。
  • 支持 RAG 技术,结合知识库和联网检索生成准确答案。
  • 集成 DeepSeek-R1 推理模型,处理复杂逻辑问题。
  • 提供工具调用功能,通过 API 执行外部任务。
  • 支持多种文件格式(PDF、TXT、MD、Docx)构建知识库。
  • 使用 Milvus 向量数据库,存储和检索文档向量。
  • 提供网页界面,基于 VueJS,操作简单直观。
  • 支持本地模型部署,通过 vLLMOllama 提供 API 服务。
  • 允许用户自定义模型和向量模型配置,适配不同需求。

 

使用帮助

安装流程

Yuxi-Know 使用 Docker 部署,简化安装流程。以下是详细步骤:

  1. 准备环境
    确保安装了 Docker 和 Docker Compose。推荐使用 Linux 或 macOS 系统,Windows 用户需启用 WSL2。检查 Docker 是否正常运行:

    docker --version
    

    确保 Git 已安装,用于克隆代码。

  2. 克隆项目
    在终端运行以下命令,克隆 Yuxi-Know 代码库:

    git clone https://github.com/xerrors/Yuxi-Know.git
    

    进入项目目录:

    cd Yuxi-Know
    
  3. 配置环境变量
    Yuxi-Know 需要配置 API 密钥和模型参数。复制模板文件:

    cp src/.env.template src/.env
    

    使用文本编辑器打开 src/.env,填入必要的密钥。例如:

    SILICONFLOW_API_KEY=sk-你的密钥
    DEEPSEEK_API_KEY=你的密钥
    TAVILY_API_KEY=你的密钥
    

    如果使用其他模型(如 OpenAI、豆包),添加对应密钥:

    OPENAI_API_KEY=你的密钥
    ARK_API_KEY=你的密钥
    

    默认使用 SiliconFlow 服务,必须配置 SILICONFLOW_API_KEY。若使用本地模型,需配置模型路径:

    MODEL_DIR=/path/to/your/models
    
  4. 启动服务
    在项目根目录运行以下命令,启动所有服务:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build
    

    这会启动 Neo4j、Milvus、FastAPI 后端和 VueJS 前端。首次启动可能需要几分钟。成功后,终端会显示:

    [+] Running 7/7
    ✔ Network docker_app-network       Created
    ✔ Container graph-dev              Started
    ✔ Container milvus-etcd-dev        Started
    ✔ Container milvus-minio-dev       Started
    ✔ Container milvus-standalone-dev  Started
    ✔ Container api-dev                Started
    ✔ Container web-dev                Started
    

    若需后台运行,添加 -d 参数:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build -d
    
  5. 访问系统
    打开浏览器,访问 http://localhost:5173/,即可进入 Yuxi-Know 界面。如果无法访问,检查 Docker 容器状态:

    docker ps
    

    确保所有容器都在运行。若端口冲突,可修改 docker-compose.dev.yml 中的端口配置。

  6. 关闭服务
    停止服务并删除容器:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env down
    

使用主要功能

Yuxi-Know 提供知识图谱查询、知识库检索、联网检索和工具调用功能。以下是详细操作方法:

  1. 知识图谱查询
    Yuxi-Know 使用 Neo4j 存储知识图谱,适合查询结构化数据。例如,查询“北京的首都是什么?”系统会从知识图谱中提取答案。

    • 导入知识图谱:准备 JSONL 格式文件,每行包含头节点、尾节点和关系,例如:
      {"h": "北京", "t": "中国", "r": "首都"}
      

      在界面导航到“图谱管理”,上传 JSONL 文件。系统会自动加载到 Neo4j。

    • 访问 Neo4j:启动后,可通过 http://localhost:7474/ 访问 Neo4j 面板,默认账户为 neo4j,密码为 0123456789
    • 注意:节点需包含 Entity 标签,否则无法触发索引。
  2. 知识库检索
    系统支持上传 PDF、TXT、MD、Docx 文件,自动转为向量存储到 Milvus 数据库。操作步骤:

    • 在界面导航到“知识库管理”,点击“上传文件”。
    • 选择文件,系统会将内容转为纯文本,使用向量模型(如 BAAI/bge-m3)生成向量并存储。
    • 查询时,输入问题,如:“文档中提到的人工智能趋势是什么?” 系统会检索相关内容并生成答案。
    • 提示:大文件处理可能较慢,建议分段上传。
  3. 联网检索
    当本地知识库无法回答时,系统会启用联网检索。确保配置了 TAVILY_API_KEY。操作方法:

    • 在界面输入问题,如:“2025 年最新的 AI 技术是什么?”
    • 系统通过 Tavily API 抓取网络信息,结合大模型生成答案。
    • 结果会显示来源链接,便于验证信息。
  4. 工具调用
    Yuxi-Know 支持通过 API 调用外部工具,例如查询天气或执行脚本。操作步骤:

    • 在 src/static/models.yaml 中添加工具配置:
      tools:
      - name: weather
      url: https://api.weather.com/v3
      api_key: 你的密钥
      
    • 在界面输入:“上海今天的天气如何?” 系统会调用工具并返回结果。

特色功能操作

  1. DeepSeek-R1 推理模型
    DeepSeek-R1 是 Yuxi-Know 的亮点,适合复杂推理任务。操作方法:

    • 确保 DEEPSEEK_API_KEY 或 SILICONFLOW_API_KEY 已配置。
    • 在界面模型选择中切换到 deepseek-r1-250120
    • 输入问题,如:“一个苹果比橙子贵 2 元,三个苹果和两个橙子总价 16 元,橙子多少钱?” 系统会推理并回答:“橙子 2 元。”
    • 优势:能处理多步骤逻辑问题,答案更可靠。
  2. 多模型支持
    系统支持切换多种模型,适配不同场景。操作方法:

    • 在界面右上角下拉菜单选择模型,如 Qwen2.5-7B-Instruct(SiliconFlow)、gpt-4o(OpenAI)或 doubao-1-5-pro(豆包)。
    • 每种模型有不同优势,例如豆包适合中文语义理解,OpenAI 适合复杂任务。
    • 添加新模型:编辑 src/static/models.yaml,添加供应商配置,例如:
      zhipu:
      name: 智谱清言
      url: https://api.zhipuai.com/v1
      default: glm-4-flash
      env:
      - ZHIPUAI_API_KEY
      

      重启服务后,新模型即可使用。

  3. 本地模型部署
    若需使用本地模型(如 LLaMA),可通过 vLLM 或 Ollama 部署。操作步骤:

    • 启动 vLLM 服务:
      vllm serve /path/to/model --host 0.0.0.0 --port 8000
      
    • 在界面“设置”中添加本地模型,输入 URL(如 http://localhost:8000/v1)。
    • 保存后,系统会优先使用本地模型,适合无网络环境。
  4. 向量模型配置
    默认使用 BAAI/bge-m3 生成向量。若需更换,编辑 src/static/models.yaml

    local/nomic-embed-text:
    name: nomic-embed-text
    dimension: 768
    

    本地模型会自动下载,若下载失败,可通过 HF-Mirror 镜像站获取。

注意事项

  • 网络要求:联网检索和模型调用需稳定网络,建议检查 .env 文件中的密钥。
  • Neo4j 配置:若已有 Neo4j 服务,可修改 docker-compose.yml 中的 NEO4J_URI,避免重复部署。
  • 镜像下载:若 Docker 镜像拉取失败,可使用 DaoCloud 镜像站:
    docker pull m.daocloud.io/docker.io/library/neo4j:latest
    docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest
    
  • 日志查看:若服务异常,查看容器日志:
    docker logs api-dev
    

 

应用场景

  1. 企业知识管理
    企业可将内部文档(如操作手册、技术规范)上传至知识库,或整理成知识图谱。员工通过 Yuxi-Know 查询问题,如“如何配置服务器?” 系统快速返回答案,减少培训时间。
  2. 学术研究支持
    研究者可上传论文或整理学科知识图谱。例如,构建化学分子关系图谱,查询“碳原子的化学键有哪些?” 系统结合图谱和文档返回详细答案,还能联网补充最新研究。
  3. 智能客服系统
    商家可将产品信息和常见问题录入系统。客户提问“如何退货?”时,Yuxi-Know 从知识库提取答案,或联网查询最新政策,提供准确回复。

 

QA

  1. 如何上传知识库文件?
    在界面导航到“知识库管理”,点击“上传”,选择 PDF、TXT、MD 或 Docx 文件。系统会自动处理并存储到 Milvus 数据库。
  2. 联网检索需要哪些配置?
    需在 .env 文件中配置 TAVILY_API_KEY。若无密钥,可通过 SiliconFlow 或 Tavily 官网注册获取。
  3. 如何调试本地模型?
    确保 vLLM 或 Ollama 服务监听 0.0.0.0,并在界面“设置”中添加正确 URL。启动后,通过 docker logs api-dev 检查连接状态。
  4. 知识图谱导入失败怎么办?
    检查 JSONL 文件格式,确保每行包含 htr 字段。上传后,重启 Neo4j 服务并确认节点包含 Entity 标签。
未经允许不得转载:首席AI分享圈 » 语析(Yuxi-Know):基于知识图谱的智能问答平台
zh_CN简体中文