# TrustSecure AI **Repository Path**: deeyie/trust-secure-ai ## Basic Information - **Project Name**: TrustSecure AI - **Description**: TrustSecure AI - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-02 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 阿里千问大模型AI对话业务对接 ## 项目概述 本项目实现了TS-app微信小程序与TS-backend后端服务的阿里千问大模型AI对话业务对接,支持连续对话、上下文管理、消息发送状态指示、网络异常处理及重试机制、对话历史记录本地存储等功能。 ## 技术栈 ### 前端 - Vue 3 + TypeScript + UniApp - Pinia 状态管理 - HTTPS 通信 ### 后端 - Spring Boot + MySQL + MyBatis - 阿里千问大模型 API - HTTPS/MMTLS 支持 ## 功能特性 1. **AI对话功能** - 支持与阿里千问大模型的实时对话 - 连续对话上下文管理 - 支持多种AI模型选择 2. **前端界面** - 友好的聊天界面设计 - 消息加载状态指示 - 网络异常处理及重试机制 - 对话历史记录本地存储 3. **后端服务** - 千问大模型API对接 - 会话管理 - 消息存储 - SSE实时消息推送 4. **安全性** - HTTPS/MMTLS加密通信 - API密钥安全管理 - 敏感信息后端中转 ## 接口文档 ### 1. 获取AI聊天会话列表 **请求URL**:`/ai/chat/sessions/{userId}` **请求方式**:GET **请求参数**: | 参数名 | 类型 | 描述 | 必选 | | ------ | ---- | ---- | ---- | | userId | Long | 用户ID | 是 | **返回结果**: ```json [ { "sessionId": 1, "userId": 1, "sessionName": "新会话", "status": 0, "aiModel": "qwen-turbo", "createTime": "2023-01-01T00:00:00Z", "updateTime": "2023-01-01T00:00:00Z", "lastMessageTime": "2023-01-01T00:00:00Z", "messageCount": 2, "lastMessageContent": "你好" } ] ``` ### 2. 创建AI聊天会话 **请求URL**:`/ai/chat/session` **请求方式**:POST **请求参数**: | 参数名 | 类型 | 描述 | 必选 | | ------ | ---- | ---- | ---- | | userId | Long | 用户ID | 是 | | aiModel | String | AI模型类型 | 否 | | sessionName | String | 会话名称 | 否 | **返回结果**: ```json { "sessionId": 1, "userId": 1, "sessionName": "新会话", "status": 0, "aiModel": "qwen-turbo", "createTime": "2023-01-01T00:00:00Z", "updateTime": "2023-01-01T00:00:00Z", "lastMessageTime": "2023-01-01T00:00:00Z" } ``` ### 3. 发送AI聊天消息 **请求URL**:`/ai/chat/message` **请求方式**:POST **请求参数**: | 参数名 | 类型 | 描述 | 必选 | | ------ | ---- | ---- | ---- | | sessionId | Long | 会话ID | 否 | | content | String | 消息内容 | 是 | | messageType | Integer | 消息类型 | 否 | | aiModel | String | AI模型类型 | 否 | | sessionName | String | 会话名称 | 否 | | userId | Long | 用户ID | 是 | **返回结果**: ```json [ { "messageId": 1, "sessionId": 1, "senderId": "1", "senderType": 0, "content": "你好", "messageType": 0, "status": 1, "createTime": "2023-01-01T00:00:00Z" }, { "messageId": 2, "sessionId": 1, "senderId": "AI", "senderType": 1, "content": "你好,有什么可以帮助你的吗?", "messageType": 0, "status": 1, "createTime": "2023-01-01T00:00:01Z" } ] ``` ### 4. 获取AI聊天历史记录 **请求URL**:`/ai/chat/messages/{sessionId}` **请求方式**:GET **请求参数**: | 参数名 | 类型 | 描述 | 必选 | | ------ | ---- | ---- | ---- | | sessionId | Long | 会话ID | 是 | **返回结果**: ```json [ { "messageId": 1, "sessionId": 1, "senderId": "1", "senderType": 0, "content": "你好", "messageType": 0, "status": 1, "createTime": "2023-01-01T00:00:00Z" }, { "messageId": 2, "sessionId": 1, "senderId": "AI", "senderType": 1, "content": "你好,有什么可以帮助你的吗?", "messageType": 0, "status": 1, "createTime": "2023-01-01T00:00:01Z" } ] ``` ### 5. SSE实时消息推送 **请求URL**:`/ai/chat/sse/{userId}` **请求方式**:GET **请求参数**: | 参数名 | 类型 | 描述 | 必选 | | ------ | ---- | ---- | ---- | | userId | Long | 用户ID | 是 | **返回结果**: ``` data: 你好,有什么可以帮助你的吗? data: 这是一条实时消息 ``` ## MMTLS配置说明 ### 1. 什么是MMTLS MMTLS(Mobile Multi-path TLS)是一种增强型的TLS协议,提供了更高的安全性和可靠性,适用于移动应用场景。 ### 2. 配置步骤 #### 2.1 生成证书 ```bash # 生成服务器私钥 openssl genrsa -out server.key 2048 # 生成服务器证书请求 openssl req -new -key server.key -out server.csr # 生成自签名证书 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # 生成PKCS12格式证书 openssl pkcs12 -export -in server.crt -inkey server.key -out keystore.p12 -name tomcat # 生成信任证书库 keytool -import -alias server -file server.crt -keystore truststore.p12 -storetype PKCS12 ``` #### 2.2 配置Spring Boot 在`application.yml`中添加以下配置: ```yaml server: port: 443 ssl: # 启用 HTTPS enabled: true # 证书路径 key-store: classpath:keystore.p12 # 证书密码 key-store-password: changeit # 证书类型 key-store-type: PKCS12 # 密钥别名 key-alias: tomcat # 信任证书库路径 trust-store: classpath:truststore.p12 # 信任证书库密码 trust-store-password: changeit # 信任证书库类型 trust-store-type: PKCS12 # 客户端认证模式:need-需要认证,want-可选认证,none-不需要认证 client-auth: want # 启用 TLS 1.3 protocol: TLSv1.3 # 启用 MMTLS 支持 enabled-protocols: TLSv1.2, TLSv1.3 ciphers: TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ``` #### 2.3 客户端配置 前端使用UniApp的`uni.request` API时,会自动支持HTTPS,无需额外配置。 ### 3. 兼容性测试 | 浏览器/平台 | 兼容性 | 备注 | | ------------ | ------ | ---- | | Chrome 80+ | 支持 | 完美支持HTTPS/HTTP2 | | Safari 14+ | 支持 | 完美支持HTTPS/HTTP2 | | 微信小程序 | 支持 | 支持HTTPS,不支持HTTP2 | | iOS App | 支持 | 完美支持HTTPS/HTTP2 | | Android App | 支持 | 完美支持HTTPS/HTTP2 | ## 部署指南 ### 1. 后端部署 #### 1.1 环境准备 - JDK 17+ - MySQL 8+ - Maven 3.6+ #### 1.2 配置文件 修改`application.yml`文件中的配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/ts_db?useSSL=false&serverTimezone=UTC username: root password: password # 阿里千问大模型API配置 aliyun: access-key: your_access_key access-secret: your_access_secret region-id: cn-beijing dashscope: api-endpoint: dashscope.cn-beijing.aliyuncs.com model: qwen-turbo ``` #### 1.3 构建和运行 ```bash # 构建项目 cd TS-backend mvn clean package # 运行项目 java -jar ts-system/target/ts-system-1.0.6.jar ``` ### 2. 前端部署 #### 2.1 环境准备 - Node.js 16+ - pnpm #### 2.2 配置文件 修改`.env.production`文件中的配置: ```env # API 服务器的 URL VITE_APP_API_URL = https://api.starfinding.top ``` #### 2.3 构建和发布 ```bash # 安装依赖 cd TS-app pnpm install # 构建项目 pnpm run build:mp-weixin # 发布到微信小程序 # 使用微信开发者工具导入dist/build/mp-weixin目录 ``` ## 测试用例 ### 1. 单元测试 ```bash # 运行后端单元测试 cd TS-backend mvn test ``` ### 2. 集成测试 1. 启动后端服务 2. 启动前端开发服务器 3. 测试AI对话功能 4. 测试连续对话上下文 5. 测试网络异常处理 6. 测试对话历史记录本地存储 ## 安全注意事项 1. **API密钥安全** - 不要将API密钥硬编码到代码中 - 使用环境变量或配置文件管理API密钥 - 定期更换API密钥 2. **HTTPS配置** - 确保生产环境使用有效的SSL证书 - 禁用不安全的TLS版本和加密算法 - 配置适当的客户端认证模式 3. **数据安全** - 敏感信息加密存储 - 实现适当的访问控制 - 定期备份数据 ## 常见问题 ### 1. 为什么AI回复很慢? - 可能是网络延迟问题 - 可能是AI模型处理复杂请求需要时间 - 检查后端日志,查看是否有API调用异常 ### 2. 为什么对话历史丢失? - 检查本地存储是否正常工作 - 检查后端数据库连接 - 检查会话ID是否正确 ### 3. 如何切换AI模型? - 在创建会话时指定AI模型 - 在会话设置中修改AI模型 ## 联系方式 如有问题或建议,请联系: - Email: deeyie11@163.com - 项目地址: https://github.com/starfinding/trust-secure-ai ## 许可证 本项目采用MIT许可证。