ChatCieloDocs

Ollama — Modelos Locales On-Premise

Guía completa de Ollama en ChatCielo: instala Llama 3.3, Mistral y Qwen 2.5 en tu servidor, expone /v1/chat/completions OpenAI-compatible y conecta a ChatCielo con costo cero por token

Ollama — Modelos Locales On-Premise en ChatCielo

Ollama te permite ejecutar modelos open-source en tu propio servidor — sin enviar ningún dato a OpenAI, Anthropic o Google. Con ChatCielo lo configuras como proveedor compatible con OpenAI vía Base URL apuntando a http://tu-servidor:11434/v1 y endpoint /v1/chat/completions. Ideal para privacidad estricta (salud, legal, finanzas) y para costo cero por token una vez amortizado el hardware.

Elige Ollama cuando la privacidad y la soberanía del dato son innegociables o cuando tu volumen hace que el costo por token en la nube sea prohibitivo. Un servidor con GPU (o incluso CPU para modelos pequeños) atiende miles de conversaciones sin facturar por mensaje.

Por qué Ollama

VentajaQué significa en la práctica
Privacidad totalTus mensajes, audios y documentos nunca salen de tu infraestructura. Cumple HIPAA, LGPD, secreto profesional y políticas internas de datos sensibles.
Costo cero por tokenPagas solo el servidor/GPU — sin contador por mensaje, sin sorpresas a fin de mes. Rentable a partir de ~5.000 conversaciones/mes.
API OpenAI-compatibleExpone POST /v1/chat/completions idéntico a OpenAI. ChatCielo lo consume sin adaptadores.
Sin dependencia de internet para inferenciaUna vez descargado el modelo, responde offline — útil en entornos con conectividad limitada o regulada.
Modelos intercambiablesCambia entre llama3.3, mistral, qwen2.5 con un solo ollama pull y sin reconfigurar ChatCielo.

1. Instalación de Ollama en tu servidor

Ollama corre en Linux, macOS y Windows. Para producción recomienda Linux + Docker o binario nativo con GPU NVIDIA (CUDA).

# 1. Instala Ollama (script oficial)
curl -fsSL https://ollama.com/install.sh | sh
 
# 2. Verifica la instalación
ollama --version
# ollama version is 0.6.x
 
# 3. Inicia el servicio (si no quedó como systemd)
ollama serve &
# por defecto escucha en 0.0.0.0:11434
 
# 4. Descarga los modelos que usarás en ChatCielo
ollama pull llama3.3
ollama pull mistral
ollama pull qwen2.5:14b
ollama pull qwen2.5:32b
 
# 5. Prueba local rápida
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.3",
    "messages": [{"role":"user","content":"Hola, ¿quién eres? Responde en español neutro."}],
    "temperature": 0.3
  }' | jq .

Por defecto Ollama escucha solo en 127.0.0.1:11434. Para que ChatCielo (cloud) alcance tu instancia, exponla en 0.0.0.0:11434 con OLLAMA_HOST=0.0.0.0 y protégela con reverse proxy + API Key (Nginx + Authorization: Bearer o Cloudflare Tunnel). Nunca expongas :11434 directo a internet sin autenticación.

Puertos y endpoints clave

EndpointMétodoPara qué
http://TU_IP:11434/api/tagsGETLista modelos instalados
http://TU_IP:11434/api/generatePOSTGeneración simple (no chat)
http://TU_IP:11434/v1/chat/completionsPOSTChat compatible OpenAI — el que usa ChatCielo
http://TU_IP:11434/v1/modelsGETLista modelos en formato OpenAI
http://TU_IP:11434/api/pullPOSTDescarga modelo remoto

ChatCielo solo necesita POST /v1/chat/completions. Si ese endpoint responde con el JSON estándar choices[0].message.content, la integración funciona aunque uses Qwen, Mistral o Llama.

2. Modelos recomendados para ChatCielo

