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" | |