# Spring AI 聊天演示项目 这是一个基于 Spring AI 的简单聊天应用演示项目,展示了如何与大语言模型进行对话。 ## 功能特性 - 🤖 支持多种大语言模型(OpenAI、Ollama) - 💬 简洁美观的聊天界面 - 🔧 简单的配置和部署 - 📱 响应式设计,支持移动端 ## 技术栈 - **Spring Boot 3.2.0** - 应用框架 - **Spring AI 0.8.1** - AI 集成框架 - **Thymeleaf** - 模板引擎 - **HTML/CSS/JavaScript** - 前端界面 ## 快速开始 ### 1. 环境要求 - Java 17 或更高版本 - Maven 3.6 或更高版本 ### 2. 配置大语言模型 #### 使用 OpenAI(推荐) 在 `src/main/resources/application.yml` 中配置: ```yaml spring: ai: openai: api-key: your-openai-api-key-here base-url: https://api.openai.com # 可选,默认值 ``` 或者通过环境变量设置: ```bash export OPENAI_API_KEY=your-openai-api-key-here ``` #### 使用 Ollama(本地部署) 1. 首先安装并启动 Ollama: ```bash # 安装 Ollama curl -fsSL https://ollama.ai/install.sh | sh # 拉取模型(例如 llama2) ollama pull llama2 # 启动 Ollama 服务 ollama serve ``` 2. 在配置文件中启用 Ollama: ```yaml spring: ai: ollama: base-url: http://localhost:11434 chat: options: model: llama2 ``` ### 3. 运行应用 ```bash # 编译项目 mvn clean compile # 运行应用 mvn spring-boot:run ``` 应用启动后,访问 http://localhost:8080 即可使用聊天界面。 ### 4. API 接口 除了网页界面,还提供了简单的 API 接口: ```bash # 简单对话接口 curl "http://localhost:8080/simple?q=你好" # POST 接口 curl -X POST http://localhost:8080/chat \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "message=介绍一下 Spring AI" ``` ## 项目结构 ``` src/ ├── main/ │ ├── java/com/example/springaidemo/ │ │ ├── SpringAiDemoApplication.java # 应用主类 │ │ ├── config/ │ │ │ └── AiConfig.java # AI 配置类 │ │ └── controller/ │ │ └── ChatController.java # 聊天控制器 │ └── resources/ │ ├── application.yml # 应用配置 │ └── templates/ │ └── chat.html # 聊天界面模板 ``` ## 配置说明 ### OpenAI 配置 ```yaml spring: ai: openai: api-key: ${OPENAI_API_KEY:your-openai-api-key} # OpenAI API Key base-url: ${OPENAI_BASE_URL:https://api.openai.com} # API 基础 URL chat: options: model: gpt-3.5-turbo # 使用的模型 temperature: 0.7 # 温度参数(0-1) ``` ### Ollama 配置 ```yaml spring: ai: ollama: base-url: ${OLLAMA_BASE_URL:http://localhost:11434} # Ollama 服务地址 chat: options: model: ${OLLAMA_MODEL:llama2} # 使用的模型 ``` ## 自定义和扩展 ### 添加新的对话端点 在 `ChatController` 中添加新的方法: ```java @GetMapping("/custom") @ResponseBody public String customChat(@RequestParam("message") String message) { // 自定义处理逻辑 String prompt = "请用专业的语言回答:" + message; return chatClient.call(prompt); } ``` ### 修改聊天界面 编辑 `src/main/resources/templates/chat.html` 文件来自定义界面样式和功能。 ### 添加更多 AI 提供商 Spring AI 支持多种 AI 提供商,包括: - OpenAI - Azure OpenAI - Hugging Face - Ollama - Anthropic Claude ## 常见问题 ### 1. OpenAI API Key 错误 - 确保 API Key 正确设置 - 检查 API Key 是否有足够的配额 - 验证网络连接是否正常 ### 2. Ollama 连接失败 - 确保 Ollama 服务正在运行 - 检查端口 11434 是否可访问 - 确认模型已正确下载 ### 3. 应用启动失败 - 检查 Java 版本是否为 17 或更高 - 确保网络连接正常 - 查看控制台错误日志 ## 许可证 MIT License