# ai-qa-system **Repository Path**: fengwei232/ai-qa-system ## Basic Information - **Project Name**: ai-qa-system - **Description**: AI问答系统 - 基于FastAPI和Vue.js的智能问答平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-23 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI问答系统 一个基于FastAPI和Vue.js构建的智能问答平台,支持用户注册登录、实时对话、文件上传、对话历史管理等功能。 ## 🚀 功能特性 - ✅ **用户认证系统** - 支持用户注册、登录、个人资料管理 - ✅ **实时聊天对话** - 基于WebSocket的实时AI对话 - ✅ **对话历史管理** - 保存和查看历史对话记录 - ✅ **文件上传支持** - 支持图片和文档上传 - ✅ **响应式UI设计** - 适配桌面和移动设备 - ✅ **主题切换** - 支持明暗主题切换 - 🔄 **LangChain集成** - 正在开发中 ## 🛠️ 技术栈 ### 后端 - **FastAPI** - 现代、快速的Web框架 - **SQLAlchemy** - ORM数据库操作 - **MySQL/SQLite** - 数据存储 - **JWT** - 用户认证 - **WebSocket** - 实时通信 - **Uvicorn** - ASGI服务器 ### 前端 - **Vue.js 3** - 渐进式JavaScript框架 - **Element Plus** - Vue 3组件库 - **Pinia** - 状态管理 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 - **Socket.IO** - WebSocket客户端 - **Vite** - 构建工具 ## 📦 安装和运行 ### 环境要求 - Python 3.8+ - Node.js 16+ - MySQL 8.0+ (可选,默认使用SQLite) ### 1. 克隆项目 ```bash git clone https://github.com/your-username/ai-qa-system.git cd ai-qa-system ``` ### 2. 后端设置 #### 安装依赖 ```bash cd backend pip install -r requirements.txt ``` #### 配置环境变量 ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,配置数据库等信息 ``` #### 数据库设置(可选 - MySQL) ```bash # 如果使用MySQL,先创建数据库 mysql -u root -p < init_mysql.sql # 测试数据库连接 python test_mysql_connection.py ``` #### 启动后端服务 ```bash python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ### 3. 前端设置 #### 安装依赖 ```bash cd frontend npm install ``` #### 启动开发服务器 ```bash npm run dev ``` ### 4. 访问应用 - 前端地址: http://localhost:3000 - 后端API: http://localhost:8000 - API文档: http://localhost:8000/docs ## 📁 项目结构 ``` ai-qa-system/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API路由 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # 数据验证 │ │ ├── services/ # 业务逻辑 │ │ └── websocket/ # WebSocket处理 │ ├── static/uploads/ # 文件上传目录 │ ├── requirements.txt # Python依赖 │ └── .env # 环境配置 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # 状态管理 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ ├── package.json # Node.js依赖 │ └── vite.config.js # 构建配置 ├── 技术文档.md # 详细技术文档 └── README.md # 项目说明 ``` ## 🔧 配置说明 ### 后端配置 (.env) ```bash # 数据库配置 DB_TYPE=mysql # 数据库类型: mysql 或 sqlite DB_HOST=localhost DB_PORT=3306 DB_USER=qa_user DB_PASSWORD=qa_password DB_NAME=qa_system # JWT配置 SECRET_KEY=your-secret-key-change-this-in-production ACCESS_TOKEN_EXPIRE_MINUTES=30 # 文件上传配置 UPLOAD_DIR=./static/uploads MAX_FILE_SIZE=10485760 # 10MB # 其他配置 DEBUG=True LOG_LEVEL=INFO ``` ### 前端配置 前端配置主要在 `vite.config.js` 中,包括代理设置和构建选项。 ## 📚 API文档 启动后端服务后,可以访问以下地址查看API文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc 主要API接口: - `POST /auth/register` - 用户注册 - `POST /auth/login` - 用户登录 - `GET /auth/me` - 获取当前用户信息 - `GET /conversations` - 获取对话列表 - `POST /conversations` - 创建新对话 - `POST /chat` - 发送消息 - `WS /ws/chat` - WebSocket聊天连接 ## 🔒 安全特性 - JWT令牌认证 - 密码bcrypt加密 - CORS跨域保护 - 文件上传类型限制 - SQL注入防护 - XSS攻击防护 ## 🚀 部署 ### Docker部署(推荐) ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d ``` ### 手动部署 1. 配置生产环境数据库 2. 设置环境变量 3. 构建前端项目: `npm run build` 4. 启动后端服务: `uvicorn app.main:app --host 0.0.0.0 --port 8000` 5. 配置Nginx反向代理 ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支: `git checkout -b feature/AmazingFeature` 3. 提交更改: `git commit -m 'Add some AmazingFeature'` 4. 推送到分支: `git push origin feature/AmazingFeature` 5. 提交Pull Request ## 📝 开发计划 - [ ] LangChain集成 - [ ] 文档知识库 - [ ] 多模态支持(图片、语音) - [ ] 群组聊天功能 - [ ] 消息搜索功能 - [ ] 移动端APP ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue - 发送邮件到: your-email@example.com ## 🙏 致谢 感谢所有为这个项目做出贡献的开发者和开源社区。 --- ⭐ 如果这个项目对你有帮助,请给它一个星标!