Skip to content

Ollama ofrece compatibilidad con partes de la API de OpenAI para ayudar a conectar aplicaciones existentes con Ollama.

Uso

Ejemplo simple de /v1/chat/completions

Ejemplo simple de /v1/responses

Ejemplo de /v1/chat/completions con visión

Puntos de conexión

/v1/chat/completions

Características compatibles

  • [x] Finalizaciones de chat
  • [x] Streaming
  • [x] Modo JSON
  • [x] Resultados reproducibles
  • [x] Visión
  • [x] Herramientas
  • [x] Control de razonamiento/pensamiento (para modelos de pensamiento)
  • [ ] Logprobs

Campos de solicitud compatibles

  • [x] model
  • [x] messages
    • [x] content de texto
    • [x] content de imagen
      • [x] Imagen codificada en Base64
      • [ ] URL de imagen
    • [x] Array de partes de content
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort ("high", "medium", "low", "max", "none")
  • [x] reasoning
    • [x] effort ("high", "medium", "low", "max", "none")
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

Características compatibles

  • [x] Finalizaciones
  • [x] Streaming
  • [x] Modo JSON
  • [x] Resultados reproducibles
  • [ ] Logprobs

Campos de solicitud compatibles

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

Notas

  • prompt actualmente solo acepta una cadena de texto

/v1/models

Notas

  • created corresponde a la última modificación del modelo
  • owned_by corresponde al nombre de usuario de ollama, con el valor predeterminado "library"

/v1/models/{model}

Notas

  • created corresponde a la última modificación del modelo
  • owned_by corresponde al nombre de usuario de ollama, con el valor predeterminado "library"

/v1/embeddings

Campos de solicitud compatibles

  • [x] model
  • [x] input
    • [x] cadena de texto
    • [x] array de cadenas de texto
    • [ ] array de tokens
    • [ ] array de arrays de tokens
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations (experimental)

Nota: Este punto de conexión es experimental y puede cambiar o eliminarse en versiones futuras.

Genera imágenes utilizando modelos de generación de imágenes.

Campos de solicitud compatibles

  • [x] model
  • [x] prompt
  • [x] size (ej.: "1024x1024")
  • [x] response_format (solo se admite b64_json)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

Nota: Añadido en Ollama v0.13.3

Ollama es compatible con la API de Responses de OpenAI. Solo se admite la variante sin estado (es decir, no hay compatibilidad con previous_response_id ni conversation).

Características compatibles

  • [x] Streaming
  • [x] Herramientas (llamada a funciones)
  • [x] Resúmenes de razonamiento (para modelos de pensamiento)
  • [ ] Solicitudes con estado

Campos de solicitud compatibles

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id (no se admiten las respuestas con estado en v1/responses)
  • [ ] conversation (no se admiten las respuestas con estado en v1/responses)
  • [ ] truncation

Modelos

Antes de usar un modelo, descárgalo localmente (ollama pull):

shell
ollama pull llama3.2

Nombres de modelo predeterminados

Para herramientas que dependen de nombres de modelo predeterminados de OpenAI como gpt-3.5-turbo, usa ollama cp para copiar un nombre de modelo existente a un nombre temporal:

shell
ollama cp llama3.2 gpt-3.5-turbo

Después, este nuevo nombre de modelo se puede especificar en el campo model:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

Configuración del tamaño de contexto

La API de OpenAI no tiene forma de establecer el tamaño de contexto de un modelo. Si necesitas cambiar el tamaño de contexto, crea un archivo Modelfile con el siguiente aspecto:

FROM <some model>
PARAMETER num_ctx <context size>

Usa el comando ollama create mymodel para crear un nuevo modelo con el tamaño de contexto actualizado. Llama a la API con el nombre del modelo actualizado:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mymodel",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'