Instalacion de Librerías


pip install google-generativeai
            

Importación de librerías

import csv
import google.generativeai as genai

Importamos csv para manejar archivos con preguntas/respuestas y google.generativeai para acceder a la API de Gemini.

Configuración de Gemini

genai.configure(api_key="TU_API_KEY")

Debes ingresar tu clave personal de la API para acceder al modelo Gemini.

Cargar preguntas locales

respuestas = {}

with open("preguntas.csv", "r",  encoding="utf-8") as archivo:
    lector = csv.DictReader(archivo)
    for fila in lector:
        respuestas[fila["pregunta"].lower()] = fila["respuesta"]

Se leen las preguntas/respuestas previamente conocidas para respuestas rápidas sin necesidad de usar Gemini.

Creación del modelo Gemini

modelo = genai.GenerativeModel('gemini-2.0-flash')

Se crea una instancia del modelo gemini-pro, que permite generar texto a partir de una pregunta.

Función para guardar nuevas preguntas

def agregar_pregunta(mensaje):
    with open("salida.csv", "a", newline="", encoding="utf-8") as archivo:
        escritor = csv.writer(archivo)
        escritor.writerow([mensaje, ""])

Cuando una pregunta no está en el sistema, se guarda para revisión futura.

Función de respuesta

def obtener_respuesta(mensaje):
    mensaje = mensaje.lower()
    if mensaje in respuestas:
        return respuestas[mensaje]
    else:
        agregar_pregunta(mensaje)
        respuesta_gemini = modelo.generate_content(mensaje)
        return respuesta_gemini.text.strip()

Primero se verifica si la pregunta ya tiene respuesta. Si no, se usa Gemini para generarla.

Bucle de conversación

while True:
    usuario = input("Tú: ")
    if usuario.lower() == "salir":
        break
    respuesta = obtener_respuesta(usuario)
    print("Chatbot:", respuesta)

Este bucle permite mantener una conversación interactiva con el usuario.

Mejora de la experiencia

Puedes adaptar este chatbot para usar en web o WhatsApp, y guardar respuestas generadas para entrenar una IA más personalizada.