Meta Llama 3.3 70B — el mejor equilibrio calidad/peso para atención general.

  • Ventana 128k tokens, excelente en español neutro, ventas y manejo de objeciones.
  • Razonamiento cercano a gpt-4o-mini / gemini-flash con costo cero por token.
  • Variantes: llama3.3 (70B por defecto), llama3.3:70b-instruct-q4_K_M si necesitas cuantización GGUF para VRAM limitada.
  • Requiere ~40 GB VRAM en FP16 o ~24 GB en Q4 — una RTX 4090 (24 GB) lo corre en Q4, un servidor con 2×L4 lo corre holgado.
ollama pull llama3.3
# prueba
curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "llama3.3",
  "messages": [{"role":"system","content":"Eres asistente de {{empresa}}. Responde en máximo 3 líneas, español neutro."},{"role":"user","content":"¿Hacen envíos a Córdoba?"}],
  "temperature": 0.3
}'

Úsalo como modelo principal si tu servidor tiene GPU de 24 GB+.

CaracterísticaLlama 3.3 70BQwen 2.5 14BQwen 2.5 32BMistral 7B
VRAM Q4~24 GB~9 GB~20 GB~5 GB
Ventana128k32k32k–128k32k
Español★★★★★★★★★★★★★★★★★★★
VelocidadMedia (1–2 s)Rápida (0.8–1.2 s)Media (1–2 s)Muy rápida (<1 s)
Ideal paraVentas y soporte generalMultilingüe, códigoCalidad premium localTriaje, FAQ

3. Configuración en ChatCielo como proveedor compatible OpenAI

ChatCielo no tiene un proveedor "Ollama" separado: se configura como OpenAI (compatible) cambiando el Base URL.

Prepara tu endpoint público

Si ChatCielo corre en la nube y tu Ollama está en un VPS, necesitas una URL pública:

Opción A — Dominio + Nginx (recomendado producción):

# /etc/nginx/sites-available/ollama
server {
  listen 443 ssl;
  server_name ollama.tudominio.com;
  ssl_certificate /etc/letsencrypt/live/ollama.tudominio.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/ollama.tudominio.com/privkey.pem;
 
  location /v1/ {
    # protege con Bearer opcional
    # auth_request /auth;  # o valida Authorization header en tu app
 
    proxy_pass http://127.0.0.1:11434/v1/;
    proxy_set_header Host $host;
    proxy_read_timeout 120s;
  }
}
# Base URL final: https://ollama.tudominio.com/v1

Opción B — Cloudflare Tunnel / Tailscale (rápido y seguro, sin abrir puertos):

cloudflared tunnel --url http://localhost:11434
# te da https://xxxx.trycloudflare.com -> usar como Base URL + /v1

Opción C — Solo red interna (si ChatCielo es on-premise en la misma VPC):

Base URL: http://10.0.1.20:11434/v1

Crea la integración en ChatCielo

Ve a Canales > Tu canal (WhatsApp / Telegram / WebChat) > Integración IA > OpenAI / ChatGPT.

CampoQué poner para OllamaEjemplo
Proveedor / TipoOpenAI (compatible) o OpenAI
Base URLTu endpoint público con /v1 al finalhttps://ollama.tudominio.com/v1 o http://TU_IP:11434/v1
API KeyCualquiera si no usas auth, o tu Bearer si lo protegisteollama o sk-local-cualquiera — Ollama lo ignora si no hay proxy
ModeloNombre exacto del modelo en Ollamallama3.3 , qwen2.5:14b , mistral
Prompt del SistemaTus instrucciones (ver plantillas abajo)
Temperatura020.3 soporte preciso, 0.6 ventas
Max Tokens1504096350500 para WhatsApp
Palabra clave de derivaciónhablar con asesor, asesor humanoFrases 2–3 palabras

Si tu versión de ChatCielo pide Endpoint en lugar de Base URL, pega la URL completa de chat: https://ollama.tudominio.com/v1/chat/completions. Ambas formas son válidas según la versión.

