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=20
        # Alle übergebenen Parameter zu einem Suchbegriff zusammenfügen
        SEARCH_TERM="$*"
        AI_QUESTION="Gehe alle genannten Webseiten durch,
        folge jedem gefundenen Link auf der Webseite und sortiere die gefundenen Informationen nach Themen und nicht nach Quellen.
        Gib hinter jedem Stichpunkt in Klammern die Quelle an.
        Beantworte zu den gefundenen Informationen folgende Anfrage: ${SEARCH_TERM}"

        # SearxNG-URL
        SEARXNG_URL="https://notgoogle.its-meister.de/search"

        # Suchbegriff für die URL kodieren
        ENCODED_SEARCH_TERM=$(echo "$SEARCH_TERM" | sed -e 's/ /%20/g')

        # Suche an SearxNG senden und die ersten 5 Ergebnisse extrahieren
        # Führe die Suche durch und speichere die Ergebnisse in der Variable SEARCH_RESULTS
        SEARCH_RESULTS=$(
            # Führe eine HTTP-Anfrage durch, um die Suchergebnisse von der SEARXNG-URL abzurufen
            # -u: Benutzername und Passwort für die Authentifizierung
            # -s: Schalte die Fortschrittsanzeige von curl aus (silent mode)
            curl -u "${MM_API_USER}:${MM_API_PASS}" -s "${SEARXNG_URL}?q=${ENCODED_SEARCH_TERM}&s=0" | \

            # Filtere die Ausgabe nach Zeilen, die das Wort "article" enthalten
            grep "article" | \

            # Extrahiere nur die URLs, die mit http oder https beginnen
            # -oP: Gibt nur das gefundene Muster aus, -P aktiviert Perl-kompatible reguläre Ausdrücke
            grep -oP 'https?://[^\s"<>]+' | \

            # Entferne ein abschließendes Slash (/) von den URLs
            sed -e 's/\/$//' | \

            # Behalte nur die obersten NUM_RESULTS URLs (definiert durch die Variable)
            head -${NUM_RESULTS} | \

            # Schließe alle URLs aus, die das Wort "archive" enthalten
            grep -v archive | \

            # Filtere erneut die URLs, um nur solche mit mehr als drei Schrägstrichen zu behalten
            # -n: Ausgabe nur der Zeilen, die dem Muster entsprechen
            sed -n '/\/.*\/.*\/.*\//p' | \

            # Sortiere die URLs und entferne Duplikate
            sort -u
        )

        # Ergebnisse für die Antwort zusammenfassen
        FORMATTED_RESULTS="$(echo "${SEARCH_RESULTS}" | sed ':a;N;$!ba;s/\n/ , /g') . $(echo "${AI_QUESTION}" | sed ':a;N;$!ba;s/\n/ /g')"

        # Ergebnisse ausgeben
        printf "%$(tput cols)s"|sed "s/ /_/g"
        echo "Quellen:"
        echo "$SEARCH_RESULTS"
        printf "%$(tput cols)s"|sed "s/ /_/g"

        # Anfrage an die AI-API senden und Antwort erhalten
        AI_RESPONSE=$(curl -s http://ai:11434/api/generate -d "{
            \"num_thread\": \"${AI_THREADS}\",
            \"model\": \"${AI_SMALL}\",
            \"prompt\": \"${FORMATTED_RESULTS}\",
            \"stream\": false
        }" 2>/dev/null | jq -r .response)

        # AI-Antwort ausgeben
        echo "$AI_RESPONSE"
        printf "%$(tput cols)s"|sed "s/ /_/g"
    }

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.