Bibliotecas de API de Ollama
Qué cubre este artículo sobre bibliotecas de API de Ollama
- Bibliotecas oficiales e no oficiales para Ollama.
- Ejemplos en Python y JavaScript.
- Cómo instalar y utilizar bibliotecas.
- Diferencia entre la API nativa y la API compatible con OpenAI.
- Consejos para Streaming, manejo de errores y configuración.
Introducción: Bibliotecas de API de Ollama
Ollama proporciona una REST API que puede ser utilizada desde casi cualquier lenguaje de programación. Para Python y JavaScript, existen bibliotecas oficiales o populares que simplifican las solicitudes, el streaming y los embeddings. Si deseas integrar Ollama en tus propias aplicaciones, agentes o scripts, una biblioteca adecuada te ahorrará mucho tiempo.
Este artículo muestra qué bibliotecas están disponibles, cómo instalarlas y cuáles son los patrones típicos para implementarlas.
Términos importantes
- Client: Biblioteca que abstrae las llamadas a la API.
- SDK: Software Development Kit, es decir, bibliotecas y herramientas.
- REST API: Interfaz basada en HTTP.
- API compatible con OpenAI: Endpoint que utiliza el esquema de OpenAI.
- Streaming: Las respuestas se entregan en fragmentos.
- Chat Completion: Conversación de múltiples turnos.
- Embedding: Representación vectorial de texto.
Biblioteca oficial de Python
La biblioteca ollama se puede instalar a través de pip:
pip install ollama
Respuesta única
import ollama
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "user", "content": "Erkläre Ollama APIs."}
]
)
print(response["message"]["content"])
Streaming
import ollama
stream = ollama.chat(
model="llama3.1",
messages=[{"role": "user", "content": "Erzähle mir einen Witz."}],
stream=True
)
for chunk in stream:
print(chunk["message"]["content"], end="")
Embeddings
import ollama
response = ollama.embed(
model="nomic-embed-text",
input="Ollama ist ein Werkzeug für lokale KI."
)
print(response["embeddings"][0][:5])
Generate
import ollama
response = ollama.generate(
model="llama3.1",
prompt="Erkläre Quantisierung in drei Sätzen."
)
print(response["response"])
JavaScript / TypeScript
Para Node.js, puedes usar ollama:
npm install ollama
Ejemplo
import ollama from 'ollama';
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: 'Erkläre Ollama APIs.' }],
});
console.log(response.message.content);
Streaming
import ollama from 'ollama';
const stream = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: 'Erzähle mir einen Witz.' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.message.content);
}
Otros lenguajes
Muchos lenguajes simplemente utilizan solicitudes HTTP. Ejemplos:
curl
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [{"role": "user", "content": "Hallo"}]
}'
Python con requests
import requests
resp = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "llama3.1",
"messages": [{"role": "user", "content": "Hallo"}],
"stream": False
}
)
print(resp.json()["message"]["content"])
Cliente compatible con OpenAI
Muchas bibliotecas aceptan un parámetro base_url para usar Ollama en lugar de OpenAI:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
resp = client.chat.completions.create(
model="llama3.1",
messages=[{"role": "user", "content": "Hallo"}]
)
print(resp.choices[0].message.content)
Configuración
La mayoría de los clientes permiten ajustar el host y el puerto:
import ollama
client = ollama.Client(host="http://ollama-server.local:11434")
O mediante variable de entorno:
export OLLAMA_HOST="http://ollama-server.local:11434"
Manejo de errores
Errores típicos:
- Conexión fallida: Ollama no está iniciado o el host es incorrecto.
- Modelo no encontrado: El nombre del modelo es incorrecto o no está descargado.
- Timeout: La respuesta tarda demasiado, posiblemente revisa la utilización de la GPU.
- Streaming se interrumpe: Verifica la conexión o el procesamiento de fragmentos.
Ejemplo de manejo simple de errores:
import ollama
try:
response = ollama.generate(model="llama3.1", prompt="Hallo")
print(response["response"])
except ollama.ResponseError as e:
print("Fehler:", e.error)
Consejos
- Prefiere la biblioteca nativa
ollamacuando necesites todas las características de Ollama. - Usa clientes compatibles con OpenAI si ya tienes código escrito para OpenAI.
- Implementa streaming para mejorar la experiencia de usuario en aplicaciones interactivas.
- Configura API keys si Ollama está detrás de un proxy con autenticación.
- Centraliza la configuración de parámetros de conexión.
Enlaces y referencias adicionales
- BotServ.de Ollama REST API
- BotServ.de Ollama Befehle
- BotServ.de Ollama Embeddings
- BotServ.de Ollama Sicherheit
Preguntas frecuentes: Bibliotecas de API de Ollama
¿Existe una biblioteca oficial de Python?
Sí, se puede instalar con pip install ollama.
¿Puedo usar clientes de OpenAI con Ollama?
Sí, a través de la API compatible con OpenAI en /v1.
¿Necesito una clave API? No, Ollama en sí no autentica. En proxies puede ser necesaria una clave.
¿Cómo utilizo streaming?
Establece el parámetro stream=True e itera sobre los fragmentos.
¿Qué lenguajes se soportan? Cualquier lenguaje que pueda enviar solicitudes HTTP. Los clientes oficiales están disponibles para Python y JavaScript.
Fuentes y referencias
- Ollama Python: https://github.com/ollama/ollama-python
- Ollama JavaScript: https://github.com/ollama/ollama-js
- Ollama API Docs: https://github.com/ollama/ollama/blob/main/docs/api.md
Resumen: Bibliotecas de API de Ollama
Ollama se puede integrar en aplicaciones a través de bibliotecas oficiales de Python y JavaScript o simples solicitudes HTTP. La API nativa ofrece todas las características de Ollama, mientras que la API compatible con OpenAI permite una migración sencilla de proyectos existentes. Lo importante es configurar correctamente el host, usar el nombre de modelo correcto e implementar un manejo limpio de errores. Cuando dominas el streaming, embeddings y chat completion, construyes aplicaciones de IA fluidas y respetuosas con la privacidad basadas en Ollama.