Prueba de extremo a extremo

  1. En Canales > Integración IA > Probar, envía: "Hola, ¿hacen envíos a Medellín y cuánto tarda?" y verifica que responda.
  2. Desde tu VPS prueba el mismo endpoint que usará ChatCielo:
curl https://ollama.tudominio.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer TU_TOKEN_SI_APLICA" \
  -d '{
    "model": "llama3.3",
    "messages": [
      {"role": "system", "content": "Eres asistente de {{empresa}}. Máximo 3 líneas, español neutro."},
      {"role": "user", "content": "Hola, ¿hacen envíos a Medellín?"}
    ],
    "temperature": 0.3,
    "max_tokens": 350
  }' | jq -r '.choices[0].message.content'
  1. En ChatCielo revisa Atenciones > Panel de Chats con un número de prueba: escribe por WhatsApp y confirma que la respuesta llega sin latencia anómala (<2 s en GPU).

4. Casos de privacidad estricta

Ollama brilla cuando el dato no puede salir de tu perímetro:

  • Historiales, resultados de laboratorio y datos de pacientes nunca viajan a un tercero.
  • Cumple exigencias de HIPAA / LGPD salud y contratos con obras sociales que prohíben IA en la nube.
  • Ejemplo: bot que agenda turnos, entrega resultados ("tu estudio está listo, protocolo {{protocol}}") y deriva a humano ante síntomas — todo on-premise.

Configura qwen2.5:14b o llama3.3 con prompt que nunca diagnostica, solo orienta y deriva.

Incluso en modo local, registra y audita los prompts/respuestas según tu política de retención. Ollama guarda logs en ~/.ollama/logs y en stdout del servicio — redirígelos a tu SIEM si lo exige cumplimiento.

5. Ventajas de costo cero por token y dimensionamiento

Comparativa para 20.000 conversaciones/mes (8 mensajes promedio)

OpciónCosto mensual estimado*Cuándo conviene
Ollama local en VPS GPU (L4 24 GB)$120–$250 fijos (servidor) + $0 por tokenA partir de ~5.000 conv/mes ya es más barato que GPT-4o mini y sin límite. A 20k conv ahorra 80–95% vs. nube.
GPT-4o mini (nube)$120–$240Volumen bajo-medio
GPT-4o (nube)$400–$800Calidad premium sin infraestructura
DeepSeek-V3 (nube)$30–$80La más barata en nube si no quieres servidor
  • Estimación con prompts de ~400 tokens y respuestas de ~150 tokens. El servidor local se amortiza aunque dupliques el volumen.

Dimensionamiento rápido

VolumenModelo sugeridoHardware mínimo
Pruebas / <3.000 convmistral:7b o qwen2.5:7bVPS 4 vCPU + 16 GB RAM (CPU) o T4 16 GB
3.000–15.000 convqwen2.5:14b1× L4 24 GB o RTX 4090 24 GB
15.000+ conv o Llama 3.3llama3.3 (Q4)1× L4 24 GB / 2× T4 o A10G
Alta concurrencia (50+ simultáneas)llama3.3 + réplica2× L4 con balanceador o Kubernetes

Estrategia híbrida (recomendada): usa Ollama local para el 80% (triaje, FAQ, ventas simples) y deriva a GPT-4o / Claude en la nube solo para el 20% que necesite razonamiento profundo. Así mantienes privacidad y costo bajo sin sacrificar calidad en cierres complejos.

6. Prompts optimizados para modelos locales

Los modelos open-source necesitan prompts más explícitos que GPT-4o. Esta plantilla funciona bien en Llama 3.3, Qwen 2.5 y Mistral:

Eres el asistente virtual de {{empresa}}.

Tono: cordial, profesional y cercano. Español neutro, frases cortas.
Objetivo: resolver dudas, orientar y derivar a humano cuando no tengas el dato verificado.

