¿DeepSeek siempre está ocupado? Despliégalo localmente con Milvus en solo 10 minutos—¡No más esperas!
Si has intentado usar DeepSeek-R1 y te has encontrado con el mensaje, “El servidor está ocupado. Inténtalo de nuevo más tarde,” sabes lo disruptivo que puede ser. Esperar a servidores ocupados puede interrumpir tu flujo de trabajo, especialmente cuando necesitas respuestas rápidas o estás concentrado en una tarea.
Una forma práctica de evitar esto es ejecutar DeepSeek-R1 directamente en tu propia máquina. Esto te permite eludir los retrasos del servidor y tener más control sobre cómo y cuándo usas el modelo. En esta guía, veremos cómo configurar DeepSeek-R1 localmente usando algunas herramientas que funcionan juntas. Ollama te ayudará a descargar y ejecutar el modelo en tu sistema. Luego usaremos AnythingLLM para facilitar la interacción con DeepSeek-R1 mediante una interfaz sencilla. Por último, integraremos Milvus, una base de datos vectorial, para que el modelo pueda consultar datos externos, como tus propios documentos o información personalizada, al responder preguntas.
No necesitas hardware de primer nivel para empezar. DeepSeek-R1 ofrece versiones más pequeñas del modelo que pueden ejecutarse en configuraciones más comunes. Ya sea que uses DeepSeek-R1 para trabajo, investigación o proyectos personales, configurarlo localmente te ayudará a evitar problemas del servidor y adaptar el modelo a tus necesidades. Empecemos configurando DeepSeek-R1 con Ollama.
Implementación de DeepSeek-R1 con Ollama: instalación y configuración
Comienza instalando Ollama, que simplifica el proceso de ejecutar modelos de IA en tu máquina local. Empieza visitando la página de descarga de Ollama y seleccionando el instalador que corresponda a tu sistema operativo.
Figura: página de descarga de Ollama
Una vez que la descarga se complete, ejecútala y sigue las indicaciones en pantalla para terminar la configuración. Después de la instalación, confirma que Ollama esté configurado correctamente abriendo tu interfaz de línea de comandos y escribiendo:
ollama --version
Si todo está instalado correctamente, verás el número de versión mostrado. Esta comprobación asegura que tu entorno esté listo para gestionar modelos de IA localmente.
A continuación, descarga DeepSeek-R1. Para la mayoría de los usuarios, la versión de 7 mil millones de parámetros (7B) ofrece un equilibrio práctico entre rendimiento y necesidades de recursos, y generalmente requiere una GPU con alrededor de 18 GB de VRAM. Si tu hardware es menos capaz, está disponible el modelo 1.5B (alrededor de 3.9 GB de VRAM). Para configuraciones avanzadas, puedes considerar el modelo completo 671B, aunque exige muchos más recursos. Ajusta el comando siguiente según el tamaño del modelo que quieras:
ollama pull deepseek-r1:7b
El comando anterior descargará el modelo especificado en tu computadora como se muestra a continuación:
Figura: instalación de deepseek-r1:7b mediante Ollama en una computadora
Una vez que se complete la descarga del modelo, inicia DeepSeek-R1 ejecutando:
ollama run deepseek-r1:7b
Reemplaza 7b por 1.5b u otra versión si elegiste un modelo diferente. Después de que el modelo se inicie, puedes empezar a interactuar con él escribiendo tus prompts directamente en la línea de comandos.
Figura: una sesión de ejemplo de deepseek-r1:7b en la que un usuario hace una consulta y el modelo da una respuesta
La captura de pantalla anterior muestra una sesión de ejemplo en la que preguntamos, ¿Quién eres? y DeepSeek-R1 responde con una introducción, confirmando que el modelo está en ejecución y listo para ayudar.
Instalación y configuración de AnythingLLM
Si bien interactuar a través de la línea de comandos funciona para pruebas básicas, puede resultar engorroso para un uso continuo. AnythingLLM proporciona una interfaz estilo chat que hace que las conversaciones con tus modelos ejecutándose localmente sean más intuitivas. También admite múltiples backends de modelos de lenguaje, ofrece una forma sencilla de cargar datos personalizados y puede integrarse con bases de datos vectoriales como Milvus. A continuación se presenta una descripción general de sus funciones y cómo instalarlo y conectarlo a Ollama.
¿Por qué usar AnythingLLM?
Algunas de las funciones son:
Chat interactivo: AnythingLLM reemplaza las indicaciones manuales de la línea de comandos por una ventana de chat, lo que facilita ver el flujo de la conversación y consultar consultas anteriores.
Gestión centralizada de modelos: Puedes ejecutar diferentes modelos de lenguaje bajo una sola interfaz y cambiar entre ellos sin tener que manejar múltiples terminales.
Integración de datos: El soporte integrado para bases de datos vectoriales (como Milvus) te permite cargar documentos, archivos de investigación u otros recursos para que el modelo pueda consultarlos al responder preguntas.
Configuración sencilla de embeddings: Elige qué modelo de embeddings usar para convertir tus documentos y consultas de usuario en vectores, ayudando al sistema a encontrar información relevante con mayor precisión.
Estas funciones proporcionan un flujo de trabajo más fluido para cualquiera que necesite algo más que interacciones básicas en la terminal. Veamos cómo podemos instalar y configurar AnythingLLM:
Paso 1: Descargar e instalar AnythingLLM
Ve al sitio web de AnythingLLM y elige el instalador que coincida con tu sistema operativo. Después de descargar el archivo, ejecútalo y sigue las indicaciones para completar la instalación. Una vez instalado, abre AnythingLLM y verás una página o asistente de Get Started, lo que indica que la aplicación está lista para su configuración inicial.
Paso 2: Omitir las indicaciones iniciales
Cuando abras AnythingLLM por primera vez, verás indicaciones para LLM Preference, Data Handling & Privacy y una Survey opcional. Por ahora, elige Skip en cada pantalla para que podamos demostrar cómo acceder a estas opciones y configurarlas dentro de la propia aplicación. No verás estas indicaciones cada vez que inicies AnythingLLM, por lo que aprender dónde encontrarlas más adelante te ayudará a ajustar la configuración o actualizar preferencias según sea necesario.
Paso 3: Crear tu primer espacio de trabajo
Después de omitir las indicaciones iniciales, se te pedirá que crees tu primer espacio de trabajo.
Elige un nombre para tu espacio de trabajo y luego haz clic en la flecha derecha para continuar. Hemos llamado al nuestro Milvus-DeepSeek-Local-Deploy. Este espacio de trabajo proporciona un área dedicada para organizar conversaciones y almacenar cualquier documento que cargues. Una vez creado, verás la interfaz de chat:
Aquí es donde interactuarás con DeepSeek-R1 después de conectar el modelo.
Paso 4: Conectar DeepSeek-R1 a tu espacio de trabajo
Para conectar tu modelo, haz clic en el botón Settings junto al nombre de tu espacio de trabajo. En el panel que se abre, selecciona Chat Settings. Verás opciones para elegir un Workspace LLM Provider y establecer un Workspace Chat model.
Como estamos usando Ollama, elige Ollama en la lista de proveedores. Luego, elige cualquier modelo que hayas descargado a través de Ollama haciendo clic en Workspace Chat model. Esto incluye DeepSeek-R1 (por ejemplo, en nuestro caso, deepseek-r1:7b).
Figura: Panel de Chat Settings que muestra Ollama como LLM Provider y deepseek-r1:7b como el modelo seleccionado
Una vez que selecciones un modelo, guarda los cambios. Tu espacio de trabajo ahora está conectado al modelo elegido, lo que te permite interactuar con él directamente a través de la interfaz de chat. Vuelve a tu interfaz de chat para empezar a conversar.
Paso 5: Probar el modelo con una consulta
Ahora que tu espacio de trabajo está conectado a DeepSeek-R1, puedes probar cómo responde a preguntas para las que no ha sido entrenado. Prueba preguntando, ¿Quién es Chris Churilo? y observa que el modelo no proporciona una respuesta clara.
Figura: Respuesta del LLM a “¿Quién es Chris Churilo?”
Como el modelo carece de información sobre Chris Churilo, no puede dar una respuesta detallada. Esta brecha ilustra la necesidad de una fuente de conocimiento externa. Milvus, una base de datos vectorial, puede almacenar datos relevantes en forma de embeddings sobre Chris Churilo para que el LLM pueda consultarlos.
Configuración de Milvus e integración con AnythingLLM
Antes de vincular tu espacio de trabajo a datos externos, tendrás que desplegar una base de datos vectorial que pueda almacenar embeddings (representaciones numéricas de datos (como palabras o imágenes) en un espacio vectorial continuo, capturando sus significados o características para que los elementos similares se posicionen más cerca entre sí) a partir de tus datos personalizados. Veamos cómo instalar Milvus y luego configurar AnythingLLM para usarlo como base de datos vectorial, permitiendo que el modelo dé respuestas más informadas.
Instalación de Milvus
Primero, asegúrate de que Docker y Docker Compose estén instalados en tu máquina. Luego, abre tu terminal y descarga el archivo Docker Compose independiente de Milvus ejecutando:
wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
A continuación, abre el archivo docker-compose.yml descargado en tu editor de texto preferido. Localiza los ajustes de configuración bajo el servicio standalone y actualiza los campos COMMON_USER y COMMON_PASSWORD con las credenciales que desees.
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
COMMON_USER: milvus
COMMON_PASSWORD: milvus
Usaremos estas credenciales más adelante al configurar AnythingLLM para conectarse a Milvus. Después de guardar tus cambios, vuelve a la terminal e inicia Milvus ejecutando el siguiente comando:
docker-compose up -d
Este comando inicia Milvus en segundo plano. Puedes verificar que Milvus se está ejecutando comprobando tus contenedores Docker con docker ps o visitando su endpoint de estado si está configurado.
Figura: Inicio de Milvus usando docker compose en la línea de comandos
Ahora que Milvus está instalado, estamos listos para integrarlo con AnythingLLM, lo que permitirá que tu espacio de trabajo aproveche esta fuente de datos externa para mejorar las respuestas del modelo.
Integración de Milvus con AnythingLLM
Ahora que Milvus está en ejecución, configuremos AnythingLLM para almacenar y recuperar embeddings de tus datos personalizados. Sigue los pasos a continuación para habilitar respuestas más impulsadas por el contexto desde tu modelo DeepSeek-R1.
1. Abre la configuración
Haz clic en el botón Open Settings en la esquina inferior izquierda de la interfaz de AnythingLLM. Esto abrirá un panel con varias categorías de configuración.
Figura: Interfaz principal de AnythingLLM con el botón Open Settings resaltado
2. Selecciona la base de datos vectorial
Dentro del panel de configuración, expande AI Providers y selecciona Vector Database. En Vector Database Provider, elige Milvus. Aparecerán campos para la dirección y las credenciales que configuraste en el archivo Docker Compose de Milvus:
Milvus DB Address:
http://localhost:19530Milvus Username: (el nombre de usuario que estableciste)
Milvus Password: (la contraseña que estableciste)
Haz clic en Save para confirmar tu configuración.
Figura: Configuración de la base de datos vectorial en AnythingLLM con Milvus seleccionado
3. Elegir un Embedder (Opcional)
Aún en AI Providers, puedes elegir un modelo de embeddings diferente si lo deseas. Si no se realiza ninguna selección, AnythingLLM usa su embedder predeterminado. Este paso es opcional para un uso básico, pero puede ser útil si quieres optimizar cómo se vectoriza el texto. Para este caso, usaremos la opción predeterminada.
Figura: Selección del modelo de embeddings en AnythingLLM, si corresponde
4. Subir documentos
Vuelve a la interfaz principal o a la vista de tu workspace. Sube cualquier documento que quieras que el modelo use como referencia arrastrándolo y soltándolo, o seleccionándolo a través de la interfaz. AnythingLLM listará tus archivos, listos para generar embeddings.
Figura: Área de subida de documentos que muestra los archivos recién añadidos
5. Mover documentos al workspace
Una vez que aparezcan tus documentos, selecciona cada archivo y elige Move to Workspace. En el panel derecho, haz clic en Save and Embed. AnythingLLM convierte los documentos en embeddings vectoriales y los almacena en Milvus, haciendo que el contenido sea accesible para DeepSeek-R1.
Figura: Mover documentos a un workspace y generar sus embeddings
Después de completar estos pasos, tu modelo DeepSeek-R1 puede consultar los documentos embebidos. Por ejemplo, si ahora preguntas, ¿Quién es Chris Churilo?. El modelo sabrá quién es, como puedes ver a continuación:
Figura: DeepseekR1 pensando cómo responder una consulta ¿Quién es Chris Churilo? usando Milvus
El modelo hace esto buscando la información relevante almacenada en Milvus, proporcionando una respuesta más detallada que antes. Aquí está la respuesta final a nuestra consulta.
Figura: DeepseekR1 respondiendo la consulta ¿Quién es Chris Churilo? usando Milvus
El modelo ahora responde con una respuesta detallada que cita el documento subido. En la captura de pantalla anterior, puedes ver cómo el modelo extrae detalles relevantes sobre el rol, la trayectoria y las contribuciones de Chris Churilo, información que no estaba disponible antes de integrar Milvus. Esta respuesta mejorada demuestra el valor de combinar un despliegue local de LLM con una base de datos vectorial para crear una experiencia de IA más informada y consciente del contexto.
Verificar colecciones en Milvus
Una vez que hayas generado embeddings de documentos mediante AnythingLLM, puedes confirmar que Milvus los está almacenando correctamente listando tus colecciones. Si aún no has instalado pymilvus, empieza instalándolo con este comando:
pip install pymilvus
Luego ejecuta el siguiente código de Python para conectarte a Milvus, recuperar una lista de colecciones e imprimir sus nombres:
from pymilvus import MilvusClient
# Connect to Milvus
client = MilvusClient(uri="http://localhost:19530") # Replace with your URI if it's different
# List all collections
collections = client.list_collections()
# Print results
print(f"Found {len(collections)} collections:")
for idx, collection in enumerate(collections, 1):
print(f"{idx}. {collection}")
# Optional: Close the connection when done
client.close()
Si acabas de instalar Milvus, no verás muchas colecciones. Sin embargo, después de usar AnythingLLM para generar embeddings de documentos, notarás una nueva colección con el nombre del workspace que usaste. En el ejemplo de salida a continuación, la colección relevante aparece como 21. Anythingllm_milvus_deepseek_local_deploy.
Esto confirma que AnythingLLM ha creado correctamente una colección dedicada en Milvus para almacenar los embeddings de tus datos cargados.
Ahora hemos repasado cómo implementar DeepSeek-R1 localmente, configurar AnythingLLM para una interfaz fácil de usar e integrar Milvus como base de datos vectorial. Esta configuración permite que el modelo acceda a datos personalizados y responda preguntas de forma más eficaz.
Conclusión
Configurar DeepSeek-R1 localmente con la ayuda de Ollama, AnythingLLM y Milvus abre nuevas posibilidades para personalizar y mejorar tus flujos de trabajo de IA. Este enfoque no solo te da control total sobre tu entorno, sino que también permite que tu modelo acceda a fuentes de datos específicas, mejorando su relevancia y precisión. Con esta configuración, ya no estás limitado por la disponibilidad del servidor ni por respuestas genéricas: tu IA ahora puede trabajar directamente con la información que proporcionas, adaptada a tus necesidades.
Recursos adicionales
Sigue leyendo

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

Introducing Business Critical Plan: Enterprise-Grade Security and Compliance for Mission-Critical AI Applications
Discover Zilliz Cloud’s Business Critical Plan—offering advanced security, compliance, and uptime for mission-critical AI and vector database workloads.

Vector Databases vs. Time Series Databases
Use a vector database for similarity search and semantic relationships; use a time series database for tracking value changes over time.


