|
import gradio as gr |
|
import json |
|
import re |
|
|
|
|
|
def cargar_datos_json(ruta_json): |
|
with open(ruta_json, 'r', encoding='utf-8') as file: |
|
datos = json.load(file) |
|
return datos |
|
|
|
|
|
def mostrar_checkboxes(datos): |
|
tipos = set(d['clasificacion_tipo'] for d in datos) |
|
checkboxes = {tipo: gr.Checkbox(label=tipo) for tipo in tipos} |
|
return checkboxes |
|
|
|
|
|
def procesar_entrada(texto_entrada, rag_habilitado, prompt_template_habilitado): |
|
|
|
|
|
|
|
|
|
|
|
respuesta = f"Texto de salida procesado: {texto_entrada}" |
|
|
|
|
|
ruta_json = './archivo.json' |
|
datos_json = cargar_datos_json(ruta_json) |
|
|
|
|
|
for dato in datos_json: |
|
contenido = dato['contenido'] |
|
respuesta = re.sub(f"({contenido})", r"<mark>\1</mark>", respuesta) |
|
|
|
return [respuesta] + [False] * len(mostrar_checkboxes(datos_json)) |
|
|
|
|
|
ruta_json = './archivo.json' |
|
datos_json = cargar_datos_json(ruta_json) |
|
checkboxes_tipos = mostrar_checkboxes(datos_json) |
|
|
|
|
|
interfaz = gr.Interface( |
|
fn=procesar_entrada, |
|
inputs=[ |
|
gr.Textbox(label="Texto de Entrada"), |
|
gr.Checkbox(label="Habilitar RAG"), |
|
gr.Checkbox(label="Habilitar Prompt Template") |
|
], |
|
outputs=[ |
|
gr.Textbox(label="Texto de Salida", type="auto"), |
|
*checkboxes_tipos.values() |
|
] |
|
) |
|
|
|
|
|
interfaz.launch() |
|
|