用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/bage2014/study --skill model-provider-creator命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
UI设计规范技能,提供设计系统、配色方案、排版规则、无障碍标准等专业UI设计指导
项目规范技能,提供项目结构、文档管理、代码忽略等方面的标准和最佳实践
MCP Apps项目规范 - 后端驱动UI渲染架构。所有页面由后端生成HTML通过MCP协议返回渲染。Invoke when developing or maintaining MCP Apps projects, especially when creating new pages, tools, or stores.
基于 SOC 职业分类
正在显示 SKILL.md
| name | model-provider-creator |
| description | 为多模型支持创建新的 AI 模型提供商。当用户想要添加对新的 AI 模型(OpenAI、Claude 等)的支持时使用此技能。 |
帮助创建新的 AI 模型提供商以扩展多模型支持,实现模型特定的聊天逻辑和配置管理。
在以下情况调用此技能:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| providerName | String | 是 | 提供商名称(唯一标识) |
| modelType | String | 是 | 模型类型 |
| config | Map | 否 | 配置参数 |
{
"providerName": "newmodel",
"status": "SUCCESS",
"description": "模型提供商创建成功"
}
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) {
// 实现聊天逻辑
}
}
@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);
@ConfigurationProperties)ChatClient BeanModelProvider 接口@Component 注解自动注册在 ModelProviderManager 中实现模型切换逻辑,支持运行时动态切换。