Skip to content

← Primeros pasos

La primera llamada

La primera petición de chat completions por curl y por el SDK de OpenAI apuntado a OpenRouter, con el modelo y la lectura de la respuesta.

7 slides 5 min de lectura
  1. OpenRouter · Primers passos

    La primera llamada

    De la key a la primera respuesta de un modelo, en dos formas.

    OpenRouter · Primeros pasos arlaf.dev
  2. Compatible con OpenAI

    OpenRouter habla el mismo protocolo que la API de OpenAI. Solo cambias la base URL a https://openrouter.ai/api/v1 y pones tu key en el header Authorization.

    OpenRouter · Primeros pasos arlaf.dev
  3. La llamada con curl

    curl https://openrouter.ai/api/v1/chat/completions \
      -H "Authorization: Bearer $OPENROUTER_API_KEY" \
      -H "Content-Type: application/json" \
      -H "HTTP-Referer: https://elmeudomini.com" \
      -H "X-Title: La meva app" \
      -d '{
        "model": "openai/gpt-4o",
        "messages": [
          { "role": "user", "content": "Hola en una frase." }
        ]
      }'
    
    OpenRouter · Primeros pasos arlaf.dev
  4. La misma llamada con el SDK de OpenAI

    from openai import OpenAI
    import os
    
    client = OpenAI(
        base_url="https://openrouter.ai/api/v1",
        api_key=os.environ["OPENROUTER_API_KEY"],
    )
    
    resp = client.chat.completions.create(
        model="anthropic/claude-3.5-sonnet",
        messages=[{"role": "user", "content": "Hola en una frase."}],
    )
    print(resp.choices[0].message.content)
    
    OpenRouter · Primeros pasos arlaf.dev
  5. Elegir el modelo

    El campo model es un slug con forma proveedor/modelo. Cambiándolo, cambias de motor sin tocar nada más del código.

    • openai/gpt-4o — ejemplo de un modelo de OpenAI.
    • anthropic/claude-3.5-sonnet — ejemplo de un modelo de Anthropic.
    • El sufijo :free apunta a una variante gratuita con límites más estrictos.
    OpenRouter · Primeros pasos arlaf.dev
  6. Leer la respuesta

    La respuesta tiene la misma forma que OpenAI. El texto vive en choices[0].message.content y el bloque usage te dice cuántos tokens has gastado.

    OpenRouter · Primeros pasos arlaf.dev
  7. Si sabes hacer una llamada a OpenAI, ya sabes hacerla a OpenRouter — solo cambia la dirección.
    OpenRouter · Primeros pasos arlaf.dev
Leer la nota completa

La gràcia d’OpenRouter és que no has d’aprendre res nou: parla el mateix protocol que l’API d’OpenAI. La teva primera crida és una petició de chat completions a https://openrouter.ai/api/v1/chat/completions, autenticada amb el header Authorization: Bearer i la teva key.

Amb curl

La manera més directa de comprovar que tot funciona és un curl. Envies un JSON amb dos camps mínims: el model (un slug com openai/gpt-4o) i la llista de messages. Amb la key al header, ja tens resposta.

Hi ha dos headers opcionals que val la pena posar: HTTP-Referer i X-Title. Serveixen per atribuir l’app — el teu domini i el nom apareixen als rànquings públics d’OpenRouter i identifiquen el trànsit. No són obligatoris, però són bona pràctica si publiques una app.

Amb el SDK d’OpenAI

Si ja fas servir el SDK oficial d’OpenAI, només canvies dues coses: el base_url cap a OpenRouter i la api_key per la teva. La resta del codi és idèntic. Això vol dir que pots reaprofitar qualsevol projecte existent gairebé sense tocar-lo.

Llegir el que torna

La resposta segueix l’estructura d’OpenAI. El text generat viu a choices[0].message.content, i el bloc usage et diu els tokens d’entrada i de sortida — la base del que et descomptaran del crèdit.

Nota: els slugs concrets (openai/gpt-4o, anthropic/claude-3.5-sonnet) són exemples i el catàleg canvia sovint. Consulta la llista de models a la documentació per veure quins hi ha disponibles ara mateix.