|

#204 Klientendaten? Gehören NICHT in die Cloud!

Worum geht es in diesem Artikel?

Lokale KI-Analyse für Coaches: Datenschutz ohne Kompromisse Verwandeln Sie Ihren Mac in einen KI-Assistenten für Textanalysen – ohne Cloud-Upload. Mit Ollama, Hazel und einem Skript verarbeiten Sie vertrauliche Klientendaten sicher und effizient.

Ihre KI-Power für Analysen – Sicher. Lokal. Auf IHREM Mac.

Als Coach oder Berater ist das Vertrauen Ihrer Klienten Ihr wertvollstes Kapital. Sie arbeiten täglich mit sensiblen Informationen, persönlichen Geschichten, strategischen Geschäftsgeheimnissen. Der Gedanke, diese Daten auch nur versehentlich einem Risiko auszusetzen, ist für die meisten von uns undenkbar. Doch in der modernen Welt der künstlichen Intelligenz (KI) stehen wir oft vor einem Dilemma: Wie können wir die beeindruckenden Fähigkeiten von KI nutzen, um unsere Arbeit effizienter und tiefgründiger zu gestalten, ohne die Privatsphäre und Sicherheit der uns anvertrauten Daten zu kompromittieren?

Viele der bekannten KI-Tools, die uns mit Textzusammenfassungen, Analysen oder Übersetzungen locken, haben einen Haken: Sie arbeiten in der Cloud. Das bedeutet, Ihre Texte – Ihre Klientengespräche, Ihre strategischen Notizen – müssen auf die Server des Anbieters hochgeladen werden. Auch wenn viele Anbieter hohe Sicherheitsstandards versprechen, bleibt ein Restrisiko. Was passiert wirklich mit den Daten? Wer hat Zugriff? Wie steht es um die Einhaltung strenger Datenschutzrichtlinien wie der DSGVO?

Die gute Nachricht: Es gibt eine bessere, sicherere Lösung, besonders wenn Sie einen Mac nutzen! Sie können die volle Power moderner KI-Modelle entfesseln, um Ihre Texte zu analysieren und aufzubereiten – und das alles lokal auf Ihrem eigenen Computer. Ihre Daten verlassen niemals Ihre Festplatte.

Das Problem: Der Spagat zwischen KI-Nutzen und Datensicherheit

Stellen Sie sich Ihren typischen Arbeitsalltag vor:

  • Transkripte von Coaching-Sitzungen: Voller persönlicher Details und Entwicklungsschritte.
  • Protokolle von Beratungs-Workshops: Enthaltend unternehmensinterne Strategien und Herausforderungen.
  • Umfangreiche Projektberichte: Mit sensiblen Marktdaten und Analysen.

Aus all diesen Texten möchten Sie wertvolle Erkenntnisse gewinnen:

  • Was waren die Kernbotschaften des Gesprächs?
  • Welche Aktionspunkte wurden vereinbart?
  • Wie ist die allgemeine Stimmung oder Tonalität (Sentiment-Analyse)?
  • Welche Schlüsselwörter oder wiederkehrenden Themen sind relevant?
  • Können Sie eine prägnante Management-Zusammenfassung erstellen?
  • Gibt es markante Zitate, die Sie verwenden können?
  • Welche Fragen sind noch offen?

Die manuelle Bearbeitung dieser Aufgaben ist zeitaufwendig und fehleranfällig. KI kann hier massiv unterstützen. Aber die Vorstellung, diese vertraulichen Inhalte einem Cloud-Dienst anzuvertrauen, fühlt sich für viele Berater und Coaches schlichtweg falsch an. Und das mit gutem Grund!

Die Lösung: Ihr persönlicher, lokaler KI-Analyse-Butler auf dem Mac

Genau hier setzt unser Ansatz an. Wir kombinieren clevere Werkzeuge, die es Ihnen ermöglichen, fortschrittliche KI-Analysen durchzuführen, ohne dass Ihre Daten jemals Ihren Mac verlassen müssen:

  1. Ollama (Das lokale KI-Gehirn): Ollama ist eine bahnbrechende Open-Source-Software, die es Ihnen erlaubt, große Sprachmodelle (LLMs) – die Technologie hinter Systemen wie ChatGPT – direkt auf Ihrem eigenen Computer auszuführen. Sie laden sich die gewünschten Modelle (z.B. Llama 3, Mistral, etc.) einmal herunter, und ab dann arbeiten diese offline auf Ihrem Mac.
  2. Hazel (Der wachsame Datei-Manager): Hazel ist eine mächtige Automatisierungs-App für macOS. Sie können Hazel so konfigurieren, dass es bestimmte Ordner überwacht und automatisch Aktionen ausführt, wenn neue Dateien erscheinen oder bestehende geändert werden.
  3. Ein intelligentes Shell-Skript (Der Dirigent): Ein speziell angepasstes Skript dient als Vermittler. Es nimmt die von Hazel identifizierte Datei, liest Ihre vordefinierten Analysewünsche (Prompts) und weist Ollama an, diese nacheinander auf die Datei anzuwenden.
  4. Flexible Konfigurationsdateien (Ihr persönliches Analyse-Rezeptbuch): In einfachen Textdateien definieren Sie, welche Analysen (Prompts) Sie auf Ihre Dokumente loslassen möchten. Sie können für verschiedene Anwendungsfälle unterschiedliche „Rezeptbücher“ anlegen.

