salmg commited on
Commit
8085033
verified
1 Parent(s): 6289958

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
2
+ import gradio as gr
3
+
4
+ def answer(message, history):
5
+ files = [] # Lista para almacenar los archivos del usuario
6
+
7
+ # Recorre el historial de mensajes para encontrar archivos previamente cargados
8
+ for msg in history:
9
+ if msg['role'] == "user" and isinstance(msg['content'], tuple):
10
+ files.append(msg['content'][0]) # Extrae el nombre del archivo
11
+
12
+ # Agrega los nuevos archivos enviados con el mensaje actual
13
+ for file in message["files"]:
14
+ files.append(file)
15
+
16
+ # Usa SimpleDirectoryReader para cargar el contenido de los archivos
17
+ documents = SimpleDirectoryReader(input_files=files).load_data()
18
+
19
+ # Crea un 铆ndice vectorial a partir de los documentos cargados
20
+ index = VectorStoreIndex.from_documents(documents)
21
+
22
+ # Crea un motor de consulta para buscar dentro del 铆ndice
23
+ query_engine = index.as_query_engine()
24
+
25
+ # Realiza la consulta usando el texto ingresado por el usuario y devuelve la respuesta como string
26
+ return str(query_engine.query(message["text"]))
27
+
28
+ # Define la interfaz de chat de Gradio
29
+ demo = gr.ChatInterface(
30
+ answer, # Funci贸n que procesa cada mensaje
31
+ type="messages", # El historial se maneja como lista de mensajes con roles
32
+ title="Llama Index RAG v1", # T铆tulo del chatbot
33
+ description="Upload any text or pdf files and ask questions about them!", # Descripci贸n visible para el usuario
34
+ textbox=gr.MultimodalTextbox(file_types=[".pdf", ".txt"]), # Caja de entrada que permite texto y archivos
35
+ multimodal=True # Habilita el soporte para entrada multimodal (texto + archivos)
36
+ )
37
+
38
+ # Lanza la aplicaci贸n de Gradio para que se abra en el navegador
39
+ demo.launch()