Recherche OpenRouter et modèles Grok

VérifiéSûr

Recherche les spécifications actuelles de l'API OpenRouter et la disponibilité des modèles Grok pour SFUMATO. Se concentre sur la capacité de vision nécessaire au service juge pour analyser les images générées, et couvre la gestion des erreurs, les stratégies de réessai et les modèles d'intégration pour l'implémentation de openrouter_tool.py.

Spar Skills Guide Bot
DeveloppementIntermédiaire
02/06/2026
Claude Code
#openrouter#grok#vision#api-integration#xai

Recommandé pour

Synthèse automatique

Ce skill effectue des recherches sur l'API OpenRouter pour intégrer les modèles Grok, notamment avec capacités de vision, afin d'évaluer les images générées dans le projet SFUMATO.

Points forts

  • Couverture complète des API OpenRouter (authentification, endpoints, formats de requête)
  • Identification précise des modèles Grok supportant la vision, essentiels pour judge_service
  • Documentation des formats d'image base64 pour les appels vision
  • Stratégie de gestion d'erreurs et de retry adaptée aux codes HTTP courants

Limites

  • Dépend de la fraîcheur des résultats de recherche web (modèles ou API peuvent changer)
  • Ne fournit pas d'implémentation prête à l'emploi, seulement un blueprint
  • Ne couvre pas les autres fournisseurs ou modèles alternatifs
Quand l'utiliser

Lors de l'implémentation ou du débogage de l'intégration OpenRouter pour les appels textuels et vision avec Grok.

Quand l'éviter

Si vous utilisez un fournisseur d'API différent ou si les modèles Grok n'ont pas besoin de capacités vision.

Analyse de sécurité

Sûr
Score qualité95/100

This skill instructs only research activities using WebSearch, WebFetch, and Read tools to gather API documentation. No destructive, exfiltrating, or obfuscated actions are present. No executable commands or dangerous operations are suggested.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

OpenRouter research for Grok vision
Research the OpenRouter API to find which Grok models support vision/image input for evaluating generated images in our judge service.
OpenRouter error handling
Research OpenRouter error handling patterns: how to handle 429, 402, and 503 errors, and what retry strategy to use for async httpx calls.
OpenRouter image input format
Find the correct message format for sending base64 images to OpenRouter's vision API for Grok models in a chat completion request.

name: openrouter-research description: Research OpenRouter API docs, available Grok model IDs, vision capability for the judge service, and integration patterns. Use when implementing openrouter_tool.py, when checking which Grok model supports vision/image input for judge_service.py, when OpenRouter returns unexpected errors, or when verifying model availability and context limits. tools: WebSearch, WebFetch, Read

OpenRouter Research

Research current OpenRouter API specifications and Grok model availability for SFUMATO.

Context

All text LLM calls in SFUMATO go through app/tools/openrouter_tool.py:

  • prompt_service.generate_prompt() — Grok, text-only input
  • prompt_service.revise_prompt() — Grok, text-only input
  • judge_service.evaluate() — Grok with vision (must analyze generated image)

ENV vars: OPENROUTER_API_KEY, OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 Client: httpx.AsyncClient — OpenAI-compatible API

Read existing file first if it exists:

  • app/tools/openrouter_tool.py
  • config.py

Step 1: OpenRouter API Fundamentals

  1. Fetch: https://openrouter.ai/docs/api-reference/overview
  2. Fetch: https://openrouter.ai/docs/requests
  3. Search: OpenRouter API python httpx async chat completions 2025

Capture:

  • Base URL: https://openrouter.ai/api/v1
  • Auth header format (Authorization: Bearer vs API-Key)
  • Required request headers: HTTP-Referer, X-Title
  • Chat completions endpoint: POST /v1/chat/completions
  • Request body schema: model, messages, temperature, max_tokens, stream
  • Response schema: choices[0].message.content
  • Error response format and status codes (429, 402, 503, 500)

