语析 –  基于大模型知识库与知识图谱问答系统
RAG 框架
语析 – 基于大模型知识库与知识图谱问答系统
🔥 热度:40

API部署

DeepSeek 导航网:语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。

核心特点:

  • 🤖 多模型支持:适配 OpenAI、各大国内主流大模型平台,以及本地 vllm、ollama 部署,只需配置对应服务平台的 API_KEY 即可使用。
  • 📚 灵活知识库:支持 PDF、TXT、MD、Docx 等多种格式文档,支持通过 URL 添加文件,支持联网搜索,辅助回答最新信息。
  • 🤖 智能体拓展:可以编写自己的智能体代码,适合二次开发:更多的开发自定义项;兼容 LangGraph 部署方法 WIP 。
  • 🕸️ 知识图谱集成:基于 Neo4j 的知识图谱问答能力,可链接已有知识图谱。

快速开始

建议 clone stable 版本的代码

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

环境配置

在启动前,您需要提供 API 服务商的 API_KEY ,并放置在 src/.env 文件中(此文件项目中没有,需要自行参考 src/.env.template 创建)。更多可配置项,可参考下方对话模型部分。

默认使用硅基流动的服务,因此必须配置:

SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk

其他可选配置:

OPENAI_API_KEY=<API_KEY>          # OpenAI 服务
DEEPSEEK_API_KEY=<API_KEY>        # DeepSeek 服务
ZHIPUAI_API_KEY=<API_KEY>         # 智谱清言服务
TAVILY_API_KEY=<TAVILY_API_KEY>   # 联网搜索功能

需要确保账户有一点点额度供调用,或使用这个链接注册SiliconFlow 注册(含邀请码)获得 14 元的赠送额度。

本项目的基础对话服务可在不含显卡的设备上运行,大模型使用在线服务商的接口。

启动服务

确保已经安装了 docker 以及 nvidia-container-toolkit

开发环境启动(源代码修改会自动更新):

docker compose up --build

添加 -d 参数可在后台运行

注:当内存不足时,可能会出现 Milvus 没有正常启动的情况。此时需要运行 docker compose up milvus -d 重新启动 Milvus ,并重启 API 服务 docker restart api-dev

访问 http://localhost:5173/ 即可使用系统。

关闭服务

docker compose down

查看日志

docker logs <容器名称> -f # 例如:docker logs api-dev

模型支持

1. 对话模型

本项目支持通过 API 调用的模型,本地模型需使用 vllm、ollama 转成 API 服务后使用。

模型供应商默认模型配置项目
siliconflow (默认)Qwen/Qwen2.5-7B-Instruct (免费)SILICONFLOW_API_KEY
openaigpt-4oOPENAI_API_KEY
deepseekdeepseek-chatDEEPSEEK_API_KEY
arc(豆包方舟)doubao-1-5-pro-32k-250115ARK_API_KEY
zhipu(智谱清言)glm-4-flashZHIPUAI_API_KEY
dashscope(阿里)qwen-max-latestDASHSCOPE_API_KEY
together.aimeta-llama/Llama-3.3-70B-Instruct-Turbo-FreeTOGETHER_API_KEY
openrouteropenai/gpt-4oOPENROUTER_API_KEY

添加新模型供应商

如需添加供应商模型,了解 OpenAI 调用方法后,在 src/static/models.yaml 中添加对应配置:

ark:
  name: 豆包(Ark)
  url: https://console.volcengine.com/ark/region:ark+cn-beijing/model # 模型列表
  default: doubao-1-5-pro-32k-250115 # 默认模型
  base_url: https://ark.cn-beijing.volces.com/api/v3
  env:  # 需要配置的环境变量,仅限 API key
    - ARK_API_KEY
  models:
    - doubao-1-5-pro-32k-250115
    - doubao-1-5-lite-32k-250115
    - deepseek-r1-250120

如何配置本地大语言模型?

支持添加以 OpenAI 兼容模式运行的本地模型,可在 Web 设置中直接添加(适用于 vllm 和 Ollama 等)。 参考 scripts/vllm/run.sh 中的配置,运行该脚本即可部署本地模型,或者使用 Ollama 部署模型。

Note:使用 docker 运行此项目时, ollama 或 vllm 需监听 0.0.0.0

服务说明

项目中会启动多个服务,包括但不限于下面

端口服务说明
5173web前端服务
5050api后端服务
7474, 7687neo4j图数据库接口
9000, 9001minio文件数据库
19530, 9091mivlus向量数据库
30000mineruPDF 解析(默认不启用)
8080paddlexPP-Structure-V3 服务(默认不启用)
8081vllm模型本地推理服务(默认不启用)

2. 向量模型和重排序模型

提醒:在 0.2.0 版本之后,将不再支持本地向量模型和本地重排序模型,届时除了 OCR 之外(CPU-ONLY),项目本身启动后不会运行任何 AI 模型。其余的 Embedding、Reranker 模型将需要使用单独的部署脚本,与项目本身的服务解耦。

强烈建议测试阶段先使用硅基流动部署的 bge-m3(免费且无需修改)。其他模型配置参考 src/static/models.yaml 选择 local 前缀的模型会自动下载。如遇下载问题,请参考 HF-Mirror 配置。

📚 知识库功能

本项目支持多种格式的知识库文件:PDF、TXT、Markdown、Docx 。支持通过 URL 添加文件。

文件上传后,系统会对文件进行分块、索引、存储到向量数据库(Milvus)中,此过程可能需要一定时间,请耐心等待。

🕸️ 知识图谱功能

本项目使用 Neo4j 作为知识图谱存储。您需要将图谱整理成 jsonl 格式,每行格式为:

{"h": "北京", "t": "中国", "r": "首都"}

然后在网页的图谱管理中添加此文件。

系统启动后会自动启动 neo4j 服务:

可在 docker-compose.yml 中修改配置。

如已有基于 neo4j 的知识图谱,可删除 docker-compose.yml 中的 graph 配置项,并修改 api.environment 中的 NEO4J_URI 为您的 neo4j 服务地址。同时,需要确保节点的标签中包含 Entity 标签,才能正常触发索引。

常见问题

如何优雅的拉取镜像?

使用 bash docker/pull_image.sh python:3.12 就可以。

如何配置 MinerU 或者 PP-Structure-V3 抽取数据

在 PDF 数据处理中,可以选择配置 MinerU 来实现更快速、更准确的 PDF 识别效果。

docker compose up mineru --build  # 启动 mineru 2.0

docker compose up paddlex --build  # 启动 PP-Structure-V3 服务

如果想要不依赖显卡启动本项目?

在 0.2.0 正式版的时候会考虑移除显卡启动设置,将现有的服务全部解耦剥离出去。 #213

只需要修改现在的 docker-compose.yml ,删除现有的 deploy 部分代码,但是需要注意的是,这样的话,就无法使用本地模型 #209

下载地址

相关推荐