# 多会话AI聊天助手 **Repository Path**: ss123true/PythonChat ## Basic Information - **Project Name**: 多会话AI聊天助手 - **Description**: 多会话AI聊天助手 调用大模型 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多模态AI聊天应用 一个基于Python FastAPI和Vue.js 3的全栈多模态AI聊天应用,支持多会话管理、流式聊天、文件上传和智能会话标题生成。 ## 项目特色 - 🚀 **多会话窗口**:支持同时打开多个聊天会话,独立管理 - 💬 **流式聊天**:实时流式输出,提供更好的用户体验 - 📁 **文件上传**:支持图片和文档上传,智能处理多模态内容 - 🔍 **联网搜索**:可选的联网搜索功能,增强AI回答准确性 - 🎯 **智能标题**:AI自动生成会话标题,便于管理 - 🔒 **用户认证**:完整的登录/注册系统,数据隔离安全 ## 项目结构 ``` PythonChat/ ├── backend/ # Python FastAPI后端 │ ├── src/ │ │ ├── routes/ # API路由模块 │ │ │ ├── auth.py # 认证相关API │ │ │ └── chat.py # 聊天相关API │ │ ├── ai_models.py # AI模型集成 │ │ ├── auth.py # 认证逻辑 │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库模型 │ │ ├── main.py # 应用入口 │ │ └── redis_service.py # Redis服务 │ ├── pyproject.toml # Python依赖配置 │ ├── .env.example # 环境变量示例 │ └── README.md # 后端详细文档 ├── frontend/ # Vue 3前端 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── login/ # 登录模块 │ │ │ └── chat/ # 聊天模块 │ │ ├── stores/ # Pinia状态管理 │ │ ├── api/ # API接口封装 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ ├── package.json # Node.js依赖配置 │ ├── vite.config.js # Vite构建配置 │ └── .env.example # 环境变量示例 ├── start_backend.bat # Windows后端启动脚本 ├── start_frontend.bat # Windows前端启动脚本 └── README.md # 项目主文档 ``` ## 核心功能 ### 后端功能 (FastAPI) - ✅ **用户认证系统**:JWT token认证,安全的登录/注册流程 - ✅ **会话管理**:多用户会话隔离,支持会话置顶/删除 - ✅ **消息存储**:SQLite数据库持久化存储聊天记录 - ✅ **流式聊天**:Server-Sent Events (SSE) 实现实时流式输出 - ✅ **文件上传**:支持图片、文档上传,自动文件类型检测 - ✅ **AI集成**:集成LangChain + LangGraph,支持多模态AI处理 - ✅ **Redis缓存**:会话状态缓存,提升性能 - ✅ **智能标题**:AI自动生成会话标题 ### 前端功能 (Vue 3 + Pinia) - ✅ **多窗口聊天**:可同时打开多个会话窗口 - ✅ **响应式设计**:支持窗口最大化/最小化 - ✅ **实时消息**:流式消息显示,支持消息重试 - ✅ **文件预览**:图片预览,文档类型识别 - ✅ **搜索开关**:可控制是否启用联网搜索 - ✅ **会话管理**:会话列表、创建、切换、删除 - ✅ **用户界面**:基于Ant Design Vue的现代化UI ## 技术栈 ### 后端技术栈 - **框架**:FastAPI (Python 3.8+) - **数据库**:SQLite + SQLAlchemy ORM - **缓存**:Redis - **AI集成**:LangChain 1.0 + LangGraph 1.0 - **认证**:JWT + bcrypt密码加密 - **文件处理**:FastAPI UploadFile + 自定义文件存储 - **部署**:Uvicorn ASGI服务器 ### 前端技术栈 - **框架**:Vue 3 + Composition API - **状态管理**:Pinia - **UI组件**:Ant Design Vue - **构建工具**:Vite - **路由**:Vue Router - **HTTP客户端**:Axios - **图标**:Ant Design Icons Vue ## 项目运行效果 以下是项目的主要界面展示: ### 多会话聊天界面 ![多会话聊天界面](./0.png) *支持同时打开多个聊天窗口,每个会话独立管理* ### 会话置顶功能 ![会话置顶功能](./1.png) *置顶会话显示在列表顶部,带有醒目的视觉标识* ## 快速开始 ### 环境要求 - Python 3.8+ - Node.js 16+ - Redis 6.0+ ### 后端启动 1. **安装Python依赖** ```bash cd backend uv sync ``` 2. **配置环境变量** ```bash cp .env.example .env # 编辑.env文件,配置AI API密钥等参数 ``` 3. **启动Redis服务** ```bash # Windows: 下载并启动Redis服务 # 或使用 start_backend.bat 脚本(包含Redis启动) ``` 4. **启动后端服务** ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` ### 前端启动 1. **安装Node.js依赖** ```bash cd frontend npm install ``` 2. **配置环境变量** ```bash cp .env.example .env # 配置VITE_API_BASE_URL等参数 ``` 3. **启动开发服务器** ```bash npm run dev ``` ### 使用批处理脚本(Windows) ```bash # 启动后端(包含Redis) start_backend.bat # 启动前端 start_frontend.bat ``` ## API接口文档 启动后端服务后,访问以下地址查看API文档: - **Swagger UI**: http://localhost:8000/docs - **ReDoc**: http://localhost:8000/redoc ## 核心API接口 ### 认证相关 - `POST /auth/register` - 用户注册 - `POST /auth/login` - 用户登录 - `POST /auth/logout` - 用户退出 - `GET /auth/me` - 获取当前用户信息 ### 聊天相关 - `GET /chat/sessions` - 获取会话列表 - `POST /chat/sessions` - 创建新会话 - `GET /chat/sessions/{session_id}/messages` - 获取会话消息 - `POST /chat/sessions/{session_id}/send-message-stream` - 发送流式消息 - `GET /chat/upload-config` - 获取上传配置 - `POST /chat/upload-file` - 上传文件 ## 开发特性 ### 多会话架构 - 前端支持同时打开多个聊天窗口 - 每个会话独立的状态管理 - 智能会话切换和消息隔离 ### 流式处理 - 实时消息流式输出 - 支持消息中断和重试 - 优化的用户体验 ### 文件处理 - 支持多种文件格式上传 - 自动文件类型检测 - 安全的文件存储机制 ## 配置说明 ### 后端配置 (.env) ```env # 应用配置 APP_NAME=多模态AI聊天应用 DEBUG=true # 数据库配置 DATABASE_URL=sqlite:///./chat.db # Redis配置 REDIS_URL=redis://localhost:6379 # AI模型配置 OPENAI_API_KEY=your_openai_key OPENAI_BASE_URL=your_openai_base_url # 文件上传配置 MAX_FILE_SIZE=5242880 ALLOWED_EXTENSIONS=txt,pdf,doc,docx,jpg,jpeg,png,gif ``` ### 前端配置 (.env) ```env VITE_API_BASE_URL=http://localhost:8000 ``` ## 开发进度 - ✅ **基础架构**:前后端分离架构完成 - ✅ **用户认证**:完整的登录注册系统 - ✅ **会话管理**:多会话支持实现 - ✅ **流式聊天**:实时消息流式输出 - ✅ **文件上传**:多模态文件处理 - ✅ **UI界面**:现代化聊天界面 - 🔄 **优化完善**:性能优化和功能增强 ## 贡献指南 欢迎提交Issue和Pull Request来改进这个项目。 ## 许可证 MIT License --- **开始使用**:按照快速开始指南配置环境,即可体验多模态AI聊天功能!