File size: 1,246 Bytes
3150072 22acaeb 3150072 22acaeb 3150072 22acaeb 3150072 22acaeb 3150072 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import time
import herramientas
client = herramientas.obtenClienteOpenAI()
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"
|