Installation und erste Schritte mit Fabric – dem Prompt-Optimierer

Schmuckbild: Das Bild zeigt eine hochdetaillierte und stilisierte Illustration eines Arbeitsplatzes aus der Perspektive eines Programmierers oder Entwicklers. Im Zentrum ist eine Person zu sehen, die vor einem Schreibtisch mit mehreren Monitoren sitzt, auf denen Code und Softwareentwicklungs-Tools angezeigt werden. Die Monitore sind mit dem Wort “Fabric” gekennzeichnet. Das Büro ist gut organisiert, mit Bücherregalen voller Ordner, einem Globus, Zimmerpflanzen und verschiedenen dekorativen Gegenständen. Die gesamte Szene ist in einem grafischen Schwarz-Weiß-Stil gehalten, der Linien und Schattierungen verwendet, um Tiefe und Textur zu erzeugen

Hinweis

Kurz nach der Veröffentlichung mei­ner Einführung in Fabric wur­de eine neue Version ver­öf­fent­licht, die nach Go por­tiert wur­de. In die­sem Artikel gehe ich auf die­se neue Version ein, der alte Artikel wur­de ent­fernt.


Einführung in Fabric

Die Qualität der Ergebnisse bei der Nutzung von Large Language Models (LLMs) wie Ollama oder ChatGPT hängt stark von der Qualität des ver­wen­de­ten Prompts ab. Diese Erkenntnis hat zur Entstehung spe­zia­li­sier­ter Berufe wie des Prompt Engineers geführt, des­sen Aufgabe es ist, LLMs opti­mal zu kon­fi­gu­rie­ren, um für spe­zi­fi­sche Anforderungen oder Kontexte die best­mög­li­chen Ergebnisse zu erzie­len. Zudem wer­den Hunderte von Artikeln ver­öf­fent­licht, die mit viel­ver­spre­chen­den Titeln wie „Die 100 bes­ten Prompts zur Generierung eines Bewerbungsschreibens für eine Stelle als Top-Manager“ auf­war­ten.

Fabric, das Tool, das hier vor­ge­stellt wird, soll den Prozess der Erstellung eines Prompts ver­ein­fa­chen und opti­mie­ren, um die bes­ten Ergebnisse von einem LLM zu erhal­ten. In die­sem Artikel wer­den die ers­ten Schritte erläu­tert, ein­schließ­lich der Installation und der grund­le­gen­den Verwendung.

Was ist Fabric?

Das Fabric-Projekt von Daniel Miessler wur­de mit dem Ziel ent­wi­ckelt, Nutzern von LLMs zu ermög­li­chen, sich wie­der auf den Inhalt zu kon­zen­trie­ren, anstatt sich in der Vielzahl von Prompt-Experimenten zu ver­lie­ren. Fabric stellt eine Bibliothek von über 140 soge­nann­ten Patterns zur Verfügung, die auf spe­zi­el­le Aufgaben und Problemstellungen aus­ge­rich­tet sind. Beispiele hier­für sind „extract_wisdom“, das Erkenntnisse und Kernaussagen aus einem Text oder YouTube-Video extra­hiert, sowie „create_coding_project“, das dabei hel­fen soll, das Grundgerüst für ein Entwicklungsprojekt zu erstel­len. Die Pattern beschrei­ben sehr aus­führ­lich, wel­che Schritte mit der Eingabe durch­ge­führt wer­den, wel­che Rolle das LLM ein­neh­men soll, wor­auf es beson­ders ach­ten muss und wie die Ausgabe gestal­tet sein soll­te.

Fabric kom­bi­niert die Eingabe, sei es ein Text oder ein Aufgaben-Kontext, mit dem gewähl­ten Pattern und über­gibt die­se an ein LLM. Dies kann ent­we­der lokal gesche­hen, wie bei den von Ollama bereit­ge­stell­ten LLMs, oder über Cloud-Services wie OpenAI, Claude oder Google.

Stand heu­te, Ende August 2024, ist Fabric ein rei­nes Kommandozeilen-Tool. In der vor­he­ri­gen Version, die in Python geschrie­ben wur­de, gab es zwar auch ein GUI und eine Server-Schnittstelle, die jedoch im Moment nicht imple­men­tiert sind. Sollte in naher Zukunft eine gra­fi­sche Benutzeroberfläche oder eine Server-Schnittstelle hin­zu­ge­fügt wer­den und sich ein Nutzen für mich erge­ben, wer­de ich dies in wei­te­ren Artikeln beschrei­ben.

Installation von Fabric

Die Installation erfolgt über das Github-Repository des Projekts. Für die Ausführung der Programme und Beispiele, sind eini­ge Vorbereitungen zu tref­fen. Da die Installation und auch die spä­te­re Verwendung im Terminal-Programm pas­siert, soll­te etwas Erfahrung mit der Kommandozeile vor­han­den sein. Offenen Fragen kön­nen ger­ne als Kommentare gestellt wer­den, ich ver­su­che sie so schnell wie mög­lich zu beant­wor­ten. In die­sem Artikel wird die Installation aus­schließ­lich auf dem Mac beschrie­ben, für Windows und Linux kann ich wahr­schein­lich wenig Hilfe anbie­ten.

Vorbereitung für die Installation

Zunächst muss ggf. go, git und ffmpeg instal­liert wer­den. Ich nut­ze dazu den Paket-Manager Homebrew. Wenn Homebrew auf dem Mac instal­liert ist, kön­nen die benö­tig­ten Tools im Terminal mit dem fol­gen­den Befehl schnell instal­liert wer­den:

brew install git go ffmpeg

Falls die Programme schon instal­liert waren, erfolgt kei­ne erneu­te Installation. Nach mei­ner GO-Installation wur­den die Suchpfade in der .zshrc-Datei nicht ein­ge­tra­gen. Für ein mit brew instal­lier­tes go wird ein leicht ande­rer Pfad für GOROOT benö­tigt, als in der Anleitung auf Github beschrie­ben. Um die­se Suchpfade zu ergän­zen, wird ein Editor gestar­tet und die Datei ~/.zshrc geöff­net:

# Ich verwende nano als Editor
nano ~/.zsh

Dann bis zum Ende der Datei scrol­len und Folgendes ein­tra­gen:

# Set Go Path
export GOROOT="$(brew --prefix golang)/libexec"
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$HOME/.local/bin:$PATH:

Falls Go nicht mit Homebrew instal­liert wur­de, kann der GOROOT anders aus­se­hen. Dies kann ich jedoch nicht vali­die­ren:

export GOROOT=/usr/local/go

Mit ⌃x⌃y wird der Editor geschlos­sen und die Datei gespei­chert. Nun wer­den mit dem Befehl

source ~/.zshrc

die Änderung dem System bekannt gemacht.

Falls eine ande­re Shell ver­wen­det wird, müs­sen die­se Pfad-Definitionen in der ent­spre­chen­den Datei und Syntax vor­ge­nom­men wer­den. Auf dem Mac ist aller­dings stan­dard­mä­ßig die zsh aktiv.

Schritte zur Installation von Fabric

Zunächst wird die neus­te Version von Fabric aus dem Github-Repositoryinstalliert, wozu schon das go-Kommando ver­wen­det wird:

go install github.com/danielmiessler/fabric@latest

Dann wird mit dem Aufruf:

fabric --setup

das Setup gestar­tet.

Falls beim Aufruf von fabric --setup der Fehler erscheint, dass fabric nicht gefun­den wur­de, sind ent­we­der die Einträge in der Datei ~/.zshrc feh­ler­haft oder der source-Befehl wur­de nicht aus­ge­führt. Alternativ kann auch das Terminal-Fenster geschlos­sen und in einem neu­en Fenster das Setup erneut auf­ge­ru­fen wer­den.

Während des Setups wer­den zunächst die API-Keys von Groq, Gemini, Anthropic, OpenAI und Azure abge­fragt. Falls kei­ner die­ser Dienste genutzt wird, muss zumin­dest Ollama instal­liert und die Ollama-URL ange­ge­ben wer­den, die nor­ma­ler­wei­se http://localhost:11434 lau­tet. Nach der Eingabe der Informationen zu einem oder meh­re­ren die­ser Services wird eine Liste aller ver­füg­ba­ren LLMs erstellt, aus der das Standard-LLM aus­ge­wählt wird. Danach erfolgt die Abfrage des YouTube-Keys. Bei den letz­ten Abfragen unter dem Stichwort Patterns Loader habe ich die vor­ge­schla­ge­nen Werte über­nom­men.

Wenn die­se Eingaben abge­schlos­sen sind, wer­den die Patterns her­un­ter­ge­la­den und unter $HOME/.config/fabric/patterns instal­liert. In dem Verzeichnis $HOME/.config/fabric wird auch eine Datei .env ange­legt, in der die gemach­ten Angaben gespei­chert wer­den. Eine Datei namens unique_patterns.txt ent­hält eine Liste aller Patterns. Im Ordner context kön­nen Textdateien abge­legt wer­den, die einen zusätz­li­chen Kontext bei einem Aufruf von Fabric bereit­stel­len. So könn­ten all­ge­mei­ne Zusatzinformationen, die je nach Zusammenhang benö­tigt wer­den, ein­mal defi­niert und bei Aufrufen ver­schie­de­ner Patterns ein­flie­ßen.

Der Zweck des eben­falls ange­leg­ten Ordners sessions erschließt sich mir noch nicht.

Erste Schritte mit Fabric

Fabric ist ein Kommandozeilen-Tool, das der Unix-Philosophie folgt, wonach klei­ne, spe­zia­li­sier­te Programme durch fle­xi­ble Verkettung kom­ple­xe­re Workflows ermög­li­chen. Die Programme wer­den über das Pipe-Symbol | mit­ein­an­der ver­bun­den, wobei die Ausgabe (stdout) eines Programms zur Eingabe (stdin) des nächs­ten wird. In einem Workflow mit Fabric kann jeder Kommandozeilen-Befehl genutzt wer­den, der eine Ausgabe auf stdout gene­riert oder stdin kon­su­miert. Zum Beispiel kann für die Eingabe von Text echo ver­wen­det wer­den oder cat um eine Textdatei zu über­ge­ben. Ein Ergebnis kann zudem mit > in eine Datei geschrie­ben oder mit >> an eine Datei ange­hängt wer­den.

Die fol­gen­de Kommandozeile demons­triert, wie man mit echo und fabric einen ein­fa­chen Workflow erstellt, der einen Text ver­ar­bei­tet und einen Vorschlag für einen Prompt für DALL‑E oder Stable-Diffusion zur Erstellung eines Logos gene­riert:

echo "Zwei Papageien auf einem Hochhausdach" | fabric --stream --pattern create_logo

In die­sem Beispiel gibt der Befehl echo den Text „Zwei Papageien auf einem Hochhausdach“ aus, der anschlie­ßend über das Pipe-Symbol | an den fabric-Befehl wei­ter­ge­lei­tet wird. Fabric ver­ar­bei­tet die­sen Text mit­hil­fe des Patterns create_logo, lei­tet das Ergebnis an das LLM wei­ter und das wie­der­um gene­riert einen Prompt-Vorschlag, der dann in der Kommandozeile ange­zeigt wird.

Das LLM, in desem Fall GPT-4o-mini, gene­rier­te fol­gen­den Prompt:

A simple, vector graphic logo featuring two stylized parrots perched on the edge of a minimalist skyscraper rooftop. The design should emphasize elegance and simplicity, using clean lines and a limited color palette to convey a modern urban feel.

Ich habe den Befehl manu­ell an ChatGPT über­ge­ben und fol­gen­des Bild erhal­ten:

Das Bild zeigt ein stilisiertes, grafisches Design, in dem zwei Papageien auf einem Hochhaus sitzen. Die Papageien sind in einem minimalistischen, modernen Stil gezeichnet, wobei die Farbgebung auf schwarz-weiß beschränkt ist. Das Hochhaus selbst ist ebenfalls vereinfacht und in vertikalen Streifen dargestellt, was eine klare, strukturierte Optik verleiht. Der Hintergrund des Bildes ist einheitlich grau, was die Aufmerksamkeit auf die Vögel und das Hochhaus lenkt.

Das Praktische an die­sem Ansatz ist, dass alles, was Text in der Standardausgabe aus­gibt, als Eingabe für die Verarbeitung mit einem Fabric-Pattern die­nen kann. Dadurch ste­hen eine Vielzahl von Tools zur Verfügung, die in einem Fabric-Workflow ein­ge­setzt wer­den kön­nen.

Das fol­gen­de Beispiel zeigt, wie mit Fabric eine Zusammenfassung einer Webseite erstellt wer­den kann. Dabei wird die Webseite mit dem Programm wget gela­den (hier ein Artikel von mei­nem Blog). Die Ausgabe, der HTML-Code, wird dann an pandoc wei­ter­ge­ge­ben, das den Text extra­hiert. Anschließend wird der extra­hier­te Text mit fabric und dem Pattern summarize zusam­men­ge­führt, vom LLM ver­ar­bei­tet und das Ergebnis aus­ge­ge­ben. (wget und pan­doc müs­sen ggf. mit brew instal­liert wer­den):

wget -qO- https://ileif.de/2024/08/07/automatisierung-von-apple-kurzbefehlen-mit-shortery/ |  pandoc -f html -t plain  | fabric -sp summarize

Das Ergebnis der Abfrage liegt im Markdown-Format vor. In die­sem Fall ver­wen­de­te Fabirc die OpenAI-API mit dem LLM GPT-4o-mini:

# ONE SENTENCE SUMMARY:
Shortery enhances Apple Shortcuts automation on macOS by allowing various triggers for executing workflows based on events.

# MAIN POINTS:
1. Apple Shortcuts can now run on macOS since Monterey.
2. Automatic triggering of shortcuts is limited compared to iOS.
3. Only folder actions can trigger workflows on macOS.
4. Shortery app offers additional automation triggers for macOS users.
5. Users can set time-based triggers using macOS's launchd service.
6. Shortery allows actions based on application events like start and stop.
7. The app is available for download from the Mac App Store.
8. Users can customize settings for login, menu bar visibility, and sleep prevention.
9. Triggers can be created for specific applications to automate tasks.
10. A free trial is available before committing to a subscription.

# TAKEAWAYS:
1. Shortery significantly expands automation capabilities for macOS users.
2. Understanding events and triggers is crucial for effective automation.
3. The app's user interface is straightforward but only available in English.
4. Users should consider their automation needs before subscribing.
5. Feedback and community engagement are encouraged for continuous improvement

Der Artikel ist zwar in Deutsch ver­fasst, jedoch haben die OpenAI-Modelle eine gewis­se Präferenz für das Englische, wes­halb die Ergebnisse der Verarbeitung meist in Englisch erschei­nen. Wie man dies umge­hen kann, wer­de ich wei­ter unten erläu­tern. An die­ser Stelle ist es wich­tig zu ver­ste­hen, dass alles, was Text erzeugt, als Eingabe für eine Bearbeitung in Fabric die­nen kann. Außerdem kann die Ausgabe eines Fabric-Schrittes wie­der­um als Eingabe für einen wei­te­ren Fabric-Schritt die­nen oder von ande­ren Befehlen ver­ar­bei­tet wer­den.

Um nur einen bestimm­ten Textteil aus einem Dokument zu bear­bei­ten und das Ergebnis direkt wie­der in das Dokument ein­zu­fü­gen, eig­nen sich die Befehle pbpaste und pbcopy unter macOS. Mit die­sen Befehlen wird die Zwischenablage zunächst an Fabric über­ge­ben, die Ausgabe wird dann in die Zwischenablage kopiert und kann anschlie­ßend im Dokument direkt mit ⌘-V ein­ge­fügt wer­den.

pbpaste | fabric -sp improve_writing | pbcopy

Erweiterte Funktionen von Fabric

In der alten Python-Version wur­den zusätz­li­che Tools wie yt zum Transkribieren von YouTube-Videos, ts zum Transkribieren von Audiodateien und save zum Speichern der Ausgabe in einem defi­nier­ten Ordner mit instal­liert. Aktuell (Stand 20.08.2024) wur­de nur der yt-Befehl por­tiert. Ob die ande­ren Tools noch nach­ge­reicht wer­den, ist der­zeit unge­wiss.

Allerdings muss der yt-Befehl in die­ser Version extra instal­liert wer­den:

go install github.com/danielmiessler/yt@latest

yt extra­hiert den gespro­che­nen Text eines einer YouTube-Video, der dann von Fabric ver­ar­bei­tet wer­den kann.

yt --transcript https://www.youtube.com/watch?v=UbDyjIIGaxQ | fabric --stream --output $HOME/Video_transscript.md --pattern extract_wisdom

In die­sem Beispiel wird der Text aus dem Video „You’ve Been Using AI Wrong“ von NetworkChuck extra­hiert und ana­ly­siert. Die wich­tigs­ten Erkenntnisse wer­den gemäß den defi­nier­ten Regeln des Patterns extract_wisdom in einer Markdown-Datei mit dem Namen Video_transcript.md in mei­nem Home-Verzeichnis gespei­chert.

Das Video „You’ve Been Using AI Wrong“ hat mich auf Fabric auf­merk­sam gemacht. Es ist sehens­wert, behan­delt jedoch noch die alte, python-basier­te Version.


Als Ersatz für den save-Befehl, der es ermög­lich­te, das Ergebnis an einer defi­nier­ten Stelle zu spei­chern, ver­wen­de ich fol­gen­des Shell-Skript. Ich spei­che­re es unter $HOME/Applications, das in mei­nem $PATH-Suchpfad ein­ge­tra­gen ist, unter dem Namen save und mache es mit chmod +x $HOME/Applications/save aus­führ­bar.

#!/bin/zsh

# Definiere das Verzeichnis, in dem die Datei gespeichert wird
TARGET_DIR="$HOME/Documents/fabric_files"

# Erstelle das Verzeichnis, falls es nicht existiert
mkdir -p "$TARGET_DIR"

# Setze das aktuelle Datum als Präfix für den Dateinamen
DATE_PREFIX=$(date +"%Y-%m-%d")

# Setze den Dateinamen Extension
BASENAME="note"
EXTENSION=".md"

# Erzeuge den Dateinamen
FILENAME="${DATE_PREFIX}-${BASENAME}${EXTENSION}"

# Überprüfe, ob die Datei existiert, wenn ja ergänze den Dateinamen mit einer laufenden Nummer
COUNTER=1
while [[ -e "${TARGET_DIR}/${FILENAME}" ]]; do
    FILENAME="${DATE_PREFIX}-${BASENAME}-${COUNTER}${EXTENSION}"
    COUNTER=$((COUNTER + 1))
done

# Lese den Text aus der Pipe und speichere ihn in der Datei
cat > "${TARGET_DIR}/${FILENAME}"


Nun kann das Ergebnis eines Aufrufs von Fabric ein­fach durch einen Befehl im Ordner Documents/fabric_files unter dem Namen 2024–08-23-note.md gespei­chert wer­den:

cat ~/Documents/Article_Draft.md | fabric -sp summarize | save

Falls jemand einen Tip für eien Befehl zum Transkribieren einer Audio-Datei hat, bitt gene in den Kommentaren hin­ter­las­sen.

Nützliche Befehle für Fabric

Bevor ich auf die eigent­li­che Magie von Fabric ein­ge­hen wer­de, näm­lich die Pattern, noch eini­ge wich­ti­ge Befehle:

fabric --listpatterns # listet alle Pattern auf
fabric --listmodels # listet alle LLMs auf
fabric --changeDefaultModel # ändert das Default LLM
fabric --model llama3.1:latest -sp summarize
# ändert das LMM temporär für diesen Aufruf 
fabric --output MeineDatei.md -sp summarize
# Speichert die Ausgabe des fabric Aufrufs in MeineDatei.md ab
fabric --context blogger-support -sp summarize

Wie bereits erwähnt, kön­nen im Ordner ~/.config/fabric/context Dateien abge­legt wer­den, die zusätz­li­che Informationen für den Aufruf von Fabric bereit­stel­len. In der Datei blogger-support könn­ten bei­spiels­wei­se wei­te­re Regeln defi­niert wer­den, die im Kontext der Unterstützung beim Schreiben eines Blog-Artikels hilf­reich sind. Diese Regeln kön­nen nicht nur bei der Verwendung eines Patterns, son­dern auch mit der Option --context bei Aufrufen ver­schie­de­ner Patterns genutzt wer­den.

cat ~/.config/fabric/.env # Zeigt die aktuelle Konfiguration an

Weitere Optionen wer­den mit fabric --help bzw. yt --help auf­ge­lis­tet und erläu­tert.

Die Bedeutung der Patterns in Fabric

Die Pattern sind das Herzstück von Fabric, da sie auf effi­zi­en­te Weise bewähr­te Prompts bereit­stel­len, die mit eige­nen Inhalten ver­mischt an ein LLM zur Bearbeitung gesen­det wer­den. Diese Pattern las­sen sich leicht an die eige­nen Bedürfnisse anpas­sen, oder man kann auch eige­ne erprob­te Prompts in Pattern über­füh­ren und mit Fabric nut­zen.

Bei der Installation wer­den etwa 140 Pattern (und es wer­den immer mehr) instal­liert. Die Pattern sind meist in Abschnitte geglie­dert. Die meis­ten Pattern begin­nen mit dem Abschnitt „IDENTITY and PURPOSE“, der beschreibt, wel­che Rolle das LLM ein­neh­men soll und wel­che Aufgaben es hat. Es fol­gen dann Abschnitte mit Anweisungen, wie das LLM bei der Analyse des Inputs vor­ge­hen und wor­auf es beson­ders ach­ten soll. Danach folgt der Abschnitt „OUTPUT“, in dem das Format der Ausgabe beschrie­ben wird. Der letz­te Bereich ist der „INPUT“, der spä­ter durch die Eingabe ergänzt wird.

Das Pattern write_essaybeinhal­tet Im Bereich “IDENTITY and PURPOSE” fol­gen­de Instruktion:

# IDENTITY and PURPOSE

You are an expert on writing concise, clear, and illuminating essays on the topic of the input provided.

Diese wird in den „OUTPUT INSTRUCTIONS“ mit der fol­gen­den Instruktion ergänzt:

# OUTPUT INSTRUCTIONS

- Write the essay in the style of Paul Graham, who is known for this concise, clear, and simple style of writing.

Das reicht jedoch nicht aus, da das LLM auch wis­sen muss, wie der Stil von Paul Graham aus­sieht. Daher fol­gen noch Textbeispiele hier von 9025 Wörtern, die den typi­schen Essay-Stil von Paul Graham defi­nie­ren. Danach gibt es noch eini­ge detail­lier­te Ausgabeinstruktionen.

Dies ist natür­lich ein Pattern, das danach schreit, ange­passt zu wer­den. Hier könn­te bei­spiels­wei­se statt Paul Graham auch der eige­ne Name ste­hen, die Textbeispiele könn­ten aus eige­nen Texten stam­men, und die Instruktionen könn­ten so ange­passt wer­den, dass die Ausgabe statt eines Essays ein Artikel für eine Zeitschrift sein soll.

Eine wei­ter nütz­li­che Anpassung ist eine Instruktion im “OUTPUT INSTRUCTIONS” Abschnitt, näm­lich das der Output auf deutsch sein soll:

- Make the output in German.

Das reicht nor­ma­ler­wei­se aus; man muss also nicht das gesam­te Pattern über­set­zen.

Die Anpassungen soll­ten in einer Kopie des Pattern-Ordners vor­ge­nom­men wer­den, der dann einen neu­en Namen wie z.B. zusammenfassung erhält. Die Entwickler raten dazu, die­se Ordner dann in einem sepa­ra­ten Verzeichnis abzu­spei­chern und jeweils eine Kopie in den Patterns-Ordner zu legen. Die Original-Patterns wer­den bei einem Update über­schrie­ben, mög­li­cher­wei­se auch die eige­nen Patterns in die­sem Ordner.

Eine wei­te­re Methode, um Ergebnisse auf Deutsch zu erhal­ten, sind die oben erwähn­ten Kontext-Dateien im Ordner ~/.config/fabric/contexts. Erstellt man bei­spiels­wei­se die Datei in die­sem Ordner:

nano ~/.config/fabric/contexts/german

mit dem Inhalt:

Make the output in German

Es ist auch mög­lich eine einen Aufruf von Fabric mit der Option --context=german star­ten und erhält dann das Ergebnis immer auf Deutsch.

Optimierung des Fabric-Aufrufs

In der alten Version von Fabric wur­de eine Datei mit­ge­lie­fert, die für den Aufruf von Fabric mit einem Pattern jeweils eine Alias-Definition erstellt und die­se dann durch die Initialisierung der .zshrc zur Verfügung stellt. Da die neue Version die­se Funktion nicht mehr bie­tet, habe ich die­se Funktion als Shell-Skript nach­ge­baut:

#!/bin/bash

# Fester Pfad zum Ordner, der gescannt werden soll
input_dir="$HOME/.config/fabric/patterns"

# Überprüfen, ob der Pfad ein gültiges Verzeichnis ist
if [ ! -d "$input_dir" ]; then
    echo "Der Ordner $input_dir existiert nicht oder ist kein gültiges Verzeichnis."
    exit 1
fi

# Dateiname für die .inc Datei
output_file="$HOME/.config/fabric/fabric-bootstrap.inc"

# Initialisierung der .inc Datei
echo "# Automatisch generierte Aliase" > "$output_file"

# Durchlaufen der Unterordner im angegebenen Verzeichnis
for dir in "$input_dir"/*/; do
    # Überprüfen, ob es sich tatsächlich um ein Verzeichnis handelt
    if [ -d "$dir" ]; then
        # Entferne den abschließenden Schrägstrich und den Pfad, um nur den Ordnernamen zu erhalten
        folder_name=$(basename "$dir")
        # Alias in der Form erstellen: alias Ordnername="fabric -sp ordnername"
        echo "alias $folder_name=\"fabric -C=german -sp $folder_name\"" >> "$output_file"
    fi
done

echo "Die Datei $output_file wurde erfolgreich erstellt."

Nun muss fol­gen­der Eintrag am Ende der ~/.zshrc hin­zu­ge­fügt wer­den:

# Created by `Fabric Installation` on 2024-08-06 12:45:30
if [ -f "/Users/leifjp/.config/fabric/fabric-bootstrap.inc" ]; 
    then . "/Users/leifjp/.config/fabric/fabric-bootstrap.inc"; 
fi

Mit source ~/.zshrc wird die neue .zshrc akti­viert, und nun wür­de ein Aufruf von:

wget -qO- https://ileif.de/2024/08/07/automatisierung-von-apple-kurzbefehlen-mit-shortery/ |  pandoc -f html -t plain  | summarize

statt

wget -qO- https://ileif.de/2024/08/07/automatisierung-von-apple-kurzbefehlen-mit-shortery/ |  pandoc -f html -t plain  | fabric -sp summarize

die Zusammenfassung auf Deutsch aus­ge­ben. Das funk­tio­niert dann mit jedem Pattern ohne Änderung. Es kön­nen natür­lich auch gleich wei­te­re all­ge­mei­ne Anweisungen in der Kontext-Datei erfasst wer­den.

Zusammenfassung und Ausblick

Ich hof­fe, die­se klei­ne Einführung in Fabric erleich­tert den Einstieg etwas. In einem wei­te­ren Beitrag wer­de ich zei­gen, wie sich der Aufruf von Fabric wei­ter ver­ein­fa­chen lässt und wie er sich in einen Alfred-Workflow sowie in Apples Kurzbefehle inte­grie­ren lässt.

Falls Fragen, Kritik oder Ideen zu Fabric und der Installation auf­tre­ten soll­ten, nut­zen Sie bit­te die Kommentarfunktion.

Eine Antwort zu „Installation und erste Schritte mit Fabric – dem Prompt-Optimierer“

  1. Leider habe ich ver­ges­sen, die Installation des yt-Befehls zu beschrei­ben. Außerdem habe ich für mich selbst einen Ersatz für den save-Befehl erstellt, und das Vorgehen habe ich nun eben­falls ergänzt. Entschuldigung dafür…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert