# LLM知识库 **Repository Path**: clumsy-development/llm-knowledge-base ## Basic Information - **Project Name**: LLM知识库 - **Description**: 大模型知识库,支持智能分类/智能排版/智能问答。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-13 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大模型智能知识库 基于ChromaDB的智能文本分类与检索系统。用户可以将任何文本复制到输入框内,系统会自动将其分类并存储,之后用户可以通过提问快速检索到之前存储的内容。 ## 项目技术栈 - **前端**: Vue 3 + HTML + Tailwind CSS + Font Awesome + AcroDesign + Axios - **后端**: FastAPI (Python) - **数据库**: SQLite (关系型数据存储) + ChromaDB (向量数据库) - **AI模型**: 本地嵌入模型 (默认使用阿里千问 Qwen3-Embedding-0.6B,支持中文优化) ## 项目结构 ``` llm-knowledge-base/ ├── README.md # 项目说明文档 ├── server/ # 后端目录 │ ├── requirements.txt # 项目依赖 │ ├── init_db.sql # 数据库初始化脚本 │ ├── config.py # 配置文件 │ ├── db_utils.py # 数据库工具类 │ ├── main.py # FastAPI主应用 │ └── llm_knowledge.db # SQLite数据库文件 └── web/ # 前端目录 ├── index.html # 前端入口HTML ├── package.json # NPM配置文件 └── src/ # 前端源码 ├── App.vue # Vue主组件 ├── components/ # 组件目录 └── main.js # 前端入口JS ``` ## 功能特性 1. **文本分类**: 用户可以创建自定义分类,并将文本存储到指定分类中 2. **向量搜索**: 利用ChromaDB和大模型(如阿里千问Qwen3-Embedding-0.6B)实现语义相似度搜索 3. **智能检索**: 通过提问快速查找相关文档内容 4. **文档管理**: 支持查看、管理文档和分类 5. **响应式设计**: 适配桌面和移动设备 ## 环境要求 - Python 3.13 - 足够的磁盘空间 (首次运行时需要下载嵌入模型,约1GB左右空间) - 可选: GPU支持 (可加速嵌入模型的推理速度) ## 安装与配置 ### 1. 克隆项目 ```bash # 进入项目目录 cd llm-knowledge-base ``` ### 2. 安装Python依赖与GPU支持配置(针对CUDA 12.8) 项目支持使用GPU加速模型推理,特别是对于CUDA 12.8版本进行了优化。为了启用GPU支持,请执行以下步骤: 1. 确保您的系统已安装CUDA 12.8和对应的NVIDIA驱动 2. 安装支持CUDA 12.8的PyTorch版本(已优化至最新兼容版): ```bash pip install torch torchvision torchaudio --index-url https://mirrors.nju.edu.cn/pytorch/whl/cu128 ``` 3. 安装Python依赖 ```bash cd server # 进入server目录 pip install -r requirements.txt ``` 4. 验证GPU环境配置: ```bash python verify_gpu.py ``` 该验证脚本将检查CUDA版本、GPU可用性以及模型在GPU上的运行情况,并生成详细的验证报告。 ### 3. 配置数据库 系统默认使用SQLite作为关系型数据库,并自动创建数据库文件。无需额外配置。 ### 4. 配置环境变量 项目根目录提供了`.env.example`模板文件,您可以直接复制并重命名为`.env`: ```bash cp .env.example .env ``` 然后根据您的环境修改`.env`文件中的配置项。主要配置项包括: ```env # 数据库连接URL(可选,默认使用SQLite) DATABASE_URL=sqlite:///./data/llm_knowledge.db # ChromaDB持久化目录配置 CHROMA_PERSIST_DIR=./data/chroma_storage # 嵌入模型配置 - 默认为本地模型 EMBEDDING_METHOD=local # 可选值: local 或 openai # 本地嵌入模型配置(当EMBEDDING_METHOD=local时生效) # 默认使用阿里千问Qwen3-Embedding-0.6B,这是一个专门为中文优化的轻量级嵌入模型 LOCAL_EM_NAME=qwen/Qwen3-Embedding-0.6B LOCAL_EM_PATH=./local_models/qwen3-embedding-0.6b # 可选:如果需要使用OpenAI API # OPENAI_API_KEY=your_openai_api_key # OPENAI_EMBEDDING_MODEL=text-embedding-ada-002 ``` ### 5. 修改配置文件 根据实际情况修改`server/config.py`中的配置项。 ### 6. 国内用户专用配置(可选) 如果您在国内无法直接访问huggingface,可以使用以下两种方式解决: #### 方式一:从本地加载模型(推荐) 1. 运行提供的下载脚本,从国内镜像站点下载千问嵌入模型: ```bash cd server python download_models.py ``` 脚本会自动从魔搭社区(modelscope)下载模型并保存到本地目录。 2. 在`.env`文件中设置本地模型路径: ```env LOCAL_EM_PATH=./local_models/qwen3-embedding-0.6b ``` #### 方式二:使用Hugging Face镜像源 在`.env`文件中添加Hugging Face镜像源配置: ```env HF_ENDPOINT=https://hf-mirror.com ``` ## 启动应用 ### 启动后端服务 ```bash # 进入server目录 cd server # 开发模式 uvicorn main:app --reload --host 0.0.0.0 --port 8000 # 或直接运行 python main.py ``` ### 启动前端服务 ```bash # 进入web目录 cd web # 安装依赖(推荐使用pnpm) pnpm install # 开发模式启动 pnpm run dev # 构建生产版本 pnpm run build # 预览生产版本 pnpm run preview ``` 然后在浏览器中访问 `http://localhost:3000`(开发模式)或 `http://localhost:4173`(预览模式) ## API端点 ### 分类管理 - `POST /categories/`: 创建新分类 - `GET /categories/`: 获取所有分类 - `GET /categories/{category_id}`: 获取指定分类 ### 文档管理 - `POST /documents/`: 创建新文档 - `GET /documents/category/{category_id}`: 获取指定分类下的文档 - `GET /documents/{document_id}`: 获取文档详情 - `PUT /documents/{document_id}/category/{category_id}`: 更新文档分类 ### 搜索功能 - `POST /search/`: 搜索相似文档 ## 使用指南 1. **创建分类**: 点击"添加分类"按钮,输入分类名称和描述 2. **添加文档**: 在输入框中粘贴或输入文本内容,选择分类(可选),然后点击"保存文档" 3. **搜索文档**: 在搜索框中输入关键词,点击搜索按钮,系统会返回相关文档 4. **查看文档**: 点击搜索结果中的文档,可以查看完整内容 5. **管理分类**: 点击分类列表中的分类,可以查看该分类下的所有文档 ## 注意事项 1. 首次使用前需要配置OpenAI API密钥 2. 系统默认使用SQLite作为数据库,无需额外安装 3. 开发环境下,CORS配置为允许所有来源,生产环境应限制访问来源 4. 对于大量文档,建议优化数据库索引以提高搜索性能 ## 许可证 MIT License