# chat **Repository Path**: hou-libin/chat ## Basic Information - **Project Name**: chat - **Description**: 这是一个简易的聊天小程序 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Chat Java项目 一个基于 Java 和 Spring Boot 的智能聊天应用,支持多 AI 模型、用户认证、会话管理。 > 📖 **开发规范**: 请查看 [Java开发规范.md](./Java开发规范.md) 了解项目的代码规范和最佳实践。 ### 功能特性 #### 核心功能 ✅ 多 AI 模型支持​ - OpenAI GPT、阿里云千问、ChatGLM ✅ 用户认证系统​ - 注册、登录、Token 管理 ✅ 会话管理​ - 多会话支持、上下文维护 ✅ 智能对话​ - 支持连续对话、上下文理解 #### 高级功能 🔄 自动模型切换​ - 服务不可用时自动降级 📊 使用量统计​ - 每日调用限制和用量监控 🔒 隐私保护​ - 本地会话存储,不保存用户数据 ### 项目结构 ``` src/main/java/org/tree ├── config/ # 配置类 │ ├── AppConfig.java │ └── SecurityConfig.java ├── controller/ # REST 控制器 │ ├── AuthController.java │ ├── ChatController.java │ ├── ImageController.java │ └── SessionController.java ├── core/ # 核心接口 │ ├── AIService.java │ ├── ChatClient.java │ └── AuthenticatedChatClient.java ├── dto/ # 数据传输对象 │ ├── LoginRequest.java │ ├── ApiResponse.java │ └── ChatRequestDTO.java ├── exception/ # 异常处理 │ ├── GlobalExceptionHandler.java │ └── AuthException.java ├── model/ # 数据模型 │ ├── User.java │ ├── ChatMessage.java │ ├── ConversationSession.java │ └── AuthToken.java ├── service/ # 业务服务 │ ├── OpenAIService.java │ ├── QwenService.java │ ├── AuthenticationService.java │ └── ContextManager.java └── util/ # 工具类 ├── HttpUtil.java └── JsonUtil.java ``` ### API 使用指南 #### 认证接口 - 用户注册 ```` POST /api/auth/register Content-Type: application/json { "username": "testuser", "email": "test@example.com", "password": "password123" } ```` - 用户登录 ```` POST /api/auth/login Content-Type: application/json { "email": "test@example.com", "password": "password123" } 响应示例: { "success": true, "message": "登录成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expiresAt": "2024-01-07T12:00:00" } } ```` #### 聊天接口 - 发送消息 ```` POST /api/chat/message Authorization: Bearer {token} Content-Type: application/json { "message": "你好,请介绍一下Java", "model": "qwen-turbo", "useSearch": false } ```` - 获取会话列表 ```` GET /api/sessions Authorization: Bearer {token} ```` - 切换会话 ```` PUT /api/sessions/{sessionId}/switch Authorization: Bearer {token} ```` ### 致谢 本项目在开发过程中参考了 [许展玮/Chatanywhere](https://gitee.com/xu-zhanwei/chatanywhere) 项目的设计与实现思路,特此感谢。