Das Ergebnis: Vollautomatische, tiefgreifende Textanalysen – 100% privat und sicher.

Stellen Sie sich vor, Sie beenden ein wichtiges Kundengespräch und speichern das Transkript als Textdatei in einem bestimmten Ordner auf Ihrem Mac.

  • Ohne einen weiteren Klick Ihrerseits erkennt Hazel die neue Datei.
  • Das Skript wird gestartet und liest Ihre „Standard-Analyse-Checkliste“ aus der Konfigurationsdatei. Dort könnten zum Beispiel 10 verschiedene Analyse-Prompts stehen: Erstelle eine Zusammenfassung, extrahiere Aktionspunkte, identifiziere Schlüsselwörter, analysiere das Sentiment, etc.
  • Das Skript schickt nun die Datei und den ersten Prompt an Ollama. Ollama (das auf Ihrem Mac läuft!) verarbeitet die Anfrage und das Skript speichert das Ergebnis in einer neuen Datei, z.B. Transkript_KundeX_Zusammenfassung.txt.
  • Dann folgt der zweite Prompt, wieder mit der Originaldatei. Ergebnis: Transkript_KundeX_Aktionspunkte.txt.
  • Dieser Prozess wiederholt sich für alle Ihre vordefinierten Prompts.

Am Ende finden Sie neben Ihrer Originaldatei ein ganzes Paket an maßgeschneiderten Analyse-Dokumenten – erstellt, während Sie sich vielleicht schon eine Tasse Kaffee holen oder den nächsten Termin vorbereiten.

Warum ist das für Sie als Coach oder Berater revolutionär?

Die Vorteile dieser lokalen KI-Automatisierung sind immens:

  1. Kompromissloser Datenschutz: Dies ist der wichtigste Punkt. Ihre Klientendaten, Ihre Geschäftsgeheimnisse, Ihre persönlichen Notizen – sie alle bleiben zu 100% auf Ihrem Mac. Sie müssen sich keine Sorgen über Datenlecks bei Drittanbietern, unklare Nutzungsbedingungen oder DSGVO-Verstöße machen. Sie haben die volle Kontrolle.
  2. Offline-Fähigkeit: Nach der einmaligen Einrichtung und dem Herunterladen der Ollama-Modelle können die Analysen komplett offline durchgeführt werden. Keine stabile Internetverbindung nötig, um produktiv zu sein.
  3. Massive Zeitersparnis: Routineanalysen, die Stunden dauern könnten, werden in Minuten erledigt. Sie gewinnen wertvolle Zeit für die direkte Klientenarbeit, für strategische Überlegungen oder Ihre persönliche Weiterentwicklung.
  4. Konsistenz und Qualität: Die KI liefert gleichbleibende Ergebnisse basierend auf Ihren präzisen Anweisungen (Prompts).
  5. Tiefere Einblicke: Lassen Sie die KI Muster, Stimmungen oder Verbindungen aufdecken, die Ihnen bei einer schnellen manuellen Durchsicht vielleicht entgangen wären.
  6. Individuelle Anpassbarkeit: Sie sind nicht auf vorgefertigte Analyse-Tools beschränkt. Sie definieren exakt, welche Fragen Sie an Ihre Texte stellen wollen. Benötigen Sie für Marketing-Texte andere Analysen als für Coaching-Protokolle? Kein Problem – erstellen Sie einfach unterschiedliche Konfigurationsdateien.
  7. Effizienzsteigerung: Verarbeiten Sie mehr Informationen in kürzerer Zeit und bereiten Sie Berichte, Präsentationen oder nächste Schritte schneller und fundierter vor.
  8. Kosteneffizienz: Abgesehen von der einmaligen (optionalen) Investition in Hazel sind Ollama und die Skripte kostenfrei. Sie vermeiden laufende Abo-Gebühren für Cloud-basierte KI-Dienste.

Die Bausteine Ihrer lokalen KI-Power:

  • Ihr Mac: Das Herzstück des Systems.
  • Ollama: Kostenlos herunterladbar von ollama.com.
  • Hazel (optional, aber empfohlen für volle Automatisierung): Eine einmalige Investition von noodlesoft.com.
  • Das hazel_ollama_multi_v2.sh Skript: Ein anpassbares Werkzeug, das wir Ihnen zur Verfügung stellen können.
  • Ihre Kreativität beim Erstellen von Prompts: Hier liegt Ihre Chance, die KI genau nach Ihren Bedürfnissen zu formen.

