# 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 限制和计费方式可能不同,请参考各自的官方文档