EasyPanel es un gestor de Docker´s en que a veces parecer una tarea desalentadora instalar servicios como Ollama, pero con esta guía rápida y sencilla, estarás listo para desplegar tu microservicio de generación de texto en poco tiempo. EasyPanel, una herramienta versátil para gestionar contenedores Docker, ha evolucionado para hacer que el proceso sea aún más eficiente y manejable, incluso para aquellos que no son expertos en DevOps.
Paso 1: Preparar el entorno
Primero, asegúrate de tener EasyPanel configurado correctamente en tu servidor. EasyPanel simplifica la gestión de contenedores Docker y ahora proporciona una interfaz aún más intuitiva para gestionar tus aplicaciones. Una vez instalado EasyPanel, sigue estos pasos para instalar Ollama:
- Crea un proyecto en EasyPanel.
- Crea un servicio dentro del proyecto.
- Asigna un nombre al servicio App (recuerda que no puedes usar letras en mayúscula) y crea el servicio.
Toma el que dice App
Pasos para implementar
Este Dockerfile configurará el entorno necesario para correr tu aplicación FastAPI con inteligencia artificial (IA). A continuación, te muestro cómo hacerlo:
Modificar el Dockerfile en EasyPanel:
- Abre EasyPanel y navega a tu proyecto.
- Accede a la sección donde puedes editar el Dockerfile.
- Copia y pega el siguiente Dockerfile:
# Usar la imagen ligera de Ubuntu 22.04
FROM ubuntu:22.04
# Instalar paquetes necesarios
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-venv \
curl \
wget \
&& rm -rf /var/lib/apt/lists/*
# Configurar un entorno virtual
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# Actualizar pip e instalar dependencias de Python
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
RUN pip install --no-cache-dir fastapi uvicorn requests python-decouple pydantic \
langchain openai tabulate matplotlib pandas langchain-experimental einops accelerate transformers torch
# Verificar la instalación de torch (opcional pero recomendado para depuración)
RUN pip show torch
# Establecer el directorio de trabajo
WORKDIR /app
# Descargar el archivo app.py desde GitHub
RUN wget -O app.py https://raw.githubusercontent.com/nuntius-dev/ollama/main/app.py
# Exponer el puerto para FastAPI
EXPOSE 80
# Comando para ejecutar la aplicación
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "80"]
Guardar y desplegar:
- Guarda los cambios en tu Dockerfile.
- Despliega tu contenedor utilizando la opción de “deploy” o “build”.
Consideraciones en caso de errores
Este Dockerfile configura un entorno Python con todas las bibliotecas necesarias para ejecutar Ollama. Asegúrate de que tu servidor tiene suficiente RAM y CPU para manejar la carga de trabajo de Ollama, ya que la generación de texto puede ser intensiva en recursos. Se recomienda al menos 10 GB de RAM y 2 CPUs, pero para un rendimiento óptimo, considera 24 GB de RAM y 4 CPUs.
En el panel de despliegue de EasyPanel, podrás monitorear el estado de la instalación. Luego de unos minutos, deberías ver que el proceso ha finalizado.
Pasos para verificar la instalación
Después de desplegar tu servicio, accede a la sección de dominios en EasyPanel para editar la configuración del puerto. Cambia el puerto a 8000 si es necesario y puedes añadir un dominio personalizado si colocas la IP de tu servidor en el DNS del dominio.
Una vez que todo esté configurado, visita tu dominio y deberías ver:
{"message": "Bienvenido a la API Ollama"}
Para probar la IA, dirígete a http://tu-dominio.com/docs
y revisa si es tu dominio o el que te proporcionaron de forma gratuita.
Ejemplo de respuesta
Al enviar un prompt a la API, deberías ver eso: si colocas “what is python?”, la salida debería ser similar a:
{
"generated_text": "<|system|>\nYou are a friendly chatbot.</s>\n<|user|>\nwhat is python?</s>\n<|assistant|>\nPython is a programming language that is popular for web development, machine learning, artificial intelligence, and many other applications. It has a simple syntax, readability, and provides powerful tools for data manipulation and analysis. Python is widely used in the industry due to its flexibility, robustness, and ease of learning.\n\nIn Python, functions are the basic units of programming. They are responsible for performing a specific task or function. Python supports various data types, including numbers, strings, lists, dictionaries, and more. It also provides built-in libraries that offer various functionalities, such as database connectivity, image processing, and natural language processing.\n\nPython is highly modular, which means it separates its functionality into small, reusable components called modules. These modules can be imported into other modules, making it easier to reuse code. Python also supports asynchronous programming, which allows for parallel execution of code, making it faster and more efficient.\n\nOverall, Python is a versatile and powerful programming language that is used in a wide range of applications, from data analysis to web development to artificial intelligence."
}
Conclusión
Con estos sencillos pasos, has instalado Ollama en EasyPanel y estás listo para empezar a generar texto con tu nuevo microservicio. EasyPanel hace que la gestión de contenedores Docker sea accesible y eficiente, permitiéndote enfocarte en desarrollar y desplegar tus aplicaciones sin complicaciones.
Si encuentras alguna dificultad, no dudes en buscar asistencia en la comunidad o utilizar el soporte de EasyPanel.
Quizás te interese nuestro anterior post
También puede ver el proyecto en GitHub