Instalacion de Librerías


pip install google-generativeai
pip install python-telegram-bot
            

1. Importación de Librerías


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:

2. Configuración de la API de Gemini


# 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.

3. Crear el modelo generativo


# 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.

4. Función para obtener la respuesta de Gemini


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.

5. Función para manejar los mensajes del usuario


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.

6. Función para el comando /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.

7. Configuración e Inicio del Bot


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.