import gradio as gr import openai import os from gdmk_aux import generacion_llm # Load API key and email credentials from environment variables api_key = os.getenv("OPENAI_KEY") sender_email = os.getenv("EMAIL_USER") email_password = os.getenv("EMAIL_PASS") receiver_email = os.getenv("EMAIL_USER") # Destination email client = openai.OpenAI(api_key=api_key) # Define the LLM function def generacion_llm(texto_input): 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' 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, ) texto_respuesta = response.choices[0].message.content return texto_respuesta except Exception as e: return f"Error: {e}" # Define Gradio app with gr.Blocks() as interface: 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. """ ) with gr.Row(): input_text = gr.Textbox(label="Texto libre para estructurar", lines=3) output_json = gr.Textbox(label="Resultado JSON", interactive=False) submit_button = gr.Button("Procesar") submit_button.click(fn=generacion_llm, inputs=input_text, outputs=output_json) email = gr.Textbox(label="Email (Obligatorio)") imagen = gr.Image(label="Voucher de Pago (Obligatorio)") email_button = gr.Button("Enviar por Email") #submit_button.click(fn=pendiente, inputs=input_text, outputs=output_json) gr.Markdown( """Potenciado por GestioDinámica©2024""" ) gr.Image('gdmk_logo.png') interface.launch(share=True)