Python Fastapi: Inhalt der Streaming-Antwort liefernPython

Python-Programme
Anonymous
 Python Fastapi: Inhalt der Streaming-Antwort liefern

Post by Anonymous »

Ich habe einen Endpunkt, der Fastapi StreamingResponse zurückgibt:

Code: Select all

async def stream_results():
...
async for _output in result_generator:
...
yield (json.dumps({'Field': value}, ensure_ascii=False)) + '\n'

return StreamingResponse(stream_results(), media_type='application/x-ndjson')
Wert – Zeichenfolge, die inkrementell ansteigt
Jetzt möchte ich eine Antwort von diesem Dienst erhalten und sie „restreamen“:

Code: Select all

@app.post('/test')
async def test_api(request: Request):

async def stream_results():
with requests.post("http://127.0.0.1:8000/test_api", json={}, stream=True) as r:
for chunk in r.iter_content(1000):
print(chunk)
yield chunk

return StreamingResponse(stream_results(), media_type='application/x-ndjson')
< /code>
ISSUS ist: Druck funktioniert wie erwartet und gibt das Ergebnis aus, wie es generiert wird. Aber Rendite nicht. Es wartet, bis Stream_Results beendet werden kann, und gibt dann eine solche Reaktion zurück, anstatt ein allmähliches Streaming -Ergebnis zu erzielen: < /p>
{'Field': "a"}
{'Field': "ab"}
{'Field': "abc"}
Was mache ich falsch?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post