# TZ Spring Boot Starter LLM
大语言模型 Spring Boot Starter,支持通义千问、智谱 AI、OpenAI 等多种 Provider。
## 功能特性
- 支持多种 LLM Provider
- 统一的客户端接口
- 灵活的配置化管理
- 完整的 JavaDoc 注释
- 开箱即用的 Spring Boot 集成
## Maven 依赖
```xml
cn.tz.cloud
tz-spring-boot-starter-llm
${revision}
```
## 配置说明
### 基础配置
在 `application.yml` 中添加配置:
```yaml
tz:
llm:
enabled: true
default-provider: qwen # 默认使用的 Provider
```
### Provider 配置
#### 通义千问 (Qwen)
```yaml
tz:
llm:
providers:
qwen:
api-key: your-qwen-api-key
model: qwen-turbo # 可选,默认 qwen-turbo
temperature: 0.7 # 可选,温度参数
max-tokens: 2000 # 可选,最大 tokens 数
```
#### 智谱 AI (Zhipu)
```yaml
tz:
llm:
providers:
zhipu:
api-key: your-zhipu-api-key
model: glm-4 # 可选,默认 glm-4
temperature: 0.7
max-tokens: 2000
```
#### OpenAI
```yaml
tz:
llm:
providers:
openai:
api-key: your-openai-api-key
model: gpt-3.5-turbo # 可选,默认 gpt-3.5-turbo
api-url: https://api.openai.com/v1/chat/completions # 可选,用于自定义 API 端点
temperature: 0.7
max-tokens: 2000
```
## 使用示例
### 注入客户端工厂
```java
@Autowired
private LlmClientFactory llmClientFactory;
```
### 简单对话
```java
// 使用默认 Provider
List messages = List.of(
LlmMessage.system("你是一个智能助手"),
LlmMessage.user("请介绍一下 Java 编程语言")
);
LlmResponse response = llmClientFactory.chat(messages);
System.out.println(response.getContent());
```
### 指定 Provider
```java
// 使用通义千问
List messages = List.of(
LlmMessage.system("你是一个智能助手"),
LlmMessage.user("请介绍一下 Java 编程语言")
);
LlmResponse response = llmClientFactory.chat("qwen", messages);
System.out.println(response.getContent());
```
### 直接使用客户端
```java
@Autowired
private LlmClientFactory llmClientFactory;
public void chat() {
LlmClient client = llmClientFactory.getClient("qwen");
LlmChatRequest request = LlmChatRequest.builder()
.messages(List.of(
LlmMessage.system("你是一个智能助手"),
LlmMessage.user("请介绍一下 Java 编程语言")
))
.model("qwen-turbo")
.temperature(0.7)
.maxTokens(2000)
.build();
LlmResponse response = client.chat(request);
System.out.println(response.getContent());
}
```
### 检查 Provider 可用性
```java
// 检查特定 Provider 是否可用
boolean available = llmClientFactory.isAvailable("qwen");
// 获取所有可用的 Provider
List providers = llmClientFactory.getAvailableProviders();
```
## 支持的 Provider
| Provider | 说明 | 模型示例 |
|----------|------|----------|
| qwen | 通义千问 | qwen-turbo, qwen-plus, qwen-max |
| zhipu | 智谱 AI | glm-4, glm-3-turbo |
| openai | OpenAI | gpt-3.5-turbo, gpt-4 |
## API 文档
详细的 API 文档请参考 JavaDoc 注释。
## 注意事项
1. 请妥善保管 API Key,不要将其提交到版本控制系统
2. 建议使用环境变量或配置中心管理敏感配置
3. 不同 Provider 的 API 限制和计费方式可能不同,请参考各自的官方文档