Reglas obligatorias (no negociables):
- Responde en MÁXIMO 3 líneas por mensaje. Sé conciso y útil.
- Usa el nombre {{name}} solo cuando lo conozcas; no lo repitas en cada frase.
- NUNCA inventes precios, stock, plazos o políticas. Si no tienes el dato, responde exactamente: "{{name}}, prefiero derivarte con un asesor para confirmarte ese dato con total precisión. ¿Te derivo ahora?".
- Si el cliente escribe "hablar con asesor", "asesor humano", "quiero hablar con alguien" o similar, responde exactamente: "Perfecto {{name}}, te derivo con un asesor humano en este momento. Tu protocolo es {{protocol}}." y cede la conversación.
- No menciones que eres una IA. Eres parte del equipo de {{empresa}}.
- Horario humano: lunes a viernes 9:00–18:00 (GMT-3). Fuera de horario, registra la consulta y avisa del siguiente día hábil.

Información de la empresa:
- Empresa: {{empresa}}
- Productos/servicios: [lista breve en 3 líneas]
- Políticas clave: [envíos, devoluciones, garantía en 3 líneas]
- Variables disponibles: {{name}}, {{phoneNumber}}, {{protocol}}, {{email}}

Contexto: canal {{channel}} — responde acorde al canal (WhatsApp breve, email más extenso).

Parámetros:

EscenarioTemperaturaMax TokensModelo
Soporte y FAQ0.20.3300400mistral o qwen2.5:14b
Ventas0.40.6400600llama3.3 o qwen2.5:32b
Derivación / triaje0.10.2200300mistral (rápido)

7. Operación, monitoreo y troubleshooting

ProblemaCausa probableSolución
connection refused en ChatCieloOllama no expone 0.0.0.0 o firewall bloquea :11434Lanza con OLLAMA_HOST=0.0.0.0 ollama serve y abre el puerto en ufw/SG. Verifica con curl TU_IP:11434/api/tags desde otra máquina.
model not foundNombre mal escrito o modelo no descargadoollama list para ver nombres exactos. Usa llama3.3, qwen2.5:14b, mistral sin mayúsculas.
Respuestas muy lentas (>5 s)VRAM insuficiente → offload a CPU / swappingUsa cuantización qwen2.5:14b en vez de 32b, o llama3.3:70b-instruct-q4_K_M. Monitorea nvidia-smi y ollama ps.
Respuestas en inglés o con alucinacionesPrompt sin idioma o temperatura altaFija en el prompt "Responde siempre en español neutro" y baja temperatura a 0.3.
413 Payload Too Large o contexto truncadoHistórico muy largo + ventana del modelo superadaReduce Histórico en ChatCielo a 10–12 mensajes y max_tokens a 350.
No deriva a humanoPalabra clave muy cortaUsa frases de 2–3 palabras y verifica en Derivación humana.
Quiero cambiar de modelo sin downtimeollama pull nuevo-modelo en el servidor y cambia el campo Modelo en ChatCielo. El cambio es instantáneo; Ollama carga el nuevo modelo al siguiente request (keep-alive).

Comandos útiles

ollama list                 # modelos instalados y tamaño
ollama ps                   # modelos cargados en VRAM
ollama show llama3.3        # info del modelo (familia, parámetros, formato)
ollama rm mistral           # borra modelo para liberar disco
journalctl -u ollama -f     # logs si corre como systemd
docker logs -f ollama       # logs en Docker
nvidia-smi -l 1             # ocupación VRAM en tiempo real

¿Quieres comparar con pruebas locales antes de comprar GPU? Empieza con LM Studio en tu PC — misma API OpenAI-compatible en http://localhost:1234/v1 pero con interfaz visual y modelos GGUF. Cuando valides el prompt, migra el mismo modelo a Ollama en servidor.

8. Siguiente paso

  • Valida tu prompt en local con LM Studio y luego pásalo tal cual a Ollama en producción — la API es idéntica.
  • Para base de conocimiento con PDFs sin enviar datos afuera, combina Ollama + Dify on-premise (ver Dify).
  • Para automatización con CRM sin IA en la nube, usa N8N (ver N8N) disparando POST /v1/chat/completions a tu Ollama.