From d9a796aec1a1b9b474ce0cad0a3259b8b2cd9d5b Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Mon, 21 Jul 2025 19:48:15 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20README=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 351 +++++++++++++++++++++++----------------------- docs/Gemfile | 26 ---- docs/_config.yml | 26 ---- docs/how-to.md | 142 ------------------- docs/index.md | 136 ------------------ src/.env.template | 8 +- 6 files changed, 176 insertions(+), 513 deletions(-) delete mode 100644 docs/Gemfile delete mode 100644 docs/_config.yml delete mode 100644 docs/how-to.md delete mode 100644 docs/index.md diff --git a/README.md b/README.md index aace458c..9aac302d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@

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

+
![](https://img.shields.io/badge/Docker-2496ED?style=flat&logo=docker&logoColor=ffffff) @@ -10,230 +11,224 @@
-## 📝 项目概述 +## 📖 简介 -语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。 +语析是一个功能强大的智能问答平台,融合了 RAG 知识库与知识图谱技术,基于 LangGraph + Vue.js + FastAPI + LightRAG 架构构建。 -**核心特点:** +### ✨ 核心特性 -- 🤖 多模型支持:适配 OpenAI、各大国内主流大模型平台,以及本地 vllm、ollama 部署,只需配置对应服务平台的 `API_KEY` 即可使用。 -- 📚 灵活知识库:支持 PDF、TXT、MD、Docx 等多种格式文档,支持通过 URL 添加文件,支持联网搜索,辅助回答最新信息。 -- 🤖 智能体拓展:可以编写自己的智能体代码,适合二次开发:更多的开发自定义项;兼容 LangGraph 部署方法 WIP。 -- 🕸️ 知识图谱集成:基于 Neo4j 的知识图谱问答能力,可链接已有知识图谱。 +- 🤖 **多模型支持** - 兼容 OpenAI、国内主流大模型平台及本地部署(vLLM、Ollama) +- 📚 **灵活知识库** - 支持 PDF、TXT、MD、Docx 等格式,支持 URL 导入和联网搜索 +- 🤖 **智能体扩展** - 支持自定义智能体开发,兼容 LangGraph 部署 +- 🕸️ **知识图谱** - 基于 Neo4j 的图谱问答,可接入现有知识图谱 +- 👥 **权限控制** - 支持超级管理员、管理员、普通用户三级权限体系 ![欢迎 Star](https://github.com/user-attachments/assets/a9ea624a-7b95-4bc1-a3c7-bfec6c587b5c) https://github.com/user-attachments/assets/15f7f315-003d-4e41-a260-739c2529f824 -![流程图](https://github.com/user-attachments/assets/75010511-4ac5-4924-8268-fea9a589839c) - -## 📋 更新日志 - -- **2025.05.07** - 新增权限控制功能,主要角色分为 超级管理员、管理员、普通用户 [PR#173](https://github.com/xerrors/Yuxi-Know/pull/173) -- **2025.03.30** - 系统中集成智能体(WIP, [PR#96](https://github.com/xerrors/Yuxi-Know/pull/96)) -- **2025.02.24** - 新增网页检索以及内容展示,需配置 `TAVILY_API_KEY`,感谢 [littlewwwhite](https://github.com/littlewwwhite) -- **2025.02.23** - SiliconFlow 的 Rerank 和 Embedding model 支持,现默认使用 SiliconFlow -- **2025.02.20** - DeepSeek-R1 支持,需配置 `DEEPSEEK_API_KEY` 或 `SILICONFLOW_API_KEY` ## 🚀 快速开始 -> 建议 clone stable 版本的代码 +### 系统要求 -```bash -git clone -b stable https://github.com/xerrors/Yuxi-Know.git +- Docker 和 Docker Compose +- 2GB+ 可用内存 +- (可选)CUDA 支持的 GPU(用于 OCR 服务) + +### 一键启动 + +1. **克隆项目** + ```bash + git clone -b stable https://github.com/xerrors/Yuxi-Know.git + cd Yuxi-Know + ``` + +2. **配置 API 密钥** + + 复制环境变量模板并编辑: + ```bash + cp src/.env.template src/.env + ``` + + **必需配置**(推荐使用硅基流动免费服务): + ```env + SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk + ``` + > 💡 [免费获取 SiliconFlow API Key](https://cloud.siliconflow.cn/i/Eo5yTHGJ)(注册即送 14 元额度) + +3. **启动服务** + ```bash + docker compose up --build + ``` + + 添加 `-d` 参数可后台运行。启动完成后访问:[http://localhost:5173](http://localhost:5173) + +4. **停止服务** + ```bash + docker compose down + ``` + +### 故障排除 + +- **内存不足**:如果 Milvus 启动失败,执行 `docker compose up milvus -d && docker restart api-dev` +- **查看日志**:`docker logs api-dev -f` + +## 📋 更新日志 + +- **2025.05.07** - 新增三级权限控制系统 [PR#173](https://github.com/xerrors/Yuxi-Know/pull/173) +- **2025.03.30** - 智能体功能集成 [PR#96](https://github.com/xerrors/Yuxi-Know/pull/96) +- **2025.02.24** - 新增网页检索功能,支持实时信息获取 +- **2025.02.23** - SiliconFlow Rerank 和 Embedding 模型支持 +- **2025.02.20** - DeepSeek-R1 模型支持 + +## 🤖 模型配置 + +### 对话模型 + +支持多种 API 服务商,配置对应的 `API_KEY` 即可使用: + +| 服务商 | 推荐模型 | 环境变量 | 备注 | +|--------|---------|----------|------| +| 硅基流动 | `Qwen2.5-7B-Instruct` | `SILICONFLOW_API_KEY` | 🆓 免费,默认 | +| OpenAI | `gpt-4o` | `OPENAI_API_KEY` | | +| DeepSeek | `deepseek-chat` | `DEEPSEEK_API_KEY` | | +| 豆包方舟 | `doubao-pro` | `ARK_API_KEY` | | +| 智谱清言 | `glm-4-flash` | `ZHIPUAI_API_KEY` | | +| 阿里云 | `qwen-max-latest` | `DASHSCOPE_API_KEY` | | + +**完整配置示例:** +```env +# 基础配置(必需) +SILICONFLOW_API_KEY=sk-your-key-here + +# 可选配置 +OPENAI_API_KEY=sk-your-openai-key +DEEPSEEK_API_KEY=sk-your-deepseek-key +TAVILY_API_KEY=your-tavily-key # 联网搜索功能 ``` -### 环境配置 +### 本地模型部署 -在启动前,您需要提供 API 服务商的 API_KEY,并放置在 `src/.env` 文件中(此文件项目中没有,需要自行参考 [src/.env.template](src/.env.template) 创建)。更多可配置项,可参考下方**对话模型**部分。 - -默认使用硅基流动的服务,因此**必须**配置: - -``` -SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk -``` - -其他可选配置: -``` -OPENAI_API_KEY= # OpenAI 服务 -DEEPSEEK_API_KEY= # DeepSeek 服务 -ZHIPUAI_API_KEY= # 智谱清言服务 -TAVILY_API_KEY= # 联网搜索功能 -``` - -需要确保账户有一点点额度供调用,或使用这个链接注册[SiliconFlow 注册(含邀请码)](https://cloud.siliconflow.cn/i/Eo5yTHGJ)获得 14 元的赠送额度。 - -> 本项目的基础对话服务可在不含显卡的设备上运行,大模型使用在线服务商的接口。 - -### 启动服务 - -> 确保已经安装了 [docker](https://docs.docker.com/engine/install/ubuntu/) 以及 [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) - -**开发环境启动**(源代码修改会自动更新): - -```bash -docker compose up --build -``` - -> 添加 `-d` 参数可在后台运行 - - -注:当内存不足时,可能会出现 Milvus 没有正常启动的情况。此时需要运行 `docker compose up milvus -d` 重新启动 Milvus,并重启 API 服务 `docker restart api-dev`。 - -访问 [http://localhost:5173/](http://localhost:5173/) 即可使用系统。 - - -**关闭服务**: - -```bash -docker compose down -``` - -**查看日志**: - -```bash -docker logs <容器名称> -f # 例如: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` | -| `together.ai` | `meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` | `TOGETHER_API_KEY` | -| `openrouter` | `openai/gpt-4o` | `OPENROUTER_API_KEY` | - -#### 添加新模型供应商 - -如需添加供应商模型,了解 OpenAI 调用方法后,在 [src/static/models.yaml](src/static/models.yaml) 中添加对应配置: - -```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](scripts/vllm/run.sh) 中的配置,运行该脚本即可部署本地模型,或者使用 Ollama 部署模型。 - -> [!NOTE] -> 使用 docker 运行此项目时,ollama 或 vllm 需监听 `0.0.0.0` +支持通过 vLLM 或 Ollama 部署本地模型: +然后在 Web 界面的"设置"中添加本地模型地址。 ![本地模型配置](./docs/images/custom_models.png) +## 📚 功能详解 -### 服务说明 +### 知识库管理 -项目中会启动多个服务,包括但不限于下面 +- **多格式支持**:PDF、TXT、Markdown、Docx、Excel 等 +- **多种导入方式**:本地上传、URL 导入、批量导入 +- **智能分块**:自动优化文档分割策略 +- **向量检索**:基于 Milvus 的高效相似度搜索 -|端口|服务|说明| -|--|--|--| -|5173|web|前端服务| -|5050|api|后端服务| -|7474, 7687|neo4j|图数据库接口| -|9000, 9001|minio|文件数据库| -|19530, 9091|mivlus|向量数据库| -|30000|mineru|PDF解析(默认不启用)| -|8080|paddlex|PP-Structure-V3 服务(默认不启用)| -|8081|vllm|模型本地推理服务(默认不启用)| +### 知识图谱 +使用 Neo4j 构建知识图谱问答能力: +1. **数据格式**:支持 JSONL 格式导入 + ```jsonl + {"h": "北京", "t": "中国", "r": "首都"} + {"h": "上海", "t": "中国", "r": "直辖市"} + ``` -### 2. 向量模型和重排序模型 +2. **图谱访问**: + - Web 界面:[http://localhost:7474](http://localhost:7474) + - 默认账户:`neo4j` / `0123456789` -> 提醒:在 0.2.0 版本之后,将不再支持本地向量模型和本地重排序模型,届时除了 OCR 之外(CPU-ONLY),项目本身启动后不会运行任何 AI 模型。其余的 Embedding、Reranker 模型将需要使用单独的部署脚本,与项目本身的服务解耦。 +3. **现有图谱接入**:修改 `docker-compose.yml` 中的 `NEO4J_URI` 配置 -~~强烈建议测试阶段先使用硅基流动部署的 bge-m3(免费且无需修改)。其他模型配置参考 [src/static/models.yaml](src/static/models.yaml)~~ -~~选择 `local` 前缀的模型会自动下载。如遇下载问题,请参考 [HF-Mirror](https://hf-mirror.com/) 配置。~~ +### 高级功能 -## 📚 知识库功能 +- **联网搜索**:配置 `TAVILY_API_KEY` 获取实时信息 +- **智能体开发**:支持自定义智能体逻辑 +- **权限管理**:三级用户权限体系 +- **OCR 增强**:可选 MinerU 或 PP-Structure-V3 服务 -本项目支持多种格式的知识库文件:PDF、TXT、Markdown、Docx。支持通过 URL 添加文件。 +## 🔧 高级配置 -文件上传后,系统会对文件进行分块、索引、存储到向量数据库(Milvus)中,此过程可能需要一定时间,请耐心等待。 +### OCR 服务(可选) -## 🕸️ 知识图谱功能 - -本项目使用 Neo4j 作为知识图谱存储。您需要将图谱整理成 jsonl 格式,每行格式为: - -``` -{"h": "北京", "t": "中国", "r": "首都"} -``` - -然后在网页的图谱管理中添加此文件。 - -系统启动后会自动启动 neo4j 服务: - -- 访问地址:[http://localhost:7474/](http://localhost:7474/) -- 默认账户:`neo4j` -- 默认密码:`0123456789` - -可在 `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](https://github.com/opendatalab/MinerU) 来实现更快速、更准确的 PDF 识别效果。 +提升 PDF 解析准确性,需要 GPU 支持: ```bash -docker compose up mineru --build # 启动 mineru 2.0 +# MinerU(需要 CUDA 12.4+) +docker compose up mineru --build -docker compose up paddlex --build # 启动 PP-Structure-V3 服务 +# PP-Structure-V3(需要 CUDA 11.8+) +docker compose up paddlex --build ``` -### 如果想要不依赖显卡启动本项目? +### 服务端口说明 -在 0.2.0 正式版的时候会考虑移除显卡启动设置,将现有的服务全部解耦剥离出去。 [#213](https://github.com/xerrors/Yuxi-Know/issues/213) +| 端口 | 服务 | 说明 | +|------|------|------| +| 5173 | Web 前端 | 用户界面 | +| 5050 | API 后端 | 核心服务 | +| 7474/7687 | Neo4j | 图数据库 | +| 9000/9001 | MinIO | 对象存储 | +| 19530/9091 | Milvus | 向量数据库 | +| 30000 | MinerU | PDF 解析(可选)| +| 8080 | PaddleX | OCR 服务(可选)| +| 8081 | vLLM | 本地推理(可选)| -只需要修改现在的 docker-compose.yml,删除现有的 deploy 部分代码,但是需要注意的是,这样的话,就无法使用本地模型 [#209](https://github.com/xerrors/Yuxi-Know/issues/209)。 +### 自定义模型供应商 -```yml -services: - ...... - # deploy: - # resources: - # reservations: - # devices: - # - driver: nvidia - # device_ids: ['1'] - # capabilities: [gpu] +在 [src/static/models.yaml](src/static/models.yaml) 中添加新的模型配置: + +```yaml +your_provider: + name: "自定义供应商" + default: "your-model-name" + base_url: "https://api.your-provider.com/v1" + env: + - YOUR_API_KEY + models: + - your-model-name +``` + +## ❓ 常见问题 + +### 安装和部署 + +**Q: 如何优雅拉取镜像?** +```bash +bash docker/pull_image.sh python:3.12 ``` -## 贡献者名单 +## 🤝 参与贡献 -感谢以下贡献者的支持! +感谢所有贡献者的支持! 贡献者名单 -## Star History +### 如何贡献 + +1. Fork 本项目 +2. 创建特性分支 (`git checkout -b feature/amazing-feature`) +3. 提交更改 (`git commit -m 'Add some amazing feature'`) +4. 推送到分支 (`git push origin feature/amazing-feature`) +5. 创建 Pull Request + +## 📊 Star History [![Star History Chart](https://api.star-history.com/svg?repos=xerrors/Yuxi-Know)](https://star-history.com/#xerrors/Yuxi-Know) + +## 📄 许可证 + +本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 + +--- + +
+ +**如果这个项目对您有帮助,请不要忘记给我们一个 ⭐️** + +[报告问题](https://github.com/xerrors/Yuxi-Know/issues) | [功能请求](https://github.com/xerrors/Yuxi-Know/issues) | [讨论](https://github.com/xerrors/Yuxi-Know/discussions) + +
diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 77bf5264..00000000 --- a/docs/Gemfile +++ /dev/null @@ -1,26 +0,0 @@ -source "https://rubygems.org" - -gem "jekyll", "~> 4.3.2" -# gem "just-the-docs", "~> 0.5.0" -gem "minima", "~> 2.5" - -group :jekyll_plugins do - gem "jekyll-include-cache" - gem "jekyll-paginate" - gem "jekyll-sitemap" - gem "jemoji" -end - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", ">= 1", "< 3" - gem "tzinfo-data" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 8d9cb687..00000000 --- a/docs/_config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# remote_theme: just-the-docs/just-the-docs -url: https://xerrors.github.io/Yuxi-Know -baseurl: /Yuxi-Know -title: 语析 - 基于大模型的知识库与知识图谱问答系统 -description: 语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。 -search_enabled: true -search_full_content: true -aux_links: - "在 GitHub 上查看": - - "https://github.com/xerrors/Yuxi-Know" - -# 启用中文支持 -plugins: - - jekyll-include-cache - - jekyll-paginate - - jekyll-sitemap - - jemoji - -# 设置默认语言 -defaults: - - scope: - path: "" - type: pages - values: - layout: home - search_exclude: true \ No newline at end of file diff --git a/docs/how-to.md b/docs/how-to.md deleted file mode 100644 index 714fd627..00000000 --- a/docs/how-to.md +++ /dev/null @@ -1,142 +0,0 @@ -### 如何优雅的拉取镜像? - -使用 `bash docker/pull_image.sh python:3.12` 就可以。 - -### 如何配置本地大语言模型? - -支持添加以 OpenAI 兼容模式运行的本地模型,可在 Web 设置中直接添加(适用于 vllm 和 Ollama 等)。 - -> [!NOTE] -> 使用 docker 运行此项目时,ollama 或 vllm 需监听 `0.0.0.0` - -![本地模型配置](./images/custom_models.png) - -### 如何配置本地向量模型与重排序模型 - -强烈建议测试阶段先使用硅基流动部署的 bge-m3(免费且无需修改)。其他模型配置参考 [src/static/models.yaml](src/static/models.yaml)。 - -对于**向量模型**和**重排序模型**,选择 `local` 前缀的模型会自动下载。如遇下载问题,请参考 [HF-Mirror](https://hf-mirror.com/) 配置。 - -要使用已下载的本地模型: - -1. 在网页设置中添加映射,需要注意,如果是在 docker 里面前缀直接设置为 `/models` - -![image](https://github.com/user-attachments/assets/ab62ea17-c7d0-4f94-84af-c4bab26865ad) - -2. 将文件夹映射到 docker 内部 - -```yml -# docker-compose.yml - -services: - api: - build: - context: . - dockerfile: docker/api.Dockerfile - container_name: api-dev - working_dir: /app - volumes: - - ./server:/app/server - - ./src:/app/src - - ./saves:/app/saves - - ${MODEL_DIR}:/models <== 比如修改为 /hdd/models:models - ports: - -``` - -3. 重新启动项目 - -```bash -docker compose down -docker compose up --build -d -``` - -注:添加本地向量模型由于在 docker 内外的路径差异很大,因此建议参考前面的路径映射之后,也在这里添加。 - -```yaml -# src/static/models.yaml - # 添加本地向量模型(所有 FlagEmbedding 支持的模型) - local/BAAI/bge-m3: - name: BAAI/bge-m3 - dimension: 1024 - # local_path: /models/BAAI/bge-m3,也可以在这里配置 - - # 添加 OpenAI 兼容的向量模型 - siliconflow/BAAI/bge-m3: - name: BAAI/bge-m3 - dimension: 1024 - url: https://api.siliconflow.cn/v1/embeddings - api_key: SILICONFLOW_API_KEY - - # 添加 Ollama 模型 - ollama/nomic-embed-text: - name: nomic-embed-text - dimension: 768 -``` - -### 如何配置 MinerU 抽取数据 - -在 PDF 数据处理中,可以选择配置 [MinerU](https://github.com/opendatalab/MinerU) 来实现更快速、更准确的 PDF 识别效果。 - -```yml - mineru-api: - build: - context: scripts/mineru-api - dockerfile: Dockerfile - image: mineru-api:latest - container_name: mineru-api - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: 1 - capabilities: [gpu] - ports: - - "5051:5051" - networks: - - app-network - restart: unless-stopped - command: python -m uvicorn app:app --host 0.0.0.0 --port 5051 --app-dir /app -``` - -如果要添加代理的话,可以添加 build args - -```yml - mineru-api: - build: - context: scripts/mineru-api - dockerfile: Dockerfile - args: - http_proxy: http://宿主机IP:7890 - https_proxy: http://宿主机IP:7890 -``` - -### 如果想要不依赖显卡启动本项目? - -只需要修改现在的 docker-compose.yml,删除现有的 deploy 部分代码,但是需要注意的是,这样的话,就无法使用本地模型 [#209](https://github.com/xerrors/Yuxi-Know/issues/209)。 - - - -```yml -services: - api: - build: - context: . - dockerfile: docker/api.Dockerfile - image: yuxi-api:0.1.0 - container_name: api-dev - working_dir: /app - volumes: - - ./server:/app/server - - ./src:/app/src - - ./saves:/app/saves - - ${MODEL_DIR:-./models}:/models # 使用默认值处理未定义的环境变量 - # deploy: - # resources: - # reservations: - # devices: - # - driver: nvidia - # device_ids: ['1'] - # capabilities: [gpu] -``` \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 2e4707da..00000000 --- a/docs/index.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -layout: default -title: 语析 - 基于大模型的知识库与知识图谱问答系统 -nav_order: 1 -description: "语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。" -permalink: / ---- - -# 语析 - 基于大模型的知识库与知识图谱问答系统 - -
- -![](https://img.shields.io/badge/Docker-2496ED?style=flat&logo=docker&logoColor=ffffff) -![Vue.js](https://img.shields.io/badge/vuejs-%2335495e.svg?style=flat&logo=vuedotjs&logoColor=%234FC08D) -![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=flat&logo=fastapi) -![](https://img.shields.io/github/issues/xerrors/Yuxi-Know?color=F48D73) -![](https://img.shields.io/github/license/bitcookies/winrar-keygen.svg?logo=github) -![](https://img.shields.io/github/stars/xerrors/Yuxi-Know) - -
- -## 项目概述 - -语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。 - -### 核心特点 - -- 🤖 **多模型支持**:适配 OpenAI、各大国内主流大模型平台,以及本地 vllm 部署 -- 📚 **灵活知识库**:支持 PDF、TXT、MD 等多种格式文档 -- 🕸️ **知识图谱集成**:基于 Neo4j 的知识图谱问答能力 -- 🚀 **简单配置**:只需配置对应服务平台的 `API_KEY` 即可使用 - -![系统界面预览](https://github.com/user-attachments/assets/75010511-4ac5-4924-8268-fea9a589839c) - -## 快速开始 - -### 环境配置 - -在启动前,您需要提供 API 服务商的 API_KEY,并放置在 `src/.env` 文件中(此文件项目中没有,需要自行参考 [src/.env.template](src/.env.template) 创建)。 - -默认使用硅基流动的服务,因此**必须**配置: - -```env -SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk -OPENAI_API_KEY= # 如果需要配置 openai 则添加此行,并替换 API_KEY -DEEPSEEK_API_KEY= # 如果配置 DeepSeek 添加此行,并替换 API_KEY -ZHIPUAI_API_KEY= # 如果配置 智谱清言 添加此行,并替换 API_KEY -``` - -### 启动服务 - -**开发环境启动**(源代码修改会自动更新): - -```bash -docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build -``` - -> 添加 `-d` 参数可在后台运行 - -**生产环境部署**请使用: - -```bash -docker compose -f docker/docker-compose.yml --env-file src/.env up --build -d -``` - -成功启动后,访问 [http://localhost:5173/](http://localhost:5173/) 即可使用系统。 - -## 功能特性 - -### 多模态问答支持 - -- Deepseek-R1 等推理模型 -- 知识图谱检索 -- 知识库检索 -- 网页检索 - -### 知识库管理 - -支持多种格式的知识库文件: -- PDF -- Txt -- Markdown -- Docx - -### 知识图谱集成 - -使用 Neo4j 作为知识图谱存储,支持: -- 自定义知识图谱导入 -- 图谱可视化 -- 图谱检索 - -## 模型支持 - -### 对话模型 - -| 模型供应商 | 默认模型 | 配置项目 | -| :--------------------- | :---------------------------------- | :--------------------------------------------- | -| `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` | - -### 向量模型与重排序模型 - -建议使用硅基流动部署的 bge-m3(免费且无需修改)。其他模型配置参考 [src/static/models.yaml](src/static/models.yaml)。 - -## 更新日志 - -- **2025.02.24** - 新增网页检索以及内容展示,需配置 `TAVILY_API_KEY` -- **2025.02.23** - SiliconFlow 的 Rerank 和 Embedding model 支持,现默认使用 SiliconFlow -- **2025.02.20** - DeepSeek-R1 支持,需配置 `DEEPSEEK_API_KEY` 或 `SILICONFLOW_API_KEY` -- **2024.10.12** - 后端修改为 FastAPI,添加 Milvus-Standalone 独立部署 - -## 常见问题 - -### 镜像下载问题 - -如无法直接下载相关镜像,可参考 [DaoCloud/public-image-mirror](https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B),尝试替换前缀: - -```bash -# 以 neo4j 为例,其余类似 -docker pull m.daocloud.io/docker.io/library/neo4j:latest - -# 然后重命名镜像 -docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest -``` - -## 贡献指南 - -欢迎提交 Issue 和 Pull Request 来帮助改进项目。 - -## 许可证 - -本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 \ No newline at end of file diff --git a/src/.env.template b/src/.env.template index 1a712494..93424cb0 100644 --- a/src/.env.template +++ b/src/.env.template @@ -1,7 +1,8 @@ -MODEL_DIR=D:/Huggingface +MODEL_DIR=models +SAVE_DIR=saves # 模型供应商 -SILICONFLOW_API_KEY=sk-aeoampticy******bpdsofstmoqnvsmbvql #* <<< 建议配置 +SILICONFLOW_API_KEY=sk-aeoampticy******bpdsofstmoqnvsmbvql # > <<< 建议配置 OPENAI_API_KEY=sk-aslDB5rqOgK******q5K02ZEiRC9ER OPENAI_API_BASE=https://api.openai.com/v1 ZHIPUAI_API_KEY=5f41e******71c7bac.UWkl******Sw5Lb @@ -13,6 +14,3 @@ TOGETHER_API_KEY=tgp_v1_fPjW******irD6zesAn4 # 功能服务 TAVILY_API_KEY=tvly-3gR4ind9******JMOxw3E2LG # <<< 配置网络搜索 - -# 知识图谱的模型,格式参考 models.yaml -GRAPH_EMBED_MODEL_NAME="" \ No newline at end of file