# 馃 Ollama Telegram Bot
> Repo original: https://github.com/ruecat/ollama-telegram/tree/main
## Prerrequisitos
- [Token de Telegram-Bot](https://core.telegram.org/bots#6-botfather)
## Instalaci贸n (Sin Docker)
+ Instala la 煤ltima versi贸n de [Python](https://python.org/downloads)
+ 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](https://hub.docker.com/r/ruecat/ollama-telegram)
+ Descarga el archivo [.env.example](https://github.com/ruecat/ollama-telegram/blob/main/.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)
```yml
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
```sh
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?]](https://core.telegram.org/bots/tutorial#obtain-your-bot-token) | S铆 | `yourtoken` | MTA0M****.GY5L5F.****g*****5k |
| `ADMIN_IDS` | IDs de usuarios de Telegram de los administradores.
Pueden cambiar el modelo y controlar el bot. | S铆 | | 1234567890
**O**
1234567890,0987654321, etc. |
| `USER_IDS` | IDs de usuarios de Telegram de los usuarios regulares.
Solo pueden chatear con el bot. | S铆 | | 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
+ [Ollama](https://github.com/jmorganca/ollama)
## Librer铆as utilizadas
+ [Aiogram 3.x](https://github.com/aiogram/aiogram)