Script-Time: KI mit aktuellen Informationen

Meta-Suchmaschine mit KI kombiniert

Script-Time: KI mit aktuellen Informationen
Photo by Mohammad Rahmani / Unsplash

Künstliche Intelligenzen basieren auf den Daten, mit denen sie trainiert wurden, und können daher nicht direkt auf aktuelle Ereignisse reagieren. Um dieses Problem zu umgehen, habe ich verschiedene meiner Projekte zusammengefasst.

Woher beziehe ich die benötigten Informationen? Ich habe bereits meine bevorzugte Suchmaschine erwähnt. Es gibt aber auch öffentliche Versionen der Meta-Suchmaschine.

Die beste anonyme Meta-Suchmaschine
Eine selbstgehostete, datenschutzfreundliche Suchmaschine mit SearXNG und Docker – für maximale Kontrolle über die eigenen Suchanfragen und -ergebnisse!

Die gefundenen Quellen können anschließend analysiert werden, um die gestellte Frage mithilfe von KI zu beantworten. In meinem Skript habe ich außerdem berücksichtigt, dass meine SearXNG-Instanz durch ein Passwort geschützt ist. Es kann direkt der eigenen .bashrc hinzugefügt werden:

ask_ai_searxng() {
    NUM_RESULTS=10
    SEARCH_TERM="$*"
    
    # SearxNG-URL
    SEARXNG_URL="https://notgoogle.mydomain.de/search"

    echo "Suche nach: $SEARCH_TERM ..."

    # 1. Suche durchführen
    # Wir nutzen -G und --data-urlencode für sauberes Encoding
    JSON_RESPONSE=$(curl -s -u "${MM_API_USER}:${MM_API_PASS}" \
        -G \
        --data-urlencode "q=${SEARCH_TERM}" \
        --data-urlencode "format=json" \
        "${SEARXNG_URL}")

    # Prüfen, ob JSON_RESPONSE leer ist
    if [ -z "$JSON_RESPONSE" ]; then
        echo "Fehler: Leere Antwort von SearxNG."
        return
    fi

    # 2. Suchergebnisse extrahieren (Robuster Ansatz)
    # (.results // []) fängt Fehler ab, falls 'results' null ist.
    SEARCH_CONTEXT=$(echo "$JSON_RESPONSE" | jq -r --argjson num "$NUM_RESULTS" '
        (.results // []) | .[0:$num] | .[] | 
        select(.content != null) |
        "Quelle: \(.title)\nURL: \(.url)\nInhalt: \(.content)\n---"
    ')

    # Prüfen, ob wir Ergebnisse bekommen haben
    if [ -z "$SEARCH_CONTEXT" ]; then
        echo "Keine verwertbaren Suchergebnisse gefunden."
        # Debugging-Hilfe (falls nötig, Kommentar entfernen):
        # echo "Raw JSON: $JSON_RESPONSE" 
        return
    fi

    # 3. Prompt bauen
    AI_INSTRUCTION="Beantworte die Benutzerfrage ausschließlich basierend auf den folgenden Suchergebnissen. 
Ignoriere irrelevante Ergebnisse.
Falls die Informationen nicht ausreichen, sage das klar.
Zitiere am Ende jedes Sinnabschnitts die Quelle in Klammern.

Benutzerfrage: ${SEARCH_TERM}

---
SUCHERGEBNISSE:
${SEARCH_CONTEXT}"

    # 4. Optische Ausgabe und Payload
    printf "%$(tput cols)s" | sed "s/ /_/g"
    echo "Gefundene Quellen (Auszug):"
    echo "$SEARCH_CONTEXT" | grep "URL:" | head -n 5 | sed 's/URL: //g'
    printf "%$(tput cols)s" | sed "s/ /_/g"
    echo "Sende an KI (Modell: $AI_SMALL, Kontext: 8192)..."

    # WICHTIG: num_thread muss als Zahl übergeben werden
    payload=$(jq -n \
      --arg thread "$AI_THREADS" \
      --arg model  "$AI_SMALL" \
      --arg prompt "$AI_INSTRUCTION" \
      --argjson ctx 8192 \
      '{ 
        model: $model, 
        prompt: $prompt, 
        stream: false, 
        options: { 
            num_ctx: $ctx, 
            num_thread: ($thread | tonumber)
        } 
      }')

    # 5. Antwort von Ollama holen
    AI_RESPONSE=$(curl -s http://ai:11434/api/generate -d "$payload" | jq -r .response)

    echo -e "\nAntwort:\n$AI_RESPONSE"
}

Wenn man dieses Skript in der Konsole ausführt und eine Frage zu tagesaktuellen Themen übergibt, werden zunächst die von SearXNG gefundenen Quellen angezeigt. Anschließend analysiert die KI diese Quellen und beantwortet schließlich die gestellte Frage.

Und so sieht es dann in der Praxis aus:

ask_ai_searxng Was ist heute bei der Flugsicherung passiert?
____________________________________________________________________________________________________________________________________________________________________________
Quellen:
https://www.dfs.de/homepage/de
https://www.lba.de/DE/Luftfahrtunternehmen/Ereignismeldungen/Allgemeines/Allgemeines_node.html
https://www.stern.de/panorama/luftverkehr--stoerung-bei-flugsicherung--fluege-verspaetet-und-gestrichen-35117220.html
https://www.stern.de/reise/flugsicherung-von-stoerungen-betroffen--probleme-im-deutschen-luftverkehr-35117564.html
____________________________________________________________________________________________________________________________________________________________________________
Nachdem ich die genannten Webseiten durchlaufen und alle Links aufgeführt habe, kann ich Ihnen eine Zusammenfassung der gefundenen Informationen vorstellen:

**Thema: Störungen im deutschen Luftverkehr**

*   Die Deutsche Flugsicherung (DFS) hat im Bereich der Flugsicherheit eine Reihe von Störungen gemeldet. Im Wesentlichen handelt es sich um eine Ausnahme, die den normalen Verlauf der Flight-Plan-Führung beeinträchtigt. 
*   Luftfahrtunternehmen haben Störungen gemeldet und diese zu den Flugplänen gegeben.
*   Es gibt Probleme bei der Flugsicherung in Deutschland.

**Thema: Auswirkungen auf Flüge**

*   Die Störungen haben zu Verzögerungen oder Absagen von Flügen geführt, was für viele Reisende unangenehm ist.
*   Einige Flüge wurden auch gestrichen.
____________________________________________________________________________________________________________________________________________________________________________

Da die Ausgabe als Markdown erfolgt, sieht das in den gängigen Editoren und auf Webseiten so aus:


Nachdem ich die genannten Webseiten durchlaufen und alle Links aufgeführt habe, kann ich Ihnen eine Zusammenfassung der gefundenen Informationen vorstellen:

Thema: Störungen im deutschen Luftverkehr

  • Die Deutsche Flugsicherung (DFS) hat im Bereich der Flugsicherheit eine Reihe von Störungen gemeldet. Im Wesentlichen handelt es sich um eine Ausnahme, die den normalen Verlauf der Flight-Plan-Führung beeinträchtigt.
  • Luftfahrtunternehmen haben Störungen gemeldet und diese zu den Flugplänen gegeben.
  • Es gibt Probleme bei der Flugsicherung in Deutschland.

Thema: Auswirkungen auf Flüge

  • Die Störungen haben zu Verzögerungen oder Absagen von Flügen geführt, was für viele Reisende unangenehm ist.
  • Einige Flüge wurden auch gestrichen.

Fazit

Mit dieser Kombination aus ollama und SearXNG lässt sich die lokale KI auch mit aktuellen Themen anreichern.