La API compatible con OpenAI
Además de sus endpoints nativos, Ollama expone una API compatible con OpenAI. La base es:
http://localhost:11434/v1/
Eso significa que el cliente oficial de OpenAI funciona sin tocar el resto del código:
from openai import OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1/',
api_key='ollama', # required but ignored
)
Fijate en el comentario, que es textual de la documentación: la clave es obligatoria pero ignorada. El cliente exige el campo; el servidor local no lo valida. Poner ahí una clave real sería un error de higiene, no un requisito.
Los endpoints compatibles
/v1/chat/completions/v1/completions/v1/models/v1/embeddings/v1/responses
Y con curl:
curl -X POST http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{ "model": "gpt-oss:20b", "messages": [{ "role": "user", "content": "Say this is a test" }] }'
Por qué importa
Un código escrito contra la API de OpenAI se puede apuntar a un modelo local cambiando dos líneas: la URL base y la clave. Eso te da una forma barata de comparar, de trabajar sin conexión, o de mover una carga entre remoto y local sin reescribir la aplicación.