# labthinker-qoder **Repository Path**: lonlier/labthinker-qoder ## Basic Information - **Project Name**: labthinker-qoder - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Enterprise Knowledge Base System 企业级知识库管理系统,支持多模态内容管理、全文/语义混合搜索、RAG 智能问答和自动化知识爬取。 ## 技术栈 | 层级 | 技术 | |------|------| | 前端 | Vue 3 + TypeScript + Element Plus + TipTap | | 后端 | Python + FastAPI + SQLAlchemy (async) | | 数据库 | MySQL 8.0 | | 缓存 | Redis 7 | | 对象存储 | MinIO (S3 兼容) | | 搜索引擎 | Elasticsearch 8.12 (BM25 + kNN 向量检索) | | 异步任务 | Celery | | 容器化 | Docker Compose | ## 系统架构 ``` ┌─────────────────────────────────────────────┐ │ Frontend │ │ Vue 3 + TypeScript + Vite │ ├─────────────────────────────────────────────┤ │ Backend │ │ FastAPI (API) → Service → Repository │ ├──────┬──────┬───────────┬───────────────────┤ │ MySQL│ Redis│ MinIO │ Elasticsearch │ │(数据) │(缓存)│ (文件存储) │ (全文+向量搜索) │ └──────┴──────┴───────────┴───────────────────┘ ``` ## 核心功能 - **内容管理** - TipTap 富文本编辑器,支持图片/附件上传、版本历史、草稿/发布/归档 - **分类与标签** - 树形分类体系 + 多标签灵活组织 - **多模式搜索** - 关键词(BM25)、语义(kNN 向量)、混合搜索,自动补全建议 - **RAG 智能问答** - 基于知识库内容的 AI 问答,SSE 流式响应,来源引用追溯 - **自动爬取** - 支持网页/RSS/Sitemap/API 多种爬取方式,Cron 定时调度 - **协作功能** - 嵌套评论、点赞、收藏 - **权限控制** - 三级 RBAC (admin > editor > viewer),JWT + Refresh Token 认证 - **暗色主题** - 完整的 Light/Dark 主题切换 ## 快速启动 ### 前置要求 - Docker & Docker Compose - Python 3.10+ - Node.js 18+ ### 1. 启动基础设施 ```bash docker-compose up -d ``` 启动 MySQL (3306)、Redis (6379)、MinIO (9000/9001)、Elasticsearch (9200)。 ### 2. 启动后端 ```bash cd backend # 创建虚拟环境 python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量 (复制并修改) cp .env.example .env # 数据库迁移 alembic upgrade head # 启动 python -m app.main ``` 后端运行在 `http://localhost:8000`,API 文档: `http://localhost:8000/api/v1/docs` 默认管理员账号: `admin` / `admin123` ### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端运行在 `http://localhost:5173` ### 4. (可选) 启动 Celery Worker ```bash cd backend celery -A app.tasks.celery_app worker --loglevel=info ``` 用于异步任务:文章索引、Embedding 生成、知识爬取。 ## 项目结构 ``` labthinker-qoder/ ├── backend/ │ ├── app/ │ │ ├── api/v1/ # API 路由 (auth, articles, search, rag, admin...) │ │ ├── core/ # 安全、权限、异常处理、依赖注入 │ │ ├── db/ # 数据库连接、基类、初始化 │ │ ├── models/ # SQLAlchemy ORM 模型 │ │ ├── schemas/ # Pydantic 请求/响应模型 │ │ ├── repositories/ # 数据访问层 (DAO) │ │ ├── services/ # 业务逻辑层 │ │ ├── integrations/ # 外部服务客户端 (MinIO, ES, Redis, LLM) │ │ ├── tasks/ # Celery 异步任务 │ │ ├── config.py # 配置管理 │ │ └── main.py # 应用入口 │ ├── alembic/ # 数据库迁移 │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── api/ # API 请求模块 │ │ ├── assets/ # 静态资源 & 全局样式 │ │ ├── components/ # 通用组件 (ArticleEditor, FileUploader) │ │ ├── layouts/ # 页面布局 │ │ ├── router/ # 路由配置 & 守卫 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── types/ # TypeScript 类型定义 │ │ └── views/ # 页面视图 │ ├── index.html │ ├── vite.config.ts │ └── package.json └── docker-compose.yml ``` ## API 概览 | 模块 | 路径 | 说明 | |------|------|------| | 认证 | `/api/v1/auth/*` | 登录、注册、Token 刷新 | | 文章 | `/api/v1/articles/*` | CRUD、状态管理、版本、点赞/收藏 | | 分类 | `/api/v1/categories/*` | 树形分类 CRUD | | 标签 | `/api/v1/tags/*` | 标签 CRUD | | 评论 | `/api/v1/comments/*` | 嵌套评论 CRUD | | 媒体 | `/api/v1/media/*` | 文件上传与管理 | | 搜索 | `/api/v1/search/*` | 关键词/语义/混合搜索、自动补全 | | RAG | `/api/v1/rag/*` | 智能问答 (SSE)、内容生成、摘要 | | 管理 | `/api/v1/admin/*` | 系统统计、用户管理、爬取任务 | ## 环境变量 关键配置项 (在 `backend/.env` 中设置): | 变量 | 说明 | 默认值 | |------|------|--------| | `DB_PASSWORD` | MySQL 密码 | `kb_password` | | `JWT_SECRET_KEY` | JWT 签名密钥 | 需修改 | | `LLM_API_KEY` | LLM API 密钥 | 需配置 (RAG 功能) | | `LLM_API_BASE` | LLM API 地址 | `https://api.openai.com/v1` | | `LLM_MODEL` | LLM 模型名称 | `gpt-3.5-turbo` | | `EMBEDDING_MODEL` | 向量模型 | `text-embedding-ada-002` | ## License MIT