model-provider-creator

star 623

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

bage2014 By bage2014 schedule Updated 6/10/2026

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

模型提供商创建器

功能描述

帮助创建新的 AI 模型提供商以扩展多模型支持,实现模型特定的聊天逻辑和配置管理。

何时使用

在以下情况调用此技能:

  • 为项目添加新的 AI 模型支持(OpenAI、Claude 等)
  • 创建自定义模型提供商
  • 扩展多模型架构
  • 实现模型特定的聊天逻辑

核心功能

  • 提供商创建:创建新的模型提供商实现
  • 配置管理:管理模型提供商的配置参数
  • 服务注册:自动注册到模型管理器
  • 多模型切换:支持运行时切换不同模型

输入参数

参数 类型 必填 说明
providerName String 提供商名称(唯一标识)
modelType String 模型类型
config Map 配置参数

输出格式

{
  "providerName": "newmodel",
  "status": "SUCCESS",
  "description": "模型提供商创建成功"
}

提供商接口规范

ModelProvider 接口

public interface ModelProvider {
    String getProviderName();        // 唯一名称(如 "openai"、"claude")
    boolean supports(String modelType);  // 检查是否支持给定模型
    ChatResponse chat(ChatRequest request);  // 处理聊天请求
    default boolean isAvailable();   // 检查提供商是否就绪
}

实现模式

创建提供商实现类

@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;
    }
}

配置属性(可选)

@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

创建新模型提供商步骤

第一步:创建配置属性类

@ConfigurationProperties(prefix = "spring.ai.newmodel")
public class NewModelProperties {
    private String apiKey;
    private String baseUrl;
    private String model = "default-model";
    // getters/setters
}

第二步:创建提供商实现

@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

@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 地址 -

配置文件

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 管理。

@Autowired
private ModelProviderManager providerManager;

// 获取提供商
ModelProvider provider = providerManager.getProvider("newmodel");

// 执行聊天
ChatResponse response = provider.chat(request);

扩展指南

添加新的模型提供商

  1. 创建配置属性类(使用 @ConfigurationProperties
  2. 创建配置类,注册 ChatClient Bean
  3. 实现 ModelProvider 接口
  4. 添加 @Component 注解自动注册

支持模型切换

ModelProviderManager 中实现模型切换逻辑,支持运行时动态切换。

Install via CLI
npx skills add https://github.com/bage2014/study --skill model-provider-creator
Repository Details
star Stars 623
call_split Forks 111
navigation Branch main
article Path SKILL.md
More from Creator