Skip to main content

model-provider-creator

为多模型支持创建新的 AI 模型提供商。当用户想要添加对新的 AI 模型(OpenAI、Claude 等)的支持时使用此技能。

Datos de origen

Repositorio
bage2014/study
Última actividad en el origen
10 de junio de 2026 a las 00:53
Idioma detectado de SKILL.md
chino
Estrellas
646
Forks
113

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
model-provider-creator
description
为多模型支持创建新的 AI 模型提供商。当用户想要添加对新的 AI 模型(OpenAI、Claude 等)的支持时使用此技能。
# 模型提供商创建器 ## 功能描述 帮助创建新的 AI 模型提供商以扩展多模型支持,实现模型特定的聊天逻辑和配置管理。 ## 何时使用 在以下情况调用此技能: - 为项目添加新的 AI 模型支持(OpenAI、Claude 等) - 创建自定义模型提供商 - 扩展多模型架构 - 实现模型特定的聊天逻辑 ## 核心功能 - **提供商创建**:创建新的模型提供商实现 - **配置管理**:管理模型提供商的配置参数 - **服务注册**:自动注册到模型管理器 - **多模型切换**:支持运行时切换不同模型 ## 输入参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | providerName | String | 是 | 提供商名称(唯一标识) | | modelType | String | 是 | 模型类型 | | config | Map | 否 | 配置参数 | ## 输出格式 ```json { "providerName": "newmodel", "status": "SUCCESS", "description": "模型提供商创建成功" } ``` ## 提供商接口规范 ### ModelProvider 接口 ```java public interface ModelProvider { String getProviderName(); // 唯一名称(如 "openai"、"claude") boolean supports(String modelType); // 检查是否支持给定模型 ChatResponse chat(ChatRequest request); // 处理聊天请求 default boolean isAvailable(); // 检查提供商是否就绪 } ``` ## 实现模式 ### 创建提供商实现类 ```java @Component public class NewModelProvider implements ModelProvider { @Override public String getProviderName() { return "newmodel"; } @Override public boolean supports(String modelType) { return "newmodel".equalsIgnoreCase(modelType); } @Override public ChatResponse chat(ChatRequest request) { try { // 使用 Spring AI ChatClient 或特定客户端 String content = chatClient.prompt() .user(request.message()) .call() .content(); return ChatResponse.success(getProviderName(), content, "model-name"); } catch (Exception e) { return ChatResponse.error(getProviderName(), e.getMessage()); } } @Override public boolean isAvailable() { return true; } } ``` ### 配置属性(可选) ```java @ConfigurationProperties(prefix = "spring.ai.newmodel") public class NewModelProperties { private String baseUrl; private String apiKey; private String chatModel; private boolean enabled = true; // getters/setters } ``` ## 支持的模型提供商 | 提供商名称 | 支持模型 | 配置方式 | |------------|----------|----------| | deepseek | deepseek-chat | 环境变量 | | openai | gpt-3.5-turbo, gpt-4 | 环境变量 | ## 核心组件 | 组件 | 职责 | 文件路径 | |------|------|----------| | ModelProvider | 提供商接口 | `provider/ModelProvider.java` | | ModelProviderManager | 提供商管理器 | `provider/ModelProviderManager.java` | | ChatService | 聊天服务 | `service/ChatService.java` | ## 创建新模型提供商步骤 ### 第一步:创建配置属性类 ```java @ConfigurationProperties(prefix = "spring.ai.newmodel") public class NewModelProperties { private String apiKey; private String baseUrl; private String model = "default-model"; // getters/setters } ``` ### 第二步:创建提供商实现 ```java @Component public class NewModelProvider implements ModelProvider { private final NewModelProperties properties; private final ChatClient chatClient; @Override public String getProviderName() { return "newmodel"; } @Override public boolean supports(String modelType) { return "newmodel".equalsIgnoreCase(modelType); } @Override public ChatResponse chat(ChatRequest request) { // 实现聊天逻辑 } } ``` ### 第三步:配置 Spring AI ```java @Configuration @EnableConfigurationProperties(NewModelProperties.class) public class NewModelConfig { @Bean public ChatClient newModelChatClient(NewModelProperties properties) { return ChatClient.builder() .baseUrl(properties.getBaseUrl()) .apiKey(properties.getApiKey()) .defaultOptions(options -> options.model(properties.getModel())) .build(); } } ``` ## 配置要求 ### 环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `MODEL_PROVIDER_API_KEY` | 模型 API Key | - | | `MODEL_PROVIDER_BASE_URL` | 模型 API 地址 | - | ### 配置文件 ```yaml spring: ai: newmodel: api-key: ${MODEL_PROVIDER_API_KEY} base-url: ${MODEL_PROVIDER_BASE_URL} chat-model: newmodel-chat ``` ## 目录结构 ``` src/main/java/com/bage/study/ai/best/practice/hello/ ├── provider/ │ ├── ModelProvider.java # 提供商接口 │ ├── ModelProviderManager.java # 提供商管理器 │ └── NewModelProvider.java # 具体提供商实现 ├── config/ │ ├── NewModelProperties.java # 配置属性类 │ └── NewModelConfig.java # 配置类 ├── service/ │ └── ChatService.java # 聊天服务 └── model/ ├── ChatRequest.java # 请求 DTO └── ChatResponse.java # 响应 DTO ``` ## 使用方式 提供商通过 `@Component` 注解自动注册,由 `ModelProviderManager` 管理。 ```java @Autowired private ModelProviderManager providerManager; // 获取提供商 ModelProvider provider = providerManager.getProvider("newmodel"); // 执行聊天 ChatResponse response = provider.chat(request); ``` ## 扩展指南 ### 添加新的模型提供商 1. 创建配置属性类(使用 `@ConfigurationProperties`) 2. 创建配置类,注册 `ChatClient` Bean 3. 实现 `ModelProvider` 接口 4. 添加 `@Component` 注解自动注册 ### 支持模型切换 在 `ModelProviderManager` 中实现模型切换逻辑,支持运行时动态切换。
Ver en GitHub