# ai-chat-backend **Repository Path**: wingahi/ai-chat-backend ## Basic Information - **Project Name**: ai-chat-backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Chat Backend ## 项目概述 这是AI聊天应用的后端服务,使用Spring Boot 3.5和Java 21开发,对接了阿里AI大模型和DeepSeek大模型,提供聊天API接口和文档转换功能。 ## 项目特点 - 支持多模型切换(阿里AI、DeepSeek) - 面向接口设计,易于扩展新的AI模型 - 完整的错误处理和日志记录 - 支持模型参数动态配置 - 高性能并发处理 - 提供文档转换功能(文本转Word/PPT、Word转PDF、图片转PDF、PPT转PDF) - 支持中文文档处理和显示 ## 技术栈 - Spring Boot 3.5 - Java 21 - 阿里AI SDK - DeepSeek API - Spring Data JPA - MySQL ## 环境要求 - JDK 21+ - Maven 3.6+ - MySQL 8.0+ ## 配置说明 ### 数据库配置 在`src/main/resources/application.properties`中配置数据库连接信息: ```properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/ai_chat?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=your-password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JPA配置 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect ``` ### AI大模型配置 在`src/main/resources/application.properties`中配置AI大模型的API密钥和端点: ```properties # 阿里AI大模型 ai.alibaba.api-key=your-alibaba-api-key ai.alibaba.endpoint=https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation ai.alibaba.model=qwen-plus # DeepSeek大模型 ai.deepseek.api-key=your-deepseek-api-key ai.deepseek.endpoint=https://api.deepseek.com/v1/chat/completions ai.deepseek.model=deepseek-chat # 默认大模型配置 (alibaba 或 deepseek) ai.default-model=alibaba ``` ## 运行步骤 1. 进入ai-chat-backend目录: ```bash cd ai-chat-backend ``` 2. 执行Maven构建命令: ```bash mvn clean install ``` 3. 运行Spring Boot应用: ```bash mvn spring-boot:run ``` 或使用Java命令运行生成的JAR文件: ```bash java -jar target/springboot-ai-demo-0.0.1-SNAPSHOT.jar ``` ## API接口 ### 聊天接口 - POST `/api/ai/chat`: 发送聊天消息到AI大模型 - 请求体: ```json { "message": "用户输入的消息", "modelName": "可选,指定使用的模型名称 (alibaba 或 deepseek)", "history": [可选,聊天历史记录数组] } ``` - 响应: ```json { "response": "AI的回复", "modelUsed": "实际使用的模型名称", "timestamp": "响应时间戳" } ``` ### 健康检查接口 - GET `/actuator/health`: 检查服务健康状态 - 响应: ```json { "status": "UP" } ``` ### 文档转换接口 - POST `/api/document/text-convert`: 文本转换为Word/PPT文档(PDF转换已禁用) - 请求体(FormData): ``` title: 文档标题 format: 转换格式 (word/ppt) content: 文档内容 ``` - 响应: 转换后的文档文件(二进制流) - POST `/api/document/word-to-pdf`: Word文档转换为PDF - 请求体(FormData): ``` file: Word文档文件 ``` - 响应: 转换后的PDF文件(二进制流) - POST `/api/document/images-to-pdf`: 多张图片转换为PDF - 请求体(FormData): ``` files: 图片文件数组 ``` - 响应: 转换后的PDF文件(二进制流) - POST `/api/document/convert-powerpoint-to-pdf`: PowerPoint文档转换为PDF - 请求体(FormData): ``` file: PowerPoint文档文件 ``` - 响应: 转换后的PDF文件(二进制流) ## 项目结构 - `src/main/java/com/wgh/demo/ai/config`: 配置类 - `src/main/java/com/wgh/demo/ai/controller`: 控制器 - `src/main/java/com/wgh/demo/ai/exception`: 异常处理类 - `src/main/java/com/wgh/demo/ai/factory`: AI模型工厂类 - `src/main/java/com/wgh/demo/ai/model`: 数据模型类 - `src/main/java/com/wgh/demo/ai/repository`: 数据访问层 - `src/main/java/com/wgh/demo/ai/service`: 服务接口 - `src/main/java/com/wgh/demo/ai/service/impl`: 服务实现类 - `src/main/resources`: 配置文件 - `src/test`: 测试代码 ## 部署说明 1. 构建可执行JAR文件: ```bash mvn clean package ``` 2. 运行JAR文件: ```bash java -jar target/springboot-ai-demo-0.0.1-SNAPSHOT.jar ``` 3. 或使用Docker容器化部署: - 创建Dockerfile - 构建Docker镜像 - 运行Docker容器 ## 文档转换功能说明 1. 文本转换功能支持将文本内容转换为Word(.docx)和PPT(.pptx)格式文档 2. Word转PDF功能已配置临时许可证,可移除评估水印 3. 图片转PDF功能支持多张图片合并成一个PDF文档 4. PPT转PDF功能支持将PPT/PPTX文件转换为PDF格式 5. 所有转换功能均支持中文内容处理和显示 ## 注意事项 1. 在使用前,请确保已获取阿里AI和DeepSeek大模型的API密钥 2. 默认使用的阿里模型是`qwen-plus`,DeepSeek模型是`deepseek-chat`,可以根据需要在配置文件中修改 3. 项目提供了基本功能,实际生产环境中应添加更多的错误处理、安全验证和性能优化 4. 建议在生产环境中使用环境变量或配置中心来管理敏感配置