liang-spring-ai/README.md

190 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

2025-07-18 16:52:25 +00:00
# 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