import gradio as gr import openai import os import openai from openai import OpenAI from gdmk_aux import generacion_llm api_key = os.getenv("OPENAI_KEY") client = OpenAI(api_key=api_key) # Define the LLM function def generacion_llm(texto_input): # Define the system and user messages formato_json = ''' { "nombre_usuario": " ", "ubicación_geográfica": " ", "descripción_reto": " ", "dudas_conceptuales": " ", "certezas_conceptuales": " ", "expectativas_del_taller": " " } ''' mensaje_sistema = ( "Eres un experto en identificar aspectos descriptivos de las razones " "por las cuales un usuario necesita asesoría para implementar retos " "que involucren inteligencia artificial de varios tipos." ) mensaje_usuario = ( f"Analizar el texto: \nTexto a Analizar: {texto_input}, que es una redacción \ libre de un usuario que busca asesoría para su uso óptimo de la inteligencia \ artificial, que busca orientación a través de un taller de asesoría de un facilitador, \ para lo cual te pido identifiques los siguientes extractos del texto \ en el formato JSON: {formato_json}\n Si no hubiera claridad suficiente sobre alguno \ de los contenidos del formato JSON, escribir 'No hay suficiente información'" ) version_model = 'gpt-3.5-turbo-0125' # Call OpenAI API try: response = client.chat.completions.create( model=version_model, messages=[ {"role": "system", "content": mensaje_sistema}, {"role": "user", "content": mensaje_usuario} ], temperature=0.8, max_tokens=300, top_p=1, ) # Extract the generated text from the response texto_respuesta = response.choices[0].message.content # Try parsing as JSON (if applicable) return texto_respuesta # Return plain text for now (replace with JSON if needed) except Exception as e: return f"Error: {e}" # Define Gradio app with gr.Blocks() as interface: # Title and description gr.Markdown( """ # Estructurador de Autodiagnóstico Ingrese el texto para analizar y extraer información en un formato JSON predefinido. Asegúrese de incluir, no necesariamente en orden: * Nombre de usuario. * Ubicación geográfica (ciudad, país). * Descripción de su reto. * Dudas conceptuales sobre tecnologías cognitivas. * Certezas conceptuales. * Expectativas del taller. """ ) # Input and output components input_text = gr.Textbox(label="Ingrese su texto libre para estructurar.") output_json = gr.Textbox(label="Resultado JSON") submit_button = gr.Button("Procesar") # Link the input/output and function submit_button.click(fn=generacion_llm, inputs=input_text, outputs=output_json) gr.Markdown( """Potenciado por GestioDinámica©2024""" ) gr.Image('gdmk_logo.png') # Launch the interface interface.launch(share=True)