pip install google-generativeai
pip install python-telegram-bot
import google.generativeai as genai
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes
Aquí importamos las librerías necesarias. Usamos:
google.generativeai: para acceder al modelo de Gemini.telegram: para construir el bot de Telegram.
# Configura tu API key de Gemini
GEMINI_API_KEY = "AQUI_TU_API_KEY_DE_GEMINI"
genai.configure(api_key=GEMINI_API_KEY)
Reemplaza "AQUI_TU_API_KEY_DE_GEMINI" por tu clave de API de Gemini.
Es necesaria para autenticarte con el servicio de Google y poder usar su modelo de IA.
# Crea el modelo de Gemini
modelo = genai.GenerativeModel("gemini-2.0-flash")
Instanciamos el modelo gemini-2.0-flash, que es el más reciente para texto.
Con esto, ya podemos enviarle mensajes y recibir respuestas generadas por IA.
def obtener_respuesta(mensaje):
try:
respuesta = modelo.generate_content(mensaje)
return respuesta.text.strip()
except Exception as e:
print("Error al generar respuesta:", e)
return "Lo siento, hubo un problema al procesar tu pregunta."
Esta función toma el mensaje del usuario y se lo pasa a Gemini. Si todo va bien, devuelve el texto generado. Si hay un error, devuelve un mensaje de error amigable.
async def responder(update: Update, context: ContextTypes.DEFAULT_TYPE):
mensaje = update.message.text
respuesta = obtener_respuesta(mensaje)
await update.message.reply_text(respuesta)
Esta función responde cada vez que el usuario envía un mensaje. Toma el texto, obtiene una respuesta usando Gemini y luego la envía de vuelta al usuario.
/start
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("¡Hola! Soy un chatbot con inteligencia artificial. Pregúntame lo que quieras.")
Esta función maneja el comando /start que se ejecuta cuando el usuario inicia el bot por primera vez.
if __name__ == "__main__":
TOKEN = "AQUI_TU_TOKEN_DE_TELEGRAM"
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, responder))
print("Bot corriendo con Gemini...")
app.run_polling()
En esta parte final se configura el bot con el token de Telegram, se registran los "handlers" para comandos y mensajes, y se pone en marcha.