StreamResponse FastAPI с Llama_index
Я пытаюсь передать ответ моего чат-агента. Я действительно новичок в Python и пытаюсь научиться делать подобные вещи.
Это идентификатор кода:
async def chat(input_text):
custom_prompt = Prompt(
""" xxx """
)
try:
query_engine = index.as_query_engine(streaming=True, similarity_top_k=3)
chat_engine = CondenseQuestionChatEngine.from_defaults(
query_engine=query_engine,
condense_question_prompt=custom_prompt,
# chat_history=custom_chat_history,
verbose=True,
)
response = chat_engine.chat(input_text)
responseStream = response.print_response_stream()
# print(responseStream)
async for token in responseStream:
yield token
except Exception as e:
print(f"Error: {e}")
app = FastAPI()
# Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=[
"*"
], # Replace with the actual origins you want to allow
allow_methods=["GET", "POST"], # Replace with the HTTP methods you want to allow
allow_headers=["*"], # Replace with the headers you want to allow
)
@app.get("/")
async def root():
return {"message": "Hello world"}
@app.post("/chat")
async def chat_model_001(input_text: InputText):
async def generate_response():
async for token in chat(input_text.input_text):
yield token
return StreamingResponse(generate_response(), media_type="text/event-stream")
Я могу видеть потоковую передачу ответа в серверной части, но в конце потока выдается ошибка:
Error: 'async for' requires an object with __aiter__ method, got NoneType
заранее спасибо