Fazit: Nehmen Sie Ihre Daten (und Ihre Zeit) selbst in die Hand!

Die Ära der künstlichen Intelligenz bietet unglaubliche Möglichkeiten für Coaches und Berater. Doch dieser Fortschritt muss nicht auf Kosten der Datensicherheit gehen. Mit einer lokalen KI-Lösung auf Ihrem Mac können Sie das Beste aus beiden Welten vereinen: die analytische Power moderner Sprachmodelle und die Gewissheit, dass Ihre sensibelsten Informationen sicher und privat bleiben.

Es erfordert eine kleine anfängliche Einrichtung, aber der Lohn ist eine signifikante Steigerung Ihrer Effizienz, tiefere Einblicke in Ihre Textdaten und – am allerwichtigsten – die beruhigende Sicherheit, dass die Daten Ihrer Klienten genau dort bleiben, wo sie hingehören: auf IHREM Mac.

Sind Sie bereit, Ihren Mac in einen intelligenten, diskreten und absolut vertrauenswürdigen Analyse-Assistenten zu verwandeln?



Anhang: So nutzen Sie Ihre lokale KI-Automatisierung in der Praxis

Nachdem wir die Vorteile und die Funktionsweise der lokalen KI-Automatisierung auf Ihrem Mac beleuchtet haben, wollen wir nun konkreter werden. Wie sieht das im Alltag aus? Wie definieren Sie Ihre Analysewünsche und wie rufen Sie das System auf?

Das Herzstück: Ihre Konfigurationsdatei (prompts.conf oder ein Name Ihrer Wahl)

Die Konfigurationsdatei ist eine einfache Textdatei, in der Sie Ihre „Analyse-Rezepte“ – die sogenannten Prompts – definieren. Jede Zeile in dieser Datei repräsentiert eine spezifische Aufgabe, die die KI für Sie erledigen soll. Das Format ist simpel:

PROMPT_NAME | MODELL_ID | IHR_PROMPT_TEXT_AN_DIE_KI

  • PROMPT_NAME: Ein kurzer, beschreibender Name für diese Analyse. Dieser Name wird auch Teil des Dateinamens der Ergebnisdatei (z.B. originaldatei_**Zusammenfassung**.txt). Verwenden Sie am besten keine Leerzeichen, sondern Unterstriche oder Bindestriche.
  • MODELL_ID: Der Name des Ollama-Modells, das Sie für diesen spezifischen Prompt verwenden möchten (z.B. llama3, mistral, phi3). Stellen Sie sicher, dass Sie dieses Modell zuvor mit ollama pull MODELL_ID heruntergeladen haben. Wenn Sie hier nichts angeben, verwendet das Skript ein Standardmodell (z.B. llama3).
  • IHR_PROMPT_TEXT_AN_DIE_KI: Das ist die eigentliche Anweisung an die KI. Hier formulieren Sie, was die KI mit dem übergebenen Text (Ihrer Eingabedatei) tun soll. Der Inhalt Ihrer Datei wird automatisch an diesen Prompt-Text angehängt.

Beispiel für eine prompts_coaching.conf:

# Konfigurationsdatei für Coaching-Notizen

# Name             | Modell   | Prompt-Text
Zusammenfassung    | llama3   | Erstelle eine prägnante Zusammenfassung der folgenden Coaching-Notizen in maximal 5 Stichpunkten. Konzentriere dich auf die wichtigsten Erkenntnisse und vereinbarten nächsten Schritte des Klienten.
Aktionspunkte      | llama3   | Extrahiere alle konkreten Aktionspunkte, die der Klient oder der Coach bis zur nächsten Sitzung erledigen wird. Liste jeden Punkt einzeln auf.
Emotionale_Lage  | mistral  | Analysiere die vorherrschende emotionale Lage des Klienten, basierend auf den folgenden Notizen. Gib eine Einschätzung (z.B. optimistisch, besorgt, entschlossen) mit einer kurzen Begründung.
Offene_Fragen      | llama3   | Welche Fragen oder Themen sind am Ende der Sitzung noch offen geblieben oder wurden zur weiteren Klärung vermerkt?
Kernzitat_Klient | llama3   | Identifiziere ein besonders aussagekräftiges Zitat des Klienten aus diesen Notizen, das seine aktuelle Situation oder sein Ziel gut widerspiegelt.

Beispiel für eine prompts_berichtsanalyse.conf:

# Konfigurationsdatei für die Analyse von Projektberichten