Step 2: Available Grok Models

  1. Fetch: https://openrouter.ai/models?q=grok
  2. Search: OpenRouter xAI Grok models list 2025
  3. Fetch: https://openrouter.ai/x-ai if available

For each available Grok model, capture:

  • Full model ID string (e.g. x-ai/grok-beta, x-ai/grok-vision-beta)
  • Context window size (tokens)
  • Supports image input (vision)? — critical for judge_service
  • Cost per 1M input/output tokens

Determine the best model for each use case:

  • prompt_gen: text-only, large context
  • prompt_revise: text-only
  • judge: MUST support vision/image input

Step 3: Image Input Format for Vision Models

Since judge_service.py sends a generated image to Grok for evaluation:

  1. Search: OpenRouter vision model image input base64 format 2025
  2. Fetch: https://openrouter.ai/docs/features/vision
  3. Search: OpenAI-compatible vision API image_url content type format

Capture:

  • Message content format for image:
    {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
    
    vs URL-based image reference
  • Max image size limits
  • Supported formats (JPEG, PNG, WebP)
  • Whether OpenRouter passes base64 to xAI directly or requires URL

Step 4: Error Handling and Retry Strategy

  1. Search: OpenRouter API error handling retry 429 503 2025
  2. Fetch: https://openrouter.ai/docs/api-reference/errors if available

Capture:

  • 429 rate limit: retry-after header? fixed backoff interval?
  • 402 payment/balance: raise immediately, no retry
  • 503 model unavailable: retry with backoff
  • Recommended timeout values for text calls vs vision calls
  • Max retries pattern

Output Format

Section 1: openrouter_tool.py Implementation Blueprint

# Async httpx client structure
BASE_URL = "https://openrouter.ai/api/v1"

# Required headers
headers = {
    "Authorization": f"Bearer {api_key}",
    "HTTP-Referer": "...",
    "X-Title": "SFUMATO",
    "Content-Type": "application/json",
}

# chat_completion(model, messages, temperature, max_tokens) -> str
# vision_completion(model, text_messages_plus_image_message) -> str
# Retry pattern for 429/503 (show how many retries, backoff)
# Error handling: which codes to retry vs raise immediately

Section 2: Model Selection Table

| Use Case | Recommended Model ID | Context | Vision | Notes | |----------|---------------------|---------|--------|-------| | prompt_gen | x-ai/grok-... | N | No | | | prompt_revise | x-ai/grok-... | N | No | | | judge | x-ai/grok-... | N | YES | Required |

Section 3: Image Message Format

Exact Python dict structure to use when sending image to judge:

{
    "role": "user",
    "content": [
        {"type": "text", "text": "...judge prompt..."},
        {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
    ]
}

Section 4: Recommended Constants for config.py

OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1"
OPENROUTER_MODEL_PROMPT_GEN = "x-ai/grok-..."
OPENROUTER_MODEL_PROMPT_REVISE = "x-ai/grok-..."
OPENROUTER_MODEL_JUDGE = "x-ai/grok-vision-..."  # must support vision
OPENROUTER_TIMEOUT_TEXT = 30
OPENROUTER_TIMEOUT_VISION = 45
OPENROUTER_MAX_RETRIES = 2

Notes

  • Never log API key, response.text for large vision calls, or base64 image data
  • Image for judge: read from data/sessions/<id>/iter_<n>.jpg, encode as base64
  • The judge call is the only one that uses vision; wrap it separately in vision_completion()
  • HTTP-Referer should be "http://localhost:5000" for local dev

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/openrouter-and-grok-models-research-mm78nmu3/download' --output '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md.part' && mv '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md.part' '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md' && test -s '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/openrouter-research' && cp -R '.skill-downloads/openrouter-and-grok-models-research-mm78nmu3' '.claude/skills/openrouter-research'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/openrouter-and-grok-models-research-mm78nmu3'

openskills read 'openrouter-and-grok-models-research-mm78nmu3'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/openrouter-and-grok-models-research-mm78nmu3/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires