3.2 Real-time Communication
The system implements real-time communication through Server-Sent Events:
@app.route("/", methods=["GET"])
def send_query():
data = request.args.get("data", "")
global output, user_input, stop_stream, input_requested
input_requested = False
stop_stream = False
output.clear()
user_input = data
def generate():
global stop_stream, input_requested
last_length = 0
while True:
if len(output) > last_length:
for x in output[last_length:]:
yield f"data: {json.dumps({'type': 'output', 'data': x})}\n\n".encode()
last_length = len(output)
Features:
Event Streaming: Implements SSE
State Management: Tracks output state
Error Handling: Manages stream errors
Response Formatting: Formats JSON responses
Connection Management: Handles client connections
Last updated