carvendy e04fb94993 merge 1 tydzień temu
..
src e04fb94993 merge 1 tydzień temu
README.md e04fb94993 merge 1 tydzień temu
pom.xml e04fb94993 merge 1 tydzień temu

README.md

TZ Spring Boot Starter LLM

大语言模型 Spring Boot Starter,支持通义千问、智谱 AI、OpenAI 等多种 Provider。

功能特性

  • 支持多种 LLM Provider
  • 统一的客户端接口
  • 灵活的配置化管理
  • 完整的 JavaDoc 注释
  • 开箱即用的 Spring Boot 集成

Maven 依赖

<dependency>
    <groupId>cn.tz.cloud</groupId>
    <artifactId>tz-spring-boot-starter-llm</artifactId>
    <version>${revision}</version>
</dependency>

配置说明

基础配置

application.yml 中添加配置:

tz:
  llm:
    enabled: true
    default-provider: qwen  # 默认使用的 Provider

Provider 配置

通义千问 (Qwen)

tz:
  llm:
    providers:
      qwen:
        api-key: your-qwen-api-key
        model: qwen-turbo  # 可选,默认 qwen-turbo
        temperature: 0.7   # 可选,温度参数
        max-tokens: 2000   # 可选,最大 tokens 数

智谱 AI (Zhipu)

tz:
  llm:
    providers:
      zhipu:
        api-key: your-zhipu-api-key
        model: glm-4  # 可选,默认 glm-4
        temperature: 0.7
        max-tokens: 2000

OpenAI

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

使用示例

注入客户端工厂

@Autowired
private LlmClientFactory llmClientFactory;

简单对话

// 使用默认 Provider
List<LlmMessage> messages = List.of(
    LlmMessage.system("你是一个智能助手"),
    LlmMessage.user("请介绍一下 Java 编程语言")
);

LlmResponse response = llmClientFactory.chat(messages);
System.out.println(response.getContent());

指定 Provider

// 使用通义千问
List<LlmMessage> messages = List.of(
    LlmMessage.system("你是一个智能助手"),
    LlmMessage.user("请介绍一下 Java 编程语言")
);

LlmResponse response = llmClientFactory.chat("qwen", messages);
System.out.println(response.getContent());

直接使用客户端

@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 可用性

// 检查特定 Provider 是否可用
boolean available = llmClientFactory.isAvailable("qwen");

// 获取所有可用的 Provider
List<String> 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 限制和计费方式可能不同,请参考各自的官方文档