Curso-lenguaje-python/catch-all/06_bots_telegram/09_ollama_bot
2024-08-18 21:15:33 +02:00
..
bot Update Ollama bot 2024-08-18 21:15:33 +02:00
.dockerignore Add Ollama bot 2024-08-18 20:16:34 +02:00
.env.example Add Ollama bot 2024-08-18 20:16:34 +02:00
.gitignore Add Ollama bot 2024-08-18 20:16:34 +02:00
docker-compose.yml Update Ollama bot 2024-08-18 21:15:33 +02:00
Dockerfile Add Ollama bot 2024-08-18 20:16:34 +02:00
README.md Add Ollama bot 2024-08-18 20:16:34 +02:00
requirements.txt Add Ollama bot 2024-08-18 20:16:34 +02:00

🦙 Ollama Telegram Bot

Repo original: https://github.com/ruecat/ollama-telegram/tree/main

Prerrequisitos

Instalación (Sin Docker)

  • Instala la última versión de Python

  • Clona el repositorio

    git clone https://github.com/ruecat/ollama-telegram
    
  • Instala los requisitos desde requirements.txt

    pip install -r requirements.txt
    
  • Ingresa todos los valores en .env.example

  • Renombra .env.example a .env

  • Inicia el bot

    python3 run.py
    

Instalación (Imagen Docker)

La imagen oficial está disponible en dockerhub: ruecat/ollama-telegram

  • Descarga el archivo .env.example, renómbralo a .env y completa las variables.

  • Crea un archivo docker-compose.yml (opcional: descomenta la parte de GPU en el archivo para habilitar la GPU de Nvidia)

    version: '3.8'
    services:
      ollama-telegram:
        image: ruecat/ollama-telegram
        container_name: ollama-telegram
        restart: on-failure
        env_file:
          - ./.env
    
      ollama-server:
        image: ollama/ollama:latest
        container_name: ollama-server
        volumes:
          - ./ollama:/root/.ollama
    
        # Descomenta para habilitar la GPU de NVIDIA
        # De lo contrario, se ejecuta solo en la CPU:
    
        # deploy:
        #   resources:
        #     reservations:
        #       devices:
        #         - driver: nvidia
        #           count: all
        #           capabilities: [gpu]
    
        restart: always
        ports:
          - '11434:11434'
    
  • Inicia los contenedores

    docker compose up -d
    

Instalación (Construye tu propia imagen Docker)

  • Clona el repositorio

    git clone https://github.com/ruecat/ollama-telegram
    
  • Ingresa todos los valores en .env.example

  • Renombra .env.example a .env

  • Ejecuta UNO de los siguientes comandos de docker compose para iniciar:

    1. Para ejecutar ollama en un contenedor de docker (opcional: descomenta la parte de GPU en el archivo docker-compose.yml para habilitar la GPU de Nvidia)

      docker compose up --build -d
      
    2. Para ejecutar ollama desde una instancia instalada localmente (principalmente para MacOS, ya que la imagen de docker aún no soporta la aceleración de GPU de Apple):

      docker compose up --build -d ollama-telegram
      

Configuración del Entorno

Parámetro Descripción ¿Requerido? Valor por Defecto Ejemplo
TOKEN Tu token de bot de Telegram.
[¿Cómo obtener el token?]
yourtoken MTA0M****.GY5L5F.****g*****5k
ADMIN_IDS IDs de usuarios de Telegram de los administradores.
Pueden cambiar el modelo y controlar el bot.
1234567890
O
1234567890,0987654321, etc.
USER_IDS IDs de usuarios de Telegram de los usuarios regulares.
Solo pueden chatear con el bot.
1234567890
O
1234567890,0987654321, etc.
INITMODEL LLM predeterminado No llama2 mistral:latest
mistral:7b-instruct
OLLAMA_BASE_URL Tu URL de OllamaAPI No localhost
host.docker.internal
OLLAMA_PORT Tu puerto de OllamaAPI No 11434
TIMEOUT El tiempo de espera en segundos para generar respuestas No 3000
ALLOW_ALL_USERS_IN_GROUPS Permite que todos los usuarios en chats grupales interactúen con el bot sin agregarlos a la lista USER_IDS No 0

Créditos

Librerías utilizadas