# springboot-langchain4j-demo **Repository Path**: chaocloud/springboot-langchain4j-demo ## Basic Information - **Project Name**: springboot-langchain4j-demo - **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-06-14 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot LangChain4j Demo 一个基于 Spring Boot 和 LangChain4j 的 AI 聊天演示项目,集成了 DeepSeek API 来提供智能对话功能。 ## 项目简介 本项目展示了如何使用 Spring Boot 框架结合 LangChain4j 库来构建一个简单的 AI 聊天应用。项目使用 DeepSeek 作为底层的大语言模型提供商,通过 RESTful API 提供聊天服务。 ## 技术栈 - **Java 21** - 编程语言 - **Spring Boot 3.5.0** - Web 框架 - **LangChain4j 1.0.1** - AI 集成框架 - **Lombok** - 减少样板代码的注解库 - **DeepSeek API** - 大语言模型服务 - **Maven** - 项目管理工具 ## 项目结构 ``` src/ ├── main/ │ ├── java/ │ │ └── org/example/demo/ │ │ ├── SpringbootLangchain4jDemoApplication.java # 主应用类 │ │ ├── ChatController.java # 聊天控制器 │ │ ├── config/ │ │ │ └── LangChain4jConfig.java # LangChain4j 配置 │ │ └── service/ │ │ └── Assistant.java # AI 助手服务接口 │ └── resources/ │ ├── application.properties # 应用配置 │ ├── static/ # 静态资源 │ └── templates/ # 模板文件 └── test/ └── java/ # 测试代码 ``` ## 核心功能 ### 1. AI 聊天服务 - 提供基于 DeepSeek 模型的智能对话功能 - 支持自定义系统提示词 - 可配置模型参数(温度、最大令牌数等) ### 2. RESTful API - `GET /chat?message={your_message}` - 发送消息并获取 AI 回复 ### 3. 灵活配置 - 支持通过环境变量或配置文件设置 API 密钥 - 可自定义模型参数和服务端点 ## 快速开始 ### 前置要求 - Java 21 或更高版本 - Maven 3.6 或更高版本 - DeepSeek API 密钥 ### 安装步骤 1. **克隆项目** ```bash git clone cd springboot-langchain4j-demo ``` 2. **配置 API 密钥** 方式一:设置环境变量 ```bash export DEEPSEEK_API_KEY=your-actual-api-key ``` 方式二:修改 `application.properties` ```properties langchain4j.open-ai.chat-model.api-key=your-actual-api-key ``` 3. **编译和运行** ```bash mvn clean install mvn spring-boot:run ``` 4. **测试应用** 应用启动后,访问: ``` http://localhost:8080/chat?message=你好 ``` ## 配置说明 ### application.properties 配置项 ```properties # 应用基本配置 spring.application.name=springboot-langchain4j-demo server.port=8080 # DeepSeek API 配置 langchain4j.open-ai.chat-model.api-key=${DEEPSEEK_API_KEY:your-api-key-here} langchain4j.open-ai.chat-model.base-url=https://api.deepseek.com/v1/ langchain4j.open-ai.chat-model.model-name=deepseek-chat langchain4j.open-ai.chat-model.temperature=0.7 langchain4j.open-ai.chat-model.max-tokens=1024 ``` ### 配置参数说明 - `api-key`: DeepSeek API 密钥 - `base-url`: DeepSeek API 基础 URL - `model-name`: 使用的模型名称 - `temperature`: 控制回复的随机性 (0.0-1.0) - `max-tokens`: 单次回复的最大令牌数 ## API 使用示例 ### 基本聊天 ```bash curl "http://localhost:8080/chat?message=介绍一下Spring Boot" ``` ### 复杂对话 ```bash curl "http://localhost:8080/chat?message=请帮我写一个Java的Hello World程序" ``` ## 开发指南 ### 使用 Lombok 简化代码 项目已集成 Lombok,可以使用注解来减少样板代码: ```java // 使用 @Data 注解自动生成 getter、setter、toString 等方法 @Data @AllArgsConstructor @NoArgsConstructor public class ChatRequest { private String message; private String sessionId; } // 使用 @Slf4j 注解自动生成日志对象 @Slf4j @RestController public class ChatController { @Autowired Assistant assistant; @GetMapping("/chat") public String chat(String message) { log.info("Received chat message: {}", message); return assistant.chat(message); } } ``` ### 自定义 AI 助手 可以通过修改 `Assistant.java` 来自定义 AI 助手的行为: ```java @AiService(chatModel = "openAiChatModel") public interface Assistant { @SystemMessage("You are a helpful programming assistant specialized in Java development") String chat(String userMessage); // 可以添加更多专门的方法 @SystemMessage("You are a code reviewer. Please review the following code and provide suggestions.") String reviewCode(String code); } ``` ### 添加新的端点 在 `ChatController.java` 中添加新的 REST 端点: ```java @PostMapping("/chat") public String chatPost(@RequestBody ChatRequest request) { return assistant.chat(request.getMessage()); } ``` ## 故障排除 ### 常见问题 1. **API 密钥错误** - 确保 DeepSeek API 密钥正确设置 - 检查环境变量或配置文件中的密钥格式 2. **网络连接问题** - 确保能够访问 `https://api.deepseek.com` - 检查防火墙和代理设置 3. **端口冲突** - 默认端口为 8080,如有冲突可在配置文件中修改 ### 日志调试 在 `application.properties` 中添加日志配置: ```properties logging.level.dev.langchain4j=DEBUG logging.level.org.example.demo=DEBUG ``` ## 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 相关链接 - [Spring Boot 官方文档](https://spring.io/projects/spring-boot) - [LangChain4j 官方文档](https://docs.langchain4j.dev/) - [DeepSeek API 文档](https://platform.deepseek.com/api-docs/) ## 更新日志 ### v0.0.1-SNAPSHOT - 初始版本 - 集成 Spring Boot 3.5.0 - 集成 LangChain4j 1.0.1 - 支持 DeepSeek API - 提供基础聊天功能