Quando você insere uma pergunta no front-end, uma solicitação POST para o endpoint /api/chat é enviada. O corpo da solicitação deve incluir a pergunta do usuário, no seguinte formato:
A resposta da aplicação é um fluxo de eventos, conforme definido na especificação Server-Sent Events (SSE). Os eventos que o servidor retorna ao cliente seguem a seguinte sequência:
data: [SESSION_ID] session-id-assigned-to-this-chat-sessiondata: [SOURCE] json-formatted-document(repetido para cada fonte documental relevante identificada)data: response chunk(repetido para cada bloco de resposta retornado pelo LLM)data: [DONE]
O cliente pode optar por fazer uma pergunta de acompanhamento adicionando um argumento de string de consulta session_id ao URL da solicitação.
A lógica de alto nível para o endpoint do chatbot está na função api_chat() do aplicativo Flask, no arquivo api/app.py:
A função ask_question() no arquivo api/chat.py é uma função geradora que transmite os eventos descritos acima usando o recurso de streaming de resposta do Flask, que é baseado na palavra-chave yield :
Anteriormente
IngestãoPróximo
Fase de Recuperação