# knowledge_base **Repository Path**: honghh/knowledge_base ## Basic Information - **Project Name**: knowledge_base - **Description**: 从零搭建企业级本地知识库:FastAPI + ChromaDB + Ollama 完全离线方案 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 本地知识库 基于 Ollama 本地大模型 + ChromaDB 向量数据库的 Web 知识库应用。 ## 功能特点 - 📄 支持 PDF、TXT、MD 等文档上传 - 🔍 基于向量的文档检索 - 💬 集成 Ollama 本地模型进行问答 - 🌐 简洁的 Web 界面 - 🚀 完全本地运行,数据隐私安全 ## 环境要求 - Python 3.8+ - Ollama 服务已运行(默认 http://192.168.31.6:11434) ## 快速启动 ### Windows ```bash # 直接运行启动脚本 python run.py ``` ### Streamlit 调试界面 ```bash pip install -e . streamlit run src/knowledge_base/app_streamlit.py ``` ### 手动启动 #### Windows ```bash # 创建虚拟环境 python -m venv venv # 激活环境 venv\Scripts\activate # 安装依赖 pip install -e . # 启动服务 python run.py ``` #### Ubuntu/Linux ```bash # 创建虚拟环境 python3 -m venv venv # 激活环境 source venv/bin/activate # 安装依赖 pip install -e . # 启动服务 python run.py ``` **注意:数据持久化** Linux 系统建议使用绝对路径保存向量数据和上传文件,避免因启动目录变化导致数据丢失: ```bash # 创建数据目录 mkdir -p ~/kb_data # 使用绝对路径启动 export CHROMA_DB_PATH=/home/$USER/kb_data/chroma_db export UPLOAD_DIR=/home/$USER/kb_data/uploads python run.py ``` ## 使用方法 1. **启动 Ollama**:确保 Ollama 服务在 `http://192.168.31.6:11434` 运行 2. **启动知识库**:运行 `python run.py` 3. **访问界面**:打开浏览器访问 `http://localhost:8000` 4. **上传文档**:拖拽或选择 PDF/TXT 文件上传 5. **开始问答**:在对话框中输入问题,AI 将基于上传的文档回答 ## 配置说明 可通过环境变量修改配置: | 变量名 | 默认值 | 说明 | |--------|--------|------| | `OLLAMA_BASE_URL` | http://192.168.31.6:11434 | Ollama API 地址 | | `OLLAMA_MODEL` | deepseek-r1:1.5b | 使用的模型 | | `CHROMA_DB_PATH` | ./chroma_db | 向量数据库路径 | | `UPLOAD_DIR` | ./uploads | 上传文件存储路径 | | `CHUNK_SIZE` | 500 | 文档分块大小 | | `CHUNK_OVERLAP` | 50 | 分块重叠大小 | | `TOP_K` | 5 | 检索返回的最相关块数 | ## 项目结构 ``` . ├── main.py # FastAPI 主应用 ├── ollama_client.py # Ollama API 客户端 ├── document_processor.py # 文档处理模块 ├── vector_store.py # ChromaDB 向量存储 ├── config.py # 配置文件 ├── requirements.txt # 依赖清单 ├── start.bat # Windows 启动脚本 └── templates/ └── index.html # Web 界面 ``` ## API 接口 | 接口 | 方法 | 说明 | |------|------|------| | `/` | GET | Web 界面 | | `/api/health` | GET | 健康检查 | | `/api/upload` | POST | 上传文档 | | `/api/documents` | GET | 获取文档列表 | | `/api/documents/{source}` | DELETE | 删除文档 | | `/api/chat` | POST | 知识库问答 | | `/api/search` | POST | 仅搜索文档 |