# Name                  | Modell   | Prompt-Text
Management_Summary      | llama3   | Verfasse eine Management Summary (maximal 200 Wörter) für den folgenden Bericht. Hebe die wichtigsten Ergebnisse, Schlussfolgerungen und Handlungsempfehlungen hervor.
Risiko_Identifikation | llama3   | Identifiziere und liste alle im folgenden Bericht genannten Risiken oder potenziellen Probleme auf.
KPI_Extraktion        | mistral  | Extrahiere alle erwähnten Key Performance Indicators (KPIs) und deren Werte aus dem Bericht.
Stakeholder_Nennungen | llama3   | Liste alle explizit genannten Stakeholder oder beteiligten Parteien auf.
Strategie_Abgleich    | llama3   | Vergleiche die Kernaussagen des Berichts mit der übergeordneten Unternehmensstrategie (sofern bekannt) und weise auf Übereinstimmungen oder Abweichungen hin.

Wichtige Hinweise zur Konfigurationsdatei:

  • Zeilen, die mit # beginnen, sind Kommentare und werden ignoriert.
  • Leere Zeilen werden ebenfalls ignoriert.
  • Das Trennzeichen zwischen den drei Teilen ist das Pipe-Symbol |. Leerzeichen darum herum dienen nur der Lesbarkeit und werden vom Skript entfernt.

Sie können beliebig viele solcher Konfigurationsdateien für unterschiedliche Zwecke anlegen!

Das Werkzeug: Das hazel_ollama_multi_v2.sh Skript aufrufen

Sobald Hazel (oder Sie manuell) das Skript mit einer Eingabedatei aufruft, können Sie sein Verhalten mit verschiedenen Kommandozeilenoptionen steuern. Hier sind die wichtigsten Anwendungsszenarien:

Szenario 1: Vollautomatisch mit Hazel (Standardfall)

Wenn Sie Hazel so eingerichtet haben, dass es das Skript hazel_ollama_multi_v2.sh für jede neue .txt-Datei in einem bestimmten Ordner aufruft, passiert Folgendes automatisch:

  • Hazel übergibt den Pfad zur neuen Datei (z.B. MeineNotizen.txt) an das Skript.
  • Das Skript verwendet standardmäßig die prompts.conf, die im selben Verzeichnis wie das Skript selbst liegt.
  • Es führt alle in dieser prompts.conf definierten Prompts nacheinander aus.
  • Für jeden Prompt wird eine separate Ausgabedatei erstellt (z.B. MeineNotizen_Zusammenfassung.txt, MeineNotizen_Aktionspunkte.txt, etc.).

Szenario 2: Manuelle Ausführung mit einer spezifischen Konfigurationsdatei

Sie haben eine spezielle Konfigurationsdatei prompts_workshop.conf für Ihre Workshop-Mitschriften und möchten diese auf die Datei Workshop_Ergebnisse.md anwenden:

./hazel_ollama_multi_v2.sh -c prompts_workshop.conf Workshop_Ergebnisse.md
  • -c prompts_workshop.conf: Gibt an, welche Konfigurationsdatei verwendet werden soll.
  • Das Skript führt alle Prompts aus prompts_workshop.conf aus und erstellt separate Ausgabedateien.

Szenario 3: Nur bestimmte Analysen ausführen

Angenommen, Ihre prompts_coaching.conf enthält 5 Prompts (siehe Beispiel oben). Sie möchten für die Datei Klientengespräch_AnnaM.txt aber nur die Zusammenfassung (Prompt Nr. 1) und die offenen Fragen (Prompt Nr. 4):

./hazel_ollama_multi_v2.sh -n 1,4 Klientengespräch_AnnaM.txt
  • -n 1,4: Wählt nur den ersten und vierten Prompt aus der Standard-Konfigurationsdatei (prompts.conf) aus.
  • Es werden nur zwei Ausgabedateien erstellt: Klientengespräch_AnnaM_Zusammenfassung.txt und Klientengespräch_AnnaM_Offene_Fragen.txt.

Szenario 4: Alle Ergebnisse in EINE Datei zusammenfassen

Manchmal möchten Sie nicht viele einzelne Dateien, sondern eine einzige Datei, die alle Analyseergebnisse nacheinander enthält. Das ist praktisch für einen schnellen Gesamtüberblick oder zum Weiterkopieren.

Sie möchten alle Analysen aus prompts_berichtsanalyse.conf auf Quartalsbericht_Q3.docx anwenden und die Ergebnisse in Analyse_Quartalsbericht_Q3_KOMPLETT.txt speichern:

./hazel_ollama_multi_v2.sh -c prompts_berichtsanalyse.conf -a -o Analyse_Quartalsbericht_Q3_KOMPLETT.txt Quartalsbericht_Q3.docx
  • -a: Aktiviert den „Append-Modus“ – alle Ausgaben werden zusammengeführt.
  • -o Analyse_Quartalsbericht_Q3_KOMPLETT.txt: Gibt den Namen für die kombinierte Ausgabedatei an. Diese Option ist zwingend erforderlich, wenn -a verwendet wird.
  • In Analyse_Quartalsbericht_Q3_KOMPLETT.txt finden Sie dann nacheinander die Ergebnisse aller Prompts aus prompts_berichtsanalyse.conf, jeweils mit einer kleinen Überschrift, die den Prompt benennt.

Szenario 5: Kombination aller Optionen

Sie möchten nur die Prompts Nr. 2 (Risiko-Identifikation) und Nr. 5 (Strategie-Abgleich) aus Ihrer speziellen prompts_audit.conf auf die Datei Auditbericht_Intern.pdf anwenden und die Ergebnisse dieser beiden Analysen in der Datei Audit_Kernpunkte.txt zusammenfassen:

./hazel_ollama_multi_v2.sh -c prompts_audit.conf -n 2,5 -a -o Audit_Kernpunkte.txt Auditbericht_Intern.pdf

Hilfe erhalten:

Wenn Sie sich einmal nicht sicher sind, welche Optionen es gibt oder wie sie funktionieren, rufen Sie einfach die eingebaute Hilfe des Skripts auf:

./hazel_ollama_multi_v2.sh -h

Die Macht liegt in Ihren Händen

Wie Sie sehen, bietet Ihnen dieses System eine enorme Flexibilität. Durch die Kombination von durchdachten Konfigurationsdateien und den gezielten Einsatz der Kommandozeilenoptionen können Sie die lokale KI-Textanalyse exakt an Ihre Bedürfnisse anpassen.

Beginnen Sie mit einer einfachen prompts.conf für Ihre häufigsten Anwendungsfälle und erweitern Sie Ihr Repertoire an „Analyse-Rezepten“ nach und nach. Die Zeitersparnis und die gewonnenen Einblicke werden Sie schnell überzeugen – und das alles bei maximaler Datensicherheit auf Ihrem eigenen Mac!

Anweisung kopiere die folgenden Dateien auf ein Verzeichnis und mache die Datei hazel_ollama_multi_v2.sh ausführbar mit chmod +x hazel_ollama_multi_v2.sh

Lade Ollama runter und passe die Config Datei auf das passende LLM an.


Skript

#!/usr/bin/env bash

# hazel_ollama_multi_v2.sh
#
# Dieses Skript wird von Hazel aufgerufen oder manuell ausgeführt.
# Es liest eine Konfigurationsdatei ein und führt für ausgewählte
# Ollama-Prompts auf die Eingabedatei aus.
#
# Erweiterungen:
# - Konfigurationsdatei per Option (-c) wählbar
# - Auswahl spezifischer Prompts per Nummer (-n)
# - Optionale Zusammenführung aller Ausgaben in eine Datei (-a -o)

# --- Standardwerte ---
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DEFAULT_CONFIG_FILE="$SCRIPT_DIR/prompts.conf"
CONFIG_FILE="$DEFAULT_CONFIG_FILE"
PROMPT_NUMBERS_STR="" # String für -n Option, z.B. "1,3,5"
APPEND_MODE=false
COMBINED_OUTPUT_FILE=""
INPUT_FILE=""

# --- Hilfefunktion ---
usage() {
  echo "Verwendung: $(basename "$0") [OPTIONEN] <EINGABEDATEI>"
  echo ""
  echo "Führt Ollama-Prompts auf eine EINGABEDATEI basierend auf einer Konfigurationsdatei aus."
  echo ""
  echo "Optionen:"
  echo "  -c FILE     Pfad zur Konfigurationsdatei (Standard: $DEFAULT_CONFIG_FILE)"
  echo "  -n NUMS     Komma-separierte Liste von Prompt-Nummern, die ausgeführt werden sollen"
  echo "              (z.B. '1,3,4'). Wenn nicht angegeben, werden alle Prompts ausgeführt."
  echo "  -a          Alle Ausgaben der ausgewählten Prompts in eine einzige Datei zusammenführen."
  echo "              Erfordert die Option -o."
  echo "  -o OUTFILE  Name der kombinierten Ausgabedatei (nur mit -a verwenden)."
  echo "  -h          Diese Hilfe anzeigen."
  echo ""
  echo "Beispiel:"
  echo "  $(basename "$0") -c myprompts.cfg -n 1,2 -a -o combined_analysis.txt input.txt"
  echo "  $(basename "$0") input.txt  (Verwendet prompts.conf, führt alle Prompts aus, separate Ausgaben)"
  exit 1
}

# --- Kommandozeilenoptionen verarbeiten ---
while getopts ":c:n:ao:h" opt; do
  case $opt in
    c) CONFIG_FILE="$OPTARG" ;;
    n) PROMPT_NUMBERS_STR="$OPTARG" ;;
    a) APPEND_MODE=true ;;
    o) COMBINED_OUTPUT_FILE="$OPTARG" ;;
    h) usage ;;
    \?) echo "Ungültige Option: -$OPTARG" >&2; usage ;;
    :) echo "Option -$OPTARG benötigt ein Argument." >&2; usage ;;
  esac
done
shift $((OPTIND - 1)) # Verbleibende Argumente sind Nicht-Optionsargumente (hier: die Eingabedatei)

# Eingabedatei als erstes verbleibendes Argument
INPUT_FILE="$1"

# --- Plausibilitätsprüfungen ---
if [ -z "$INPUT_FILE" ]; then
  echo "❌ Fehler: Keine Eingabedatei übergeben." >&2
  usage
fi

if ! [ -f "$INPUT_FILE" ]; then
  echo "❌ Fehler: Eingabedatei '$INPUT_FILE' nicht gefunden." >&2
  exit 1
fi

if ! [ -r "$CONFIG_FILE" ]; then
  echo "❌ Fehler: Konfigurationsdatei '$CONFIG_FILE' nicht gefunden oder nicht lesbar." >&2
  exit 1
fi

OLLAMA_BIN="$(command -v ollama)"
if [ -z "$OLLAMA_BIN" ] || ! [ -x "$OLLAMA_BIN" ]; then
  echo "❌ Fehler: Ollama-Kommando ('ollama') nicht im PATH gefunden oder nicht ausführbar." >&2
  exit 1
fi

if ! "$OLLAMA_BIN" ps > /dev/null 2>&1; then
    echo "⏳ Ollama-Dienst scheint nicht zu laufen. Versuche, 'ollama serve' im Hintergrund zu starten..." >&2
    # echo "❌ Fehler: Ollama-Dienst läuft nicht. Bitte starte ihn manuell (z.B. 'ollama serve' im Terminal)." >&2
    # exit 1 # Hier entscheiden, ob man abbricht oder einen Startversuch wagt
    # Für dieses Skript ist es besser, wenn Ollama bereits läuft.
    if ! nohup "$OLLAMA_BIN" serve > /tmp/ollama_serve_$(date +%s).log 2>&1 & then
        echo "❌ Fehler beim Versuch, Ollama zu starten. Bitte manuell starten." >&2
        exit 1
    fi
    echo "   Ollama wird im Hintergrund gestartet. Es kann einen Moment dauern, bis es bereit ist."
    sleep 5 # Gib dem Server etwas Zeit zum Starten
    if ! "$OLLAMA_BIN" ps > /dev/null 2>&1; then
        echo "❌ Fehler: Ollama konnte nicht gestartet werden oder ist noch nicht bereit." >&2
        exit 1
    fi
fi

if $APPEND_MODE && [ -z "$COMBINED_OUTPUT_FILE" ]; then
  echo "❌ Fehler: Option -a erfordert die Angabe einer Ausgabedatei mit -o." >&2
  usage
fi

# --- Lese alle Prompts aus der Konfigurationsdatei in Arrays ---
declare -a ALL_PROMPT_NAMES
declare -a ALL_PROMPT_MODELS
declare -a ALL_PROMPT_TEXTS
PROMPT_COUNT=0

while IFS='|' read -r NAME MODEL TEXT || [[ -n "$NAME" ]]; do
  TRIMMED_NAME=$(echo "$NAME" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
  TRIMMED_MODEL=$(echo "$MODEL" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
  TRIMMED_TEXT=$(echo "$TEXT" | sed 's/^[[:space:]]*//') # Nur führende Leerzeichen entfernen

  if [[ -z "$TRIMMED_NAME" || "$TRIMMED_NAME" =~ ^# ]]; then
    continue
  fi

  ALL_PROMPT_NAMES+=("$TRIMMED_NAME")
  ALL_PROMPT_MODELS+=("${TRIMMED_MODEL:-llama3}") # Standardmodell, falls leer
  ALL_PROMPT_TEXTS+=("$TRIMMED_TEXT")
  PROMPT_COUNT=$((PROMPT_COUNT + 1))
done < "$CONFIG_FILE"

if [ "$PROMPT_COUNT" -eq 0 ]; then
  echo "ℹ️ Keine gültigen Prompts in '$CONFIG_FILE' gefunden."
  exit 0
fi

# --- Bestimme, welche Prompts ausgeführt werden sollen ---
declare -a INDICES_TO_RUN
if [ -z "$PROMPT_NUMBERS_STR" ]; then
  # Alle Prompts ausführen
  for i in $(seq 0 $((PROMPT_COUNT - 1))); do
    INDICES_TO_RUN+=("$i")
  done
else
  # Spezifische Prompts ausführen
  IFS=',' read -ra SELECTED_NUMBERS <<< "$PROMPT_NUMBERS_STR"
  for num_str in "${SELECTED_NUMBERS[@]}"; do
    num_str=$(echo "$num_str" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') # Trim whitespace
    if [[ "$num_str" =~ ^[0-9]+$ ]]; then
      # Konvertiere zu 0-basiertem Index
      idx=$((num_str - 1))
      if [ "$idx" -ge 0 ] && [ "$idx" -lt "$PROMPT_COUNT" ]; then
        # Vermeide Duplikate, falls Nummern mehrfach angegeben wurden
        if ! [[ " ${INDICES_TO_RUN[*]} " =~ " ${idx} " ]]; then
            INDICES_TO_RUN+=("$idx")
        fi
      else
        echo "⚠️ Warnung: Prompt-Nummer '$num_str' ist ungültig (außerhalb des Bereichs 1-$PROMPT_COUNT) und wird ignoriert." >&2
      fi
    else
        echo "⚠️ Warnung: Ungültige Prompt-Nummer '$num_str' in der Liste und wird ignoriert." >&2
    fi
  done
  # Sortiere die Indizes, um Prompts in der Reihenfolge der Konfigurationsdatei auszuführen
  # (falls Nummern unsortiert eingegeben wurden, z.B. -n 3,1)
  IFS=$'\n' INDICES_TO_RUN=($(sort -n <<<"${INDICES_TO_RUN[*]}"))
  unset IFS
fi

if [ "${#INDICES_TO_RUN[@]}" -eq 0 ]; then
  echo "ℹ️ Keine Prompts zur Ausführung ausgewählt."
  if [ -n "$PROMPT_NUMBERS_STR" ]; then
    echo "   Bitte überprüfe die mit -n angegebenen Nummern."
  fi
  exit 0
fi

# --- Hauptverarbeitungsschleife ---
BASE_FILENAME_WITHOUT_EXT="${INPUT_FILE%.*}"
FILE_EXTENSION="${INPUT_FILE##*.}"

# Wenn im Append-Modus, erstelle/leere die kombinierte Datei vor der Schleife
if $APPEND_MODE; then
  echo -n "" > "$COMBINED_OUTPUT_FILE" # Stellt sicher, dass die Datei leer ist oder erstellt wird
  echo "✍️  Alle Ausgaben werden in '$COMBINED_OUTPUT_FILE' zusammengeführt."
fi

for i in "${INDICES_TO_RUN[@]}"; do
  CURRENT_PROMPT_NAME="${ALL_PROMPT_NAMES[$i]}"
  CURRENT_PROMPT_MODEL="${ALL_PROMPT_MODELS[$i]}"
  CURRENT_PROMPT_TEXT="${ALL_PROMPT_TEXTS[$i]}"

  echo "---"
  echo "🔄 Verarbeite: '$(basename "$INPUT_FILE")' mit Prompt Nr. $((i + 1)) ('$CURRENT_PROMPT_NAME', Modell: $CURRENT_PROMPT_MODEL)"

  OLLAMA_FULL_INPUT=$(printf '%s\n\n%s' "$CURRENT_PROMPT_TEXT" "$(cat "$INPUT_FILE")")

  if $APPEND_MODE; then
    # Kopfzeile für diesen Prompt in die kombinierte Datei
    printf "\n\n============================================================\n" >> "$COMBINED_OUTPUT_FILE"
    printf "PROMPT %s: %s (Modell: %s)\n" "$((i+1))" "$CURRENT_PROMPT_NAME" "$CURRENT_PROMPT_MODEL" >> "$COMBINED_OUTPUT_FILE"
    printf "============================================================\n\n" >> "$COMBINED_OUTPUT_FILE"

    # Ollama-Ausgabe an die kombinierte Datei anhängen
    if ! echo "$OLLAMA_FULL_INPUT" | "$OLLAMA_BIN" run "$CURRENT_PROMPT_MODEL" --nowordwrap >> "$COMBINED_OUTPUT_FILE"; then
      echo "⚠️ Fehler bei Ollama für Prompt '$CURRENT_PROMPT_NAME'. Ausgabe möglicherweise unvollständig in '$COMBINED_OUTPUT_FILE'." >&2
    else
      echo "   Ausgabe für Prompt '$CURRENT_PROMPT_NAME' zu '$COMBINED_OUTPUT_FILE' hinzugefügt."
    fi
  else
    # Separate Ausgabedatei
    OUTPUT_FILE="${BASE_FILENAME_WITHOUT_EXT}_${CURRENT_PROMPT_NAME}.${FILE_EXTENSION:-txt}"
    # Wenn immer .txt gewünscht ist:
    # OUTPUT_FILE="${BASE_FILENAME_WITHOUT_EXT}_${CURRENT_PROMPT_NAME}.txt"
    echo "   Ausgabe: '$(basename "$OUTPUT_FILE")'"

    if ! echo "$OLLAMA_FULL_INPUT" | "$OLLAMA_BIN" run "$CURRENT_PROMPT_MODEL" --nowordwrap > "$OUTPUT_FILE"; then
      echo "⚠️ Fehler bei Ollama für Prompt '$CURRENT_PROMPT_NAME'. Datei '$OUTPUT_FILE' konnte nicht erstellt/geschrieben werden." >&2
      # Optional: fehlerhafte Ausgabedatei löschen
      # rm -f "$OUTPUT_FILE"
    else
      echo "✅ Fertig: '$(basename "$OUTPUT_FILE")' erstellt."
    fi
  fi
done

echo "---"
if $APPEND_MODE; then
    echo "🎉 Alle ausgewählten Prompts für '$(basename "$INPUT_FILE")' verarbeitet. Ergebnisse in '$COMBINED_OUTPUT_FILE'."
else
    echo "🎉 Alle ausgewählten Prompts für '$(basename "$INPUT_FILE")' verarbeitet."
fi
exit 0

Config Datei

# Zeilen, die mit # beginnen, sind Kommentare und werden ignoriert.
# Leere Zeilen werden ebenfalls ignoriert.
# Format: NAME_SUFFIX | MODELL_ID | PROMPT_TEXT

# Beispiel-Prompts:
summary        | llama3 | Fasse den folgenden Text in maximal 5 prägnanten Stichpunkten zusammen. Achte auf die wichtigsten Kernaussagen.
keywords       | llama3 | Extrahiere die 5 wichtigsten Schlüsselwörter oder Schlüsselphrasen aus dem folgenden Text. Gib nur die Schlüsselwörter/Schlüsselphrasen aus, jeweils auf einer neuen Zeile.
translate_en   | llama3 | Übersetze den folgenden Text Wort für Wort und sinngemäß ins Englische. Gib nur die Übersetzung aus.
sentiment      | llama3 | Analysiere die Tonalität des folgenden Textes. Ist sie positiv, negativ oder neutral? Begründe kurz.

Bekannte Fehler!

Neue Macs legen schon mal Scripte in Quarantäne, so kannst du die befreien:
macOS Gatekeeper / Quarantine-Attribut:

Wenn das Skript aus dem Internet heruntergeladen wurde (z.B. via Browser, E-Mail, AirDrop) oder von einer nicht vertrauenswürdigen App erstellt wurde, versieht macOS es mit einem „Quarantäne“-Attribut (com.apple.quarantine). Dies kann die Ausführung verhindern.

Überprüfung: xattr hazel_ollama_multi.sh. Wenn du com.apple.quarantine in der Ausgabe siehst, ist das der Übeltäter.

Lösung: Entferne das Quarantäne-Attribut:xattr -d com.apple.quarantine hazel_ollama_multi.sh Versuche danach erneut, das Skript auszuführen: ./hazel_ollama_multi.sh

Fehlende Ausführungsberechtigungen (immer noch ein Check wert):

Obwohl „operation not permitted“ oft darüber hinausgeht, stelle sicher, dass das Skript wirklich ausführbar ist.

Überprüfung:ls -l hazel_ollama_multi.sh. BashDu solltest ein x in den Berechtigungen für deinen Benutzer sehen (z.B. -rwxr-xr-x).

Lösung (falls nötig):chmod +x hazel_ollama_multi.shcontent_copydownloadUse code with caution.Bash

System Integrity Protection (SIP) oder andere macOS Sicherheitsmechanismen:

Es ist unwahrscheinlich, dass SIP direkt die Ausführung eines Benutzerskripts in einem Benutzerordner blockiert, es sei denn, das Skript versucht, geschützte Systembereiche zu verändern.

Wenn das Skript versucht, auf bestimmte Ordner (Downloads, Dokumente, Desktop etc.) oder Systemfunktionen zuzugreifen, für die das Terminal (oder die App, die das Skript ausführt, wie Hazel) keine Berechtigung hat, könnte dies zu Problemen führen. Dies äußert sich aber meist erst während der Skriptausführung, nicht schon beim Start.

Überprüfung für Terminal: Stelle sicher, dass dein Terminal-Programm (z.B. Terminal.app, iTerm2) ggf. „Festplattenvollzugriff“ hat, falls das Skript auf viele Bereiche zugreifen muss. (Systemeinstellungen > Datenschutz & Sicherheit > Festplattenvollzugriff).

Schritte zur Fehlerbehebung:

  1. Stelle sicher, dass du im richtigen Ordner bist:pwd ls -l hazel_ollama_multi.shDie zweite Zeile sollte das Skript auflisten.
  2. Prüfe und setze Ausführungsrechte (falls noch nicht geschehen):chmod +x hazel_ollama_multi.sh
  3. Entferne das Quarantäne-Attribut (sehr wahrscheinlich die Ursache):xattr -d com.apple.quarantine hazel_ollama_multi.sh
    Wenn dieser Befehl einen Fehler wie „No such xattr: com.apple.quarantine“ ausgibt, war das Attribut nicht gesetzt, und dies ist nicht das Problem.
  4. Versuche, das Skript auszuführen:./hazel_ollama_multi.shOder, um die Shebang-Zeile zu umgehen und es explizit mit zsh auszuführen (falls das Problem mit der Shebang zusammenhängt, was bei „operation not permitted“ aber weniger wahrscheinlich ist):zsh ./hazel_ollama_multi.sh

Wenn es nach dem Entfernen des Quarantäne-Attributs immer noch nicht funktioniert, poste bitte die genaue Ausgabe von ls -le hazel_ollama_multi.sh (das -e zeigt auch ACLs an, falls vorhanden).

Teile diesen Artikel

Ähnliche Beiträge