Claude-skill-registry ai-model
Gère les modèles IA de Motivia. Utilise ce skill quand l'utilisateur demande d'ajouter un nouveau modèle IA, modifier un provider, ou configurer les options de génération. Supporte OpenAI, Anthropic, Google, Mistral et xAI.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ai-model" ~/.claude/skills/majiayu000-claude-skill-registry-ai-model && rm -rf "$T"
manifest:
skills/data/ai-model/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- references .env files
- references API keys
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
Gestion des Modèles IA Motivia
Fichiers concernés
utils/ai-model.tsx # Registry des modèles et providers prisma/schema.prisma # Enum ApiProvider components/icons/ # Icônes des providers app/api/create/route.ts # Endpoint de génération
Structure d'un modèle
export type AIModelOption = { provider: ApiProvider; // Enum Prisma: OPENAI, ANTHROPIC, GOOGLE, MISTRAL, XAI model: string; // ID du modèle (ex: "gpt-5-nano-2025-08-07") label: string; // Nom affiché (ex: "GPT 5 nano") free: boolean; // true = utilise les lettres gratuites cost: number; // Coût relatif (pour affichage) };
Providers actuels
| Provider | Enum | SDK |
|---|---|---|
| OpenAI | | |
| Anthropic | | |
| | |
| Mistral | | |
| xAI | | |
Ajouter un nouveau modèle (provider existant)
1. Ajouter à la liste des modèles
// utils/ai-model.tsx export const OPENAI_MODELS = [ // ... existing models { provider: ApiProvider.OPENAI, model: "gpt-5-ultra-2025-xx-xx", // ID exact du modèle label: "GPT 5 Ultra", // Nom affiché free: false, // false = nécessite clé API cost: 50, // Coût relatif }, ];
2. Vérifier l'export dans modelOptions
export const modelOptions: AIModelOption[] = [ ...OPENAI_MODELS, ...ANTHROPIC_MODELS, ...MISTRAL_MODELS, ...XAI_MODELS, ];
Ajouter un nouveau provider
1. Installer le SDK
pnpm add @ai-sdk/newprovider
2. Ajouter l'enum Prisma
// prisma/schema.prisma enum ApiProvider { OPENAI ANTHROPIC GOOGLE MISTRAL XAI NEWPROVIDER // Ajouter ici }
3. Exécuter la migration
pnpm prisma migrate dev --name add_newprovider
4. Créer l'icône du provider
// components/icons/newprovider-icon.tsx export const NewProviderIcon = ({ className }: { className?: string }) => ( <svg className={className} viewBox="0 0 24 24"> {/* SVG path */} </svg> );
5. Ajouter au registry
// utils/ai-model.tsx import { createNewProvider } from "@ai-sdk/newprovider"; import { NewProviderIcon } from "@/components/icons"; // Dans providersLabelAndIcon { label: "New Provider", value: ApiProvider.NEWPROVIDER, image: <NewProviderIcon className="size-6" />, }, // Dans les modèles export const NEWPROVIDER_MODELS = [ { provider: ApiProvider.NEWPROVIDER, model: "model-id", label: "Model Name", free: false, cost: 10, }, ]; // Dans modelOptions export const modelOptions: AIModelOption[] = [ ...OPENAI_MODELS, ...ANTHROPIC_MODELS, ...MISTRAL_MODELS, ...XAI_MODELS, ...NEWPROVIDER_MODELS, // Ajouter ici ]; // Dans registry export const registry = (apiKey?: string, provider?: ApiProvider) => createProviderRegistry({ // ... existing NEWPROVIDER: createNewProvider({ apiKey: provider === ApiProvider.NEWPROVIDER && apiKey ? apiKey : process.env.NEWPROVIDER_API_KEY, }), });
6. Ajouter la variable d'environnement
NEWPROVIDER_API_KEY=sk-...
Règles métier
Modèles gratuits
- Un modèle
utilise les 5 lettres gratuites de l'utilisateurfree: true - Si
, l'utilisateur doit avoir sa propre clé APIfreeLetters === 0
Coût
Le champ
cost est indicatif et sert à l'affichage. Valeurs suggérées:
| Gamme | Cost | Exemple |
|---|---|---|
| Économique | 0-1 | nano, small |
| Standard | 2-5 | mini, medium |
| Premium | 10-15 | sonnet, medium |
| Ultra | 20+ | opus |
Génération de lettre
Le flow dans
app/api/create/route.ts:
- Vérifier l'authentification
- Valider le modèle demandé
- Récupérer la clé API (user ou env)
- Si free: décrémenter
freeLetters - Streamer la génération via
streamObject - Retourner
{ title, content }
Checklist nouveau modèle
- ID du modèle correct (vérifier docs du provider)
- Label clair et cohérent
-
bien défini (true/false)free -
relatif définicost - Ajouté à l'array
modelOptions - Testé avec une clé API valide