Saltar al contenido
K0lateral
Programación

Cómo usar la API de Gemini para crear un chatbot en Python

· (banco local)

Aprende a integrar la API de Gemini en Python paso a paso. Código listo para copiar, claves de seguridad y un chatbot funcional en minutos.

Cómo usar la API de Gemini para crear un chatbot en Python
(banco local)

Cómo usar la API de Gemini para crear un chatbot en Python

Mira, colega, si estás aquí es porque estás harto de tutoriales que se van por las ramas. Vamos al grano: quieres montar un chatbot con Gemini y Python, y lo quieres funcionando ayer. Pues bien, te voy a dar la guía que me habría gustado tener a mí, sin humo.

Primero, lo básico. Necesitas una API key de Google AI Studio. La sacas en dos minutos y la guardas como variable de entorno, no la pegues en el código. Eso es de novatos y luego te la roban en GitHub. Con eso, instalamos la librería oficial:

pip install google-generativeai

Ahora, el "hola mundo" de nuestro bot. Crea un archivo bot.py:

import google.generativeai as genai

import os

genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

model = genai.GenerativeModel("gemini-pro")

respuesta = model.generate_content("Dime un chiste corto")

print(respuesta.text)

Eso funciona, pero es soso. Un chatbot de verdad tiene contexto. Aquí está el truco del almendruco: mantener el historial. Mira este prompt de sistema que te recomiendo para que el bot no se vaya por los cerros de Úbeda:

sistema = """Eres un asistente experto en Python.

Responde siempre en español con tono cercano.

Si no sabes algo, dilo claramente, no inventes.

Cuando des código, incluye comentarios en español."""

model = genai.GenerativeModel("gemini-pro", system_instruction=sistema)

historial = []

print("Bot listo. Escribe 'salir' para terminar.")

while True:

usuario = input("Tu: ")

if usuario.lower() == "salir":

break

historial.append({"role": "user", "parts": [usuario]})

chat = model.start_chat(history=historial)

respuesta = chat.send_message(usuario)

print(f"Bot: {respuesta.text}")

historial.append({"role": "model", "parts": [respuesta.text]})

¿Ves la diferencia? El historial se acumula y el bot recuerda. Pero ojo, tío, que esto tiene un límite. El contexto de Gemini Pro es de 32k tokens. Si el chat se hace largo, te va a petar. Buenas prácticas: cada cierto número de mensajes, resume el historial o directamente lo limpias.

Otro punto crítico: los errores. La API cae, da timeouts, te limita por rate. No seas de los que deja que el script muera. Controla las excepciones:

try:

respuesta = model.generate_content(usuario)

print(f"Bot: {respuesta.text}")

except Exception as e:

print(f"Error: {e}. Reintentando en 3 segundos...")

time.sleep(3)

¿Y si quieres que el bot tenga personalidad propia? Aquí va mi prompt favorito para darle carácter:

sistema = """Eres 'El Técnico', un experto en reparación de PCs.

Tu tono es directo y práctico, como un mecánico de barrio.

Empiezas cada respuesta con 'Mira, colega...'.

Siempre das soluciones paso a paso, pero sin rodeos.

Si el problema es de hardware, recomiendas piezas concretas con presupuesto aproximado."""

Ese prompt es oro puro, colega. Cambia el rol, el tono y las reglas, y tienes un bot diferente sin tocar el código.

Para terminar, un consejo de producción: no despliegues esto tal cual. Usa un framework como FastAPI para exponer tu bot como API, y un frontend con JavaScript. Pero eso ya es otro artículo.

Y tú, ¿qué framework usas para tus chatbots? ¿Le das a LangChain o vas a pelo con la API? Cuéntame en los comentarios.

Más sobre Programación

Ver todo →