Go to file
2025-05-10 10:53:15 +08:00
.github Update issue templates 2025-05-08 23:41:37 +08:00
docker addwindow script 2025-05-10 10:53:15 +08:00
docs 文档更新 2025-05-10 10:53:14 +08:00
scripts/vllm 优化镜像打包 2025-05-10 10:53:15 +08:00
server 进一步优化并行处理能力:file-to-chunk 部分优化完成 2025-05-10 10:53:15 +08:00
src 优化改写逻辑,默认启用改写查询 2025-05-10 10:53:15 +08:00
test 更新一些部署相关的更改 2025-02-28 00:26:57 +08:00
web 添加 消息 console 2025-05-10 10:53:15 +08:00
.dockerignore add docker support for whole project 2024-09-11 01:09:35 +08:00
.gitignore 添加 uv.lock 文件 2025-05-10 10:53:15 +08:00
.python-version env update 2025-05-10 10:52:26 +08:00
docker-compose.yml 优化本地 embedding 的GPU 处理问题,添加 GPU 部署映射 2025-05-10 10:53:15 +08:00
LICENSE update details 2025-02-25 21:36:00 +08:00
pyproject.toml 优化本地 embedding 的GPU 处理问题,添加 GPU 部署映射 2025-05-10 10:53:15 +08:00
README.md 优化本地 embedding 的GPU 处理问题,添加 GPU 部署映射 2025-05-10 10:53:15 +08:00
requirements.txt 基本权限控制功能实现 2025-05-10 10:53:14 +08:00
uv.lock 优化本地 embedding 的GPU 处理问题,添加 GPU 部署映射 2025-05-10 10:53:15 +08:00

语析 - 基于大模型的知识库与知识图谱问答系统

Vue.js FastAPI

📝 项目概述

TODO

  • 智能体的消息加载有问题
  • 智能体的管理员的配置无法更新到用户层面

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

核心特点:

  • 🤖 多模型支持:适配 OpenAI、各大国内主流大模型平台以及本地 vllm、ollama 部署
  • 📚 灵活知识库:支持 PDF、TXT、MD 等多种格式文档
  • 🕸️ 知识图谱集成:基于 Neo4j 的知识图谱问答能力
  • 🚀 简单配置:只需配置对应服务平台的 API_KEY 即可使用
  • 🤖 智能体拓展:可以编写自己的智能体代码
  • ⚒️ 适合二次开发:更多的开发自定义项

系统界面预览

📋 更新日志

  • 2025.05.07 - 新增权限控制功能,主要角色分为 超级管理员、管理员、普通用户 PR#173
  • 2025.03.30 - 系统中集成智能体WIP PR#96
  • 2025.02.24 - 新增网页检索以及内容展示,需配置 TAVILY_API_KEY,感谢 littlewwwhite
  • 2025.02.23 - SiliconFlow 的 Rerank 和 Embedding model 支持,现默认使用 SiliconFlow
  • 2025.02.20 - DeepSeek-R1 支持,需配置 DEEPSEEK_API_KEYSILICONFLOW_API_KEY

环境配置

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

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

SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk
OPENAI_API_KEY=<API_KEY> # 如果需要配置 openai 则添加此行,并替换 API_KEY
DEEPSEEK_API_KEY=<API_KEY>  # 如果配置 DeepSeek 添加此行,并替换 API_KEY
ZHIPUAI_API_KEY=<API_KEY>  # 如果配置 智谱清言 添加此行,并替换 API_KEY

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

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

启动服务

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

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

docker compose up --build

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

成功启动后,会看到以下容器:

[+] 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

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

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

系统预览

待补充

服务管理

关闭服务

docker compose down

查看日志

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

💻 模型支持

1. 对话模型

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

模型供应商 默认模型 配置项目
siliconflow (默认) Qwen/Qwen2.5-7B-Instruct (免费) SILICONFLOW_API_KEY
openai gpt-4o OPENAI_API_KEY
deepseek deepseek-chat DEEPSEEK_API_KEY
arc(豆包方舟) doubao-1-5-pro-32k-250115 ARK_API_KEY
zhipu(智谱清言) glm-4-flash ZHIPUAI_API_KEY
dashscope(阿里) qwen-max-latest DASHSCOPE_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

本地模型部署参考 how-to.md

📚 知识库支持

本项目支持多种格式的知识库文件PDF、TXT、Markdown、Docx。

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

🕸️ 知识图谱支持

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

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

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

[!说明] 现阶段项目使用的 OneKE 自动创建知识图谱效果不佳,已暂时移除,建议在项目外创建知识图谱

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

可在 docker-compose.yml 中修改配置(注意同时修改 api.environmentgraph.environment)。

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

贡献者名单

感谢以下贡献者的支持!

贡献者名单

Star History

Star History Chart