Код: Выделить всё
client = OpenAI(api_key=OPEN_AI_API_KEY)
class EventHandler(AssistantEventHandler):
def on_text_delta(self, delta: TextDelta, snapshot: Text):
print(delta.value)
with client.beta.threads.runs.stream(
thread_id=thread_id,
assistant_id=assistant_id,
event_handler=EventHandler()
) as stream:
stream.until_done()
Код: Выделить всё
@app.get("/stream")
async def stream():
return ...something...
Код: Выделить всё
from fastapi.responses import StreamingResponse
...
@app.post("/stream")
async def stream():
with client.beta.threads.runs.stream(
thread_id=thread_id,
assistant_id=assistant_id,
event_handler=EventHandler()
) as stream:
stream.until_done()
return StreamingResponse(EventHandler.generator_function(), media_type="text/plain")
Я также пробовал веб-сокеты, но проблема все еще в том, как должно проходить выполнение моей программы. Поток не позволяет выполняться дальше, пока не будет завершен ответ API.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python