Script-Time: KI mit aktuellen Informationen
Meta-Suchmaschine mit KI kombiniert
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 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.
