Ponga un gestor de modelos, descargue el LLM adecuado, levante la API local, conecte la búsqueda vectorial para el «conocimiento» del proyecto y tendrá un asistente privado sin Internet. A continuación, se muestra el paso a paso con el código y las listas de verificación.
¿Por qué un ChatGPT local?
Privacidad: los datos no salen de su máquina/servidor.
Autonomía: funciona sin conexión, es resistente a bloqueos y SLA de la nube.
Personalización: su propia «personalidad», sus propios conocimientos, integración bajo el proyecto.
Coste: costes de interferencia cero/predecibles.
Requisitos de hardware y software
Guion | CPU/RAM | GPU (preferiblemente) | Notas |
|---|---|---|---|
Portátil / PoC | 4+ núcleos, 16 GB de RAM | Sin GPU o 4–6 GB de VRAM | Cuantificación GGUF (q4_0/q5) para modelos 7B |
Hospital / equipo | 8+ núcleos, 32–64 GB de RAM | RTX 3060–4090, 8–24 GB de VRAM | Modelos 13B-14B, respuesta más rápida y mejor calidad |
Servicio dentro de la empresa | 16+ núcleos, 64+ GB de RAM | A100/RTX 6000, etc. | Servidores, solicitudes de parcheo, pruebas de carga |
Software: Linux/macOS/WSL2, Python 3.10+, Docker (según corresponda).

Selección del modelo
Mistral 7B — inicio rápido, excelente calidad para su tamaño.
LLaMA 3 (8B/70B) — respuestas fuertes, 8B es bueno en un portátil (en cuantificación).
Phi / Qwen / Gemma — alternativas compactas y económicas.
Formato de escala para localización: GGUF (para llama.cpp/Ollama/GPT4All). Cuanto menor sea la cuantificación (q4 → q8), menos memoria se necesita, pero mayor es el riesgo de pérdida de calidad.
Pila de ejecución: tres rutas cómodas.
Ollama — el gestor de modelos más sencillo.
curl -fsSL https://ollama.com/install.sh | sh ollama run mistralVentajas: un comando para el resultado, API REST local, caché de modelos.
GPT4All — GUI/CLI, funciona en Windows/macOS/Linux.
git clone https://github.com/nomic-ai/gpt4all cd gpt4all && pip install -r requirements.txt python gpt4all.pyVentajas: interfaz amigable, preajustes sencillos.
LM Studio / text-generation-webui — UI flexibles para experimentos, perfiles de cuantificación, complementos.
Mejoramos nuestra API (como ChatGPT) 🔌
El REST local es útil para integraciones con IDE, bots y backend. Ejemplo: FastAPI + Ollama:
<!-- main.py -->
from fastapi import FastAPI
from pydantic import BaseModel
import subprocess, json
app = FastAPI()
class ChatRequest(BaseModel):
prompt: str
@app.post("/chat")
def chat(req: ChatRequest):
# Llamada simple a ollama (la respuesta es un flujo o una línea completa)
proc = subprocess.run(
["ollama", "run", "mistral", req.prompt],
capture_output=True, text=True
)
return {"response": proc.stdout.strip()}
# inicio de la API
uvicorn main:app --reload --port 8000
# solicitud
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{"prompt":"Explain RAG in 1 sentence."}'Para la producción, envuelve en Docker, añade registros, tiempos de espera y limitación de tokens.

Añadimos «memoria»: RAG a través de una base de datos vectorial
RAG (Retrieval Augmented Generation) — el modelo responde basándose en tus documentos.
Divida los documentos en fragmentos (Markdown/PDF/HTML → fragmentos de 300-800 tokens).
Cree incrustaciones (por ejemplo,
all-MiniLM-L6-v2o un modelo de incrustación de texto local).Añadir a la base de datos vectorial: Chroma, FAISS, Qdrant.
A petición: encontrar los k chunks más cercanos, sustituirlos en el prompt del sistema y enviarlos al LLM.
# seudocódigo de la línea de tubería
context = retriever.search(query, top_k=5)
prompt = f"Answer using ONLY this context:\\n{context}\\n\\nQuestion: {query}"
answer = llm(prompt)Pros: respuestas relevantes para tu base de datos. Contras: ingeniería de datos y control de calidad del contexto.
Ajuste fino
Prompt del sistema: establece el estilo, el formato, las restricciones.
Temperatura/top‑p: menos — más determinista y útil para la documentación.
Plantillas de chat: utilice el rol system/user/assistant, guarde el historial de diálogo en la base de datos.
Finetuning/LoRA: Entrena más en tus diálogos: mejora las respuestas de dominio de forma precisa.
Seguridad y funcionamiento
Mantenga la API para Auth (claves, OAuth, mTLS), limite las fuentes de CORS.
Limita la longitud de las indicaciones y el número de tokens, establece tiempos de espera.
Registre solicitudes/respuestas (con ofuscación de datos privados), supervise la latencia y OOM.
Usuario/contenedor Unix independiente, derechos mínimos, actualizaciones periódicas de pesos y dependencias.
Problemas típicos y soluciones rápidas
Síntoma | Motivo | Fijo |
|---|---|---|
Respuestas lentas | Modelo grande / sin GPU | Cuantificación GGUF q4/q5, modelo más pequeño, búsqueda bim ↓, temperatura ↓ |
Out Of Memory | RAM/VRAM insuficiente | Cuantificación más baja, descarga a la CPU, limitar max_tokens/contexto |
Alucinaciones | Falta de contexto | RAG + incrustaciones de alta calidad, validación de fuentes, indicador del sistema |
Inestabilidad | Montajes en bruto | Fijar versiones, docker-compose, healthchecks, políticas de reintento |
Total
ChatGPT local: real y útil. Comienza con Ollama + Mistral, mejora la API, añade RAG y perfecciona la calidad con la ingeniería de prompts. Luego, seguridad, monitorización, dockerización. Listo: tienes un asistente personal de IA bajo control y privacidad.
Tu GPT no comienza con un botón, sino con una base: código, datos, comprensión de modelos.
Obtén conocimientos y práctica en «Codice» — y consigue un asistente para tus tareas. 💻🧠
Y también tenemos un canal de telegram, donde discutimos ideas geniales, compartimos experiencias y analizamos juntos las tareas: aprender no solo es útil, sino también divertido.
