Spaces:
Sleeping
Sleeping
| import time | |
| import herramientas | |
| client = herramientas.obtenClienteOpenAI() | |
| print("El cliente es: ", client) | |
| def consulta(asistente, prompt): | |
| thread = preparaPregunta(prompt) | |
| respuesta = ejecutaLlamado(thread, asistente) | |
| return respuesta | |
| #Subfunciones de consulta. | |
| def preparaPregunta(prompt): | |
| thread = client.beta.threads.create() | |
| message = client.beta.threads.messages.create( | |
| thread_id=thread.id, | |
| role="user", | |
| content=prompt, | |
| ) | |
| return thread | |
| def ejecutaLlamado(thread, asistente): | |
| run = client.beta.threads.runs.create( | |
| thread_id=thread.id, | |
| assistant_id=asistente | |
| ) | |
| #Esperar a que el asistente termine de procesar | |
| while True: | |
| run_status = client.beta.threads.runs.retrieve( | |
| thread_id=thread.id, | |
| run_id=run.id | |
| ) | |
| if run_status.status in ["completed", "failed", "cancelled"]: | |
| break | |
| time.sleep(2) # 🔄 Espera 2 segundos antes de revisar de nuevo | |
| #Obtener la respuesta del asistente | |
| messages = client.beta.threads.messages.list(thread_id=thread.id) | |
| for msg in messages.data: | |
| if msg.role == "assistant": | |
| return msg.content[0].text.value | |
| return "No se recibió respuesta del asistente" | |