JeCabrera commited on
Commit
048a8c5
verified
1 Parent(s): 5c14942

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -34
app.py CHANGED
@@ -1,5 +1,4 @@
1
  import os
2
- import time
3
  import gradio as gr
4
  import google.generativeai as genai
5
  from dotenv import load_dotenv
@@ -7,50 +6,32 @@ from dotenv import load_dotenv
7
  # Cargar variables de entorno
8
  load_dotenv()
9
 
10
- # Configurar la API de Google con la clave
11
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
12
 
13
- # Crear la sesi贸n de chat con el modelo de Gemini
14
  model = genai.GenerativeModel("gemini-2.0-flash")
15
 
16
- def chat_stream(message, history):
17
- """Env铆a el mensaje del usuario a Gemini con historial y devuelve la respuesta en streaming."""
18
  try:
19
- # Crear una conversaci贸n nueva
20
- chat = model.start_chat()
21
-
22
- # Agregar el historial previo a la conversaci贸n
23
- for user_msg, assistant_msg in history:
24
- chat.send_message(user_msg)
25
-
26
- # Enviar el mensaje actual y obtener la respuesta en streaming
27
- response = chat.send_message(message, stream=True)
28
-
29
- # Devolver los fragmentos como un flujo
30
- for chunk in response:
31
- if chunk.text:
32
- time.sleep(0.05) # A帽ade un peque帽o retraso de 50ms entre chunks
33
- yield chunk.text
34
-
35
  except Exception as e:
36
- yield f"Error: {e}"
37
 
38
  # Crear la interfaz de chat con historial
39
  demo = gr.ChatInterface(
40
- fn=chat_stream,
41
  examples=["Write an example Python lambda function."],
42
  title="Gemini Chatbot",
43
- description="Chatbot interactivo con historial de conversaci贸n usando Gemini AI.",
44
- height=600, # Aumenta la altura del chat
45
- fill_height=True, # Permite que el chat ocupe todo el espacio disponible
46
- bubble_full_width=False, # Ajusta el ancho de las burbujas de chat
47
- layout="panel" # Usa un dise帽o de panel para mejor visualizaci贸n
48
  )
49
 
50
  # Iniciar la app
51
- demo.launch(
52
- show_api=False,
53
- share=False,
54
- height=800, # Altura total de la ventana
55
- allow_flagging="never"
56
- )
 
1
  import os
 
2
  import gradio as gr
3
  import google.generativeai as genai
4
  from dotenv import load_dotenv
 
6
  # Cargar variables de entorno
7
  load_dotenv()
8
 
9
+ # Configurar la API de Google
10
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
11
 
12
+ # Modelo de IA de Gemini
13
  model = genai.GenerativeModel("gemini-2.0-flash")
14
 
15
+ def chat(message, history):
16
+ """Env铆a el mensaje del usuario a Gemini con historial y devuelve la respuesta."""
17
  try:
18
+ # Convertir historial a formato adecuado para Gemini
19
+ chat_history = [{"role": "user", "parts": [msg[0]]} for msg in history] + [{"role": "user", "parts": [message]}]
20
+
21
+ # Enviar el historial y el mensaje actual a Gemini
22
+ response = model.generate_content(chat_history)
23
+
24
+ return response.text # Devuelve solo el texto de la respuesta
 
 
 
 
 
 
 
 
 
25
  except Exception as e:
26
+ return f"Error: {e}"
27
 
28
  # Crear la interfaz de chat con historial
29
  demo = gr.ChatInterface(
30
+ fn=chat,
31
  examples=["Write an example Python lambda function."],
32
  title="Gemini Chatbot",
33
+ description="Chatbot interactivo con historial de conversaci贸n usando Gemini AI."
 
 
 
 
34
  )
35
 
36
  # Iniciar la app
37
+ demo.launch()