# CBCC全栈实践-AI问答助手 **Repository Path**: mdalang/cbcc_rag ## Basic Information - **Project Name**: CBCC全栈实践-AI问答助手 - **Description**: AI智能问答助手是一款基于RAG(检索增强生成)技术的智能问答系统,支持用户上传PDF和Word文档,通过大语言模型进行智能问答。系统采用前后端分离架构,提供流式输出、文档预览、会话管理等核心功能 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-26 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI智能问答助手系统 基于RAG技术的智能文档问答系统,支持上传PDF/Word文档,通过向量检索和大语言模型实现智能问答。 ## 技术架构 ### 后端 - **框架**: FastAPI + Uvicorn - **数据库**: SQLite + SQLAlchemy - **认证**: JWT + bcrypt - **文档解析**: PyPDF2 + python-docx - **向量数据库**: ChromaDB - **嵌入模型**: BAAI/bge-small-zh - **LLM**: 阿里云 Qwen3.5-Plus ### 前端 - **框架**: Vue 3 + TypeScript + Vite - **UI库**: Arco Design Vue - **样式**: Tailwind CSS - **状态管理**: Pinia ## 快速开始 ### 后端启动 ```bash # 进入后端目录 cd backend # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # 例如 .\env\Scripts\Activate.ps1 # Linux/Mac: source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 启动服务 python -m uvicorn app.main:app --reload --port 8000 ``` 后端API文档:http://localhost:8000/docs ### 前端启动 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端访问地址:http://localhost:5173 ## 功能特性 - 用户注册与登录 - 历史会话管理(创建、删除、切换) - 文档上传(支持PDF、Word格式) - 文档自动解析和向量化处理 - 基于文档内容的智能问答 - 答案来源引用展示 - 流式输出(打字机效果) - 响应式界面设计 ## 项目结构 ``` CBCC_AI/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API路由 │ │ │ ├── auth.py # 认证API │ │ │ ├── conversations.py # 会话API │ │ │ ├── documents.py # 文档API │ │ │ └── qa.py # 问答API │ │ ├── core/ # 核心配置 │ │ │ ├── config.py # 应用配置 │ │ │ └── database.py # 数据库连接 │ │ ├── models/ # ORM模型 │ │ ├── schemas/ # Pydantic模型 │ │ ├── services/ # 业务服务 │ │ │ ├── document_processor.py # 文档处理 │ │ │ ├── vector_store.py # 向量存储 │ │ │ ├── llm_service.py # LLM服务 │ │ │ ├── rag_service.py # RAG服务 │ │ │ └── conversation_service.py # 会话服务 │ │ ├── utils/ # 工具函数 │ │ └── main.py # 应用入口 │ ├── data/ # 数据存储 │ ├── uploads/ # 上传文件 │ ├── requirements.txt # Python依赖 │ └── .env # 环境变量 │ ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API封装 │ │ ├── assets/ # 静态资源 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ ├── types/ # TypeScript类型 │ │ ├── views/ # 页面组件 │ │ ├── App.vue │ │ └── main.ts │ ├── package.json │ ├── vite.config.ts │ └── tailwind.config.js │ └── README.md ``` ## API端点 ### 认证 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户 ### 会话管理 - `GET /api/conversations` - 获取会话列表 - `POST /api/conversations` - 创建会话 - `GET /api/conversations/{id}` - 获取会话详情 - `DELETE /api/conversations/{id}` - 删除会话 - `GET /api/conversations/{id}/messages` - 获取会话消息 ### 文档管理 - `POST /api/documents/upload` - 上传文档 - `GET /api/documents` - 获取文档列表 - `GET /api/documents/{id}/status` - 获取处理状态 - `DELETE /api/documents/{id}` - 删除文档 ### 问答 - `POST /api/qa/ask` - 同步问答 - `POST /api/qa/ask/stream` - 流式问答(SSE) ## 使用流程 1. 注册账户并登录 2. 创建新对话 3. 上传PDF或Word文档 4. 等待文档处理完成 5. 输入问题,获取AI回答 6. 查看答案来源引用 ## 注意事项 - 首次运行时,嵌入模型(BAAI/bge-small-zh)会自动下载,约100MB - 支持的文档格式:PDF、DOCX、DOC - 文档大小限制:10MB - 建议使用Chrome或Firefox浏览器