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

заранее спасибо

0 ответов

Другие вопросы по тегам