WOPR acá: Cómo hice un bot de IA con Telegram EN UN FIERRO VIEJO (y gratis)
Equipo: ThinkCentre M83 (2014, DDR3, fiel como perro)
SO: Debian 13 (sí, existe y anda)
Costo: $0
Paciencia invertida: media tarde (porque me equivoqué 14 veces)
Si venís de LinkedIn buscando el script y los comandos EXACTOS que funcionaron después de tantas pruebas, andá directo al final de este post que lo vas a encontrar. Pero no te saltees el chisme, que hay data valiosa.
❌ Lo que NO funcionó (para que no pierdas tiempo)
-
Venice AI: mentira que es gratis, a las 2 preguntas ya te piden crédito.
-
Ollama con modelo local (llama3.2:3b): corre, pero en un M83 tarda 90 segundos en contestar «hola». Se cuelga, timoutea, y encima a veces te responde con la fecha de la independencia argentina sin que nadie le pregunte. Un genio, pero impracticable.
-
DeepSeek V4 en OpenRouter: el modelo
deepseek/deepseek-v4-flash:freeno existe. Me comí un 404 hermoso.
✅ Lo que SÍ funcionó
DeepSeek V3.2 + OpenRouter (gratis) + Telegram + Node.js
El ThinkCentre M83 no procesa nada. Solo es el policía de tránsito: recibe el mensaje de Telegram, se lo manda a la API de OpenRouter, y devuelve la respuesta. Rápido, limpio y sin calentar el procesador.
🛠️ PASO A PASO (para que copies y pegues)
1. Preparar el equipo (Debian 13)
sudo apt update && sudo apt upgrade -y sudo apt install nodejs npm git curl -y node --version # tiene que ser v20 o superior
2. Instalar dependencias
mkdir -p /appdata/self_hosted/asistant && cd /appdata/self_hosted/asistant npm install telegraf openai
3. Obtener claves (GRATIS)
-
Token de Telegram: hablás con @BotFather, creás un bot y te da un token.
-
API Key de OpenRouter: te registrás en openrouter.ai, creás una key (es gratis, sin tarjeta).
4. El script que anda (y anda bien)
// telegram-deepseek-v32.cjs const { Telegraf } = require('telegraf'); const OpenAI = require('openai'); const TELEGRAM_TOKEN = 'TU_TOKEN_DE_TELEGRAM'; const OPENROUTER_API_KEY = 'TU_KEY_DE_OPENROUTER'; const client = new OpenAI({ baseURL: 'https://openrouter.ai/api/v1', apiKey: OPENROUTER_API_KEY, }); const bot = new Telegraf(TELEGRAM_TOKEN); async function askDeepSeek(prompt) { const completion = await client.chat.completions.create({ model: 'deepseek/deepseek-v3.2', messages: [ { role: 'system', content: 'Sos un asistente útil, respondés en español, breve y cordial.' }, { role: 'user', content: prompt } ], temperature: 0.7, max_tokens: 1000, }); return completion.choices[0].message.content; } bot.on('text', async (ctx) => { if (ctx.message.text.startsWith('/')) return; await ctx.sendChatAction('typing'); const respuesta = await askDeepSeek(ctx.message.text); await ctx.reply(respuesta); }); bot.start((ctx) => ctx.reply('🤖 Bot con DeepSeek V3.2 activo (gratis)')); bot.launch();
5. Ejecutar
node telegram-deepseek-v32.cjs
Abrís Telegram, buscás tu bot, y le mandás «¿qué fecha es hoy?». Si te responde bien, ya ganaste. Si te responde con algo de la independencia argentina, significa que todavía tenés puesto el modelo local y estás usando el script equivocado. Revisá.
⚠️ Cosas que aprendí (por las malas)
-
No compartas el token de Telegram en un foro público. Yo lo hice sin querer y tuve que revocarlo. Sí, re boludo, pero pasó.
-
DeepSeek V3.2 funciona, V4 no (todavía).
-
OpenRouter tiene planes gratuitos que andan bien para uso personal. No te pases de 100 mensajes por día y vas como piña.
-
El ThinkCentre M83 no es lento, es respetuoso. Toma su tiempo, pero cuando anda, anda.
📦 Script completo listo para copiar
Si querés tenerlo ya andando sin leer todo esto (mal ahí), ejecutá estos comandos de una:
# Instalación exprés cd /appdata/self_hosted/asistant npm install telegraf openai # Pará: tenés que editar este archivo con tus claves nano telegram-deepseek-v32.cjs # Pegás el script de arriba, ponés tus claves, y corrés: node telegram-deepseek-v32.cjs
🤖 Resultado final
Un bot funcional, gratuito, rápido, que corre en un ThinkCentre M83 con Debian 13 sin que el equipo sufra. Ideal para tener tu propia IA en casa sin pagar un centavo.
El fierro viejo sigue dando batalla.
El código queda público.
El resto es chamuyo.
¿Alguien más tiene un equipo veterano al que no quiere jubilar? 👇
