Chatbot-Endpunkt

Wenn Sie im Frontend eine Frage eingeben, wird eine POST Anfrage an den Endpunkt /api/chat gesendet. Der Anfragetext muss die Frage des Nutzers in folgendem Format enthalten:

{
    "question": "the question goes here"
}

Die Antwort der Anwendung ist ein Ereignisstrom, wie in der Server-Sent Events (SSE)-Spezifikation definiert. Die Ereignisse, die der Server an den Client zurückgibt, haben die folgende Reihenfolge:

  • data: [SESSION_ID] session-id-assigned-to-this-chat-session

  • data: [SOURCE] json-formatted-document (Wiederholt für jede identifizierte relevante Dokumentenquelle)

  • data: response chunk (wird für jeden vom LLM zurückgegebenen Antwortblock wiederholt)

  • data: [DONE]

Der Client kann eine Folgefrage stellen, indem er dem Anfrage-URL ein session_id -Abfragezeichenfolgenargument hinzufügt.

Die übergeordnete Logik für den Chatbot-Endpunkt befindet sich in der Funktion api_chat() der Flask-Anwendung in der Datei api/app.py:

@app.route("/api/chat", methods=["POST"])
def api_chat():
    request_json = request.get_json()
    question = request_json.get("question")
    if question is None:
        return jsonify({"msg": "Missing question from request JSON"}), 400

    session_id = request.args.get("session_id", str(uuid4()))
    return Response(ask_question(question, session_id), mimetype="text/event-stream")

Die Funktion ask_question() in der Datei api/chat.py ist eine Generatorfunktion, die die oben beschriebenen Ereignisse mithilfe der Antwort-Streaming-Funktion von Flask streamt, die auf dem Schlüsselwort yield basiert:

@stream_with_context
def ask_question(question, session_id):
    yield f"data: {SESSION_ID_TAG} {session_id}\n\n"
    # ...
    yield f"data: {DONE_TAG}\n\n"

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus