¿Qué es la API de Ollama?

Ollama es una herramienta de código abierto para ejecutar modelos de lenguaje de gran tamaño (LLMs) localmente en tu máquina. Proporciona una API REST que acepta solicitudes HTTP, lo que te permite interactuar con modelos como Llama 3, Mistral, Gemma y muchos otros directamente desde tu terminal o código de aplicación. La API sigue un patrón simple de solicitud/respuesta basado en JSON y admite generación de texto, conversaciones de chat de múltiples turnos e incrustaciones de texto.

cURL es la forma más común de probar e interactuar con la API de Ollama. Sin embargo, construir el comando cURL correcto con todos los parámetros, encabezados y el formato del cuerpo JSON adecuados puede ser tedioso y propenso a errores, especialmente al ajustar opciones del modelo como la temperatura y el muestreo top-k.

Descripción de la herramienta

Esta herramienta genera comandos cURL listos para usar para los endpoints de la API de Ollama. Selecciona un endpoint, configura tu modelo y parámetros, y obtén un comando cURL correctamente formateado al instante. El comando generado incluye todos los encabezados necesarios, la estructura del cuerpo JSON y las opciones del modelo — listo para pegar en tu terminal.

Ejemplos

Generación de texto básica:

curl -X POST "http://localhost:11434/api/generate" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "prompt": "Explain quantum computing in simple terms",
  "stream": true
}'

Chat con prompt de sistema y temperatura personalizada:

curl -X POST "http://localhost:11434/api/chat" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "messages": [
    { "role": "system", "content": "You are a helpful coding assistant." },
    { "role": "user", "content": "Write a Python function to reverse a string" }
  ],
  "stream": false,
  "options": {
    "temperature": 0.3
  }
}'

Generar embeddings:

curl -X POST "http://localhost:11434/api/embeddings" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "llama3",
  "prompt": "The quick brown fox jumps over the lazy dog",
  "stream": false
}'

Características

  • Compatible con los tres endpoints principales de Ollama: /api/generate, /api/chat y /api/embeddings
  • Opciones del modelo configurables: temperatura, top-p, top-k, máximo de tokens, penalización por repetición y semilla
  • Soporte de prompt de sistema para los endpoints de generación y chat
  • Opción de formato de respuesta JSON para salida estructurada
  • Descarga el comando generado como archivo .sh

Opciones explicadas

Opción Descripción Valor predeterminado Rango
Temperatura Controla la aleatoriedad de la salida. Valores más bajos producen texto más enfocado; valores más altos aumentan la creatividad. 0.7 0–2
Top P Umbral de muestreo por núcleo. El modelo considera los tokens cuya probabilidad acumulada alcanza este valor. 0.9 0–1
Top K Limita la selección de tokens a los K candidatos más probables en cada paso. 40 1–100
Máximo de tokens Número máximo de tokens a generar en la respuesta. Establece -1 para ilimitado. 128 -1–4096
Penalización por repetición Penaliza los tokens repetidos. Valores superiores a 1.0 desalientan la repetición. 1.1 0–2
Semilla Semilla fija para resultados reproducibles. Déjala vacía para resultados aleatorios. Cualquier entero
Formato de respuesta Establece JSON para forzar al modelo a devolver una salida JSON válida. Ninguno Ninguno / JSON
Stream Cuando está activado, la respuesta se transmite token por token. Desactívalo para recibir la respuesta completa de una vez. Activado Activado / Desactivado

Casos de uso

  • Crear prototipos y probar llamadas a la API de Ollama rápidamente desde la terminal sin escribir JSON manualmente
  • Generar comandos cURL para compartir con compañeros de equipo o incluir en documentación
  • Experimentar con diferentes parámetros del modelo para encontrar la configuración óptima para tu caso de uso