import gradio as gr import json # Función para cargar los datos del archivo JSON def cargar_datos_json(ruta_json): with open(ruta_json, 'r', encoding='utf-8') as file: datos = json.load(file) return datos # Función para mostrar los checkboxes por tipo 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 # Función para procesar la entrada y generar la salida def procesar_entrada(texto_entrada, rag_habilitado, prompt_template_habilitado): # Aquí procesarías el texto de entrada según los checkboxes habilitados # y utilizarías los valores de rag_habilitado y prompt_template_habilitado # para hacer el procesamiento correspondiente. # Simulación de generación de respuesta respuesta = f"Texto de salida procesado: {texto_entrada}" return [respuesta] + [False] * len(mostrar_checkboxes(datos_json)) # Función para guardar los checkbox marcados en un archivo JSON def guardar_checkbox_info(): info_checkbox = {key: checkbox.value for key, checkbox in checkboxes_tipos.items()} with open('rlhf.json', 'w') as file: json.dump(info_checkbox, file, indent=4) # Ruta al archivo JSON ruta_json = './archivo.json' datos_json = cargar_datos_json(ruta_json) checkboxes_tipos = mostrar_checkboxes(datos_json) # Creación de la interfaz Gradio 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="text"), *checkboxes_tipos.values() ] ) # Creación de diccionario de checkboxes checkboxes = {key: False for key in checkboxes_tipos.keys()} # Definición de la acción del botón def accion_boton(): guardar_checkbox_info(checkboxes, 'rlhf.json') # Ejecución de la interfaz interfaz.launch()