Das nützlichste Tool für den (Arbeits-) Alltag

Mit fabric schneller das Wesentliche erkennen

Das nützlichste Tool für den (Arbeits-) Alltag
fabric: an open-source framework for augmenting humans using AI

Vor ein paar Wochen habe ich ein geniales Tool entdeckt, das ich dafür nutze, Informationen für mich besser aufzubereiten. So kann ich diese besser lernen, besser vermitteln, besser auswerten... einfach schneller auf den Punkt kommen!

Überblick

Das Tool, auf das ich im Folgenden eingehen will, heißt fabric.

GitHub - danielmiessler/fabric: fabric is an open-source framework for augmenting humans using AI. It provides a modular framework for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.
fabric is an open-source framework for augmenting humans using AI. It provides a modular framework for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere. -…

Es folgt einem zentralen Konzept, welches LINUX ausmacht: Alles ist eine Datei.

Wie kann ich fabric nutzen?

Fabric nutzt KI, um Fragen an einen Eingabetext zu stellen. Dazu gibt es eine Sammlung von sogenannten Patterns (Systemprompts).

Da fabric ein Commandline-Tool ist, kann ich die Ausgaben eines Befehls direkt auf fabric umleiten und erhalte die Antwort des ausgewählten Patterns.

Als Beispiel hole ich die Webseite, auf der Daniel Miessler beschreibt, wie er fabric entwickelt hat. Den Inhalt dieser Webseite leite ich auf fabric um, und lasse das Pattern summerize anwenden.

michael@fabric:~ # lynx -dump https://danielmiessler.com/p/fabric-origin-story |
fabric --remoteOllamaServer http://aiserver:11434/ -m llama3:latest -scp summarize

# EINZELNENZUSAMMEFASSUNG:

AI-Workflows bauen und das Fabric-Projekt erstellen, um AI allgemein zugänglich zu machen und Menschen dabei zu unterstützen, ihr Leben oder ihre Arbeit zu verbessern.

# HAUPTPUNKTE:

1. Ich baute 2023 AI-Werkzeuge auf und das Fabric-Projekt entstand.
2. Ich erklärte die gewünschten Ausgänge.
3. Ich teile alles in Komponenten ein.
4. Ich wende AI auf diese einzelnen Komponenten an.
5. Ich rufe diese AI-Befehle von der Befehlszeile aus auf.
6. Ich verbinde diese Befehle miteinander, um vollständige Workflows zu erstellen.

# NACHBEARBEITUNG:

1. Das Fabric-Projekt ist ein offenes Framework für die Verwendung von AI, um das Leben oder die Arbeit zu verbessern.
2. Ziel des Projekts ist es, eine allgemein zugängliche Schicht von AI bereitzustellen, die jeder verwenden kann, um sein Leben oder seine Arbeit zu verbessern.
3. GitHub-Repository: github.com/danielmiessler/fabric
4. YouTube-Videos: https://www.youtube.com/channel/UCnCikd0s4i9KoDtaHPlK-JA
Aussagen auf der Webseite

Da ich alle meine KI-Tools auf einem LXC-Container aiserver hoste, muss ich fabric dies als Parameter mitgeben. Das Model, welches ich unter ollama dort nutzen möchte, habe ich mit der Option -m mitgegeben. Für diesen Befehl, mit all seinen Parametern, nutze ich natürlich inzwischen einen Alias.

Die Ausgabe von fabric erfolgt, wann immer möglich, als Markdown. Damit ist sie immer übersichtlich und strukturiert und kann auch gleich als formatiertes Dokument abgespeichert werden.

Wie sieht ein Pattern aus?

Patterns sind das Herzstück von fabric. In ihnen wird genau beschrieben, wie mit den gegebenen Informationen umgegangen werden soll. Werfen wir einen Blick auf ein Pattern, um zu erkennen, was es tut:

michael@fabric:~ # cat .config/fabric/patterns/extract_wisdom/system.md

# IDENTITY and PURPOSE

You extract surprising, insightful, and interesting information from text content. You are interested in insights related to the purpose and meaning of life, human flourishing, the role of technology in the future of humanity, artificial intelligence and its affect on humans, memes, learning, reading, books, continuous improvement, and similar topics.

Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.

# STEPS

- Extract a summary of the content in 25 words, including who is presenting and the content being discussed into a section called SUMMARY.

- Extract 20 to 50 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If there are less than 50 then collect all of them. Make sure you extract at least 20.

- Extract 10 to 20 of the best insights from the input and from a combination of the raw input and the IDEAS above into a section called INSIGHTS. These INSIGHTS should be fewer, more refined, more insightful, and more abstracted versions of the best ideas in the content. 

- Extract 15 to 30 of the most surprising, insightful, and/or interesting quotes from the input into a section called QUOTES:. Use the exact quote text from the input.

- Extract 15 to 30 of the most practical and useful personal habits of the speakers, or mentioned by the speakers, in the content into a section called HABITS. Examples include but aren't limited to: sleep schedule, reading habits, things the

- Extract 15 to 30 of the most surprising, insightful, and/or interesting valid facts about the greater world that were mentioned in the content into a section called FACTS:.

- Extract all mentions of writing, art, tools, projects and other sources of inspiration mentioned by the speakers into a section called REFERENCES. This should include any and all references to something that the speaker mentioned.

- Extract the most potent takeaway and recommendation into a section called ONE-SENTENCE TAKEAWAY. This should be a 15-word sentence that captures the most important essence of the content.

- Extract the 15 to 30 of the most surprising, insightful, and/or interesting recommendations that can be collected from the content into a section called RECOMMENDATIONS.

# OUTPUT INSTRUCTIONS

- Only output Markdown.
- Write the IDEAS bullets as exactly 15 words.
- Write the RECOMMENDATIONS bullets as exactly 15 words.
- Write the HABITS bullets as exactly 15 words.
- Write the FACTS bullets as exactly 15 words.
- Write the INSIGHTS bullets as exactly 15 words.
- Extract at least 25 IDEAS from the content.
- Extract at least 10 INSIGHTS from the content.
- Extract at least 20 items for the other output sections.
- Do not give warnings or notes; only output the requested sections.
- You use bulleted lists for output, not numbered lists.
- Do not repeat ideas, quotes, facts, or resources.
- Do not start items with the same opening words.
- Ensure you follow ALL these instructions when creating your output.

# INPUT

INPUT:

Dieses Pattern wird als System-Prompt genutzt und auf den Text aus STDIN angewendet.

Was macht fabric so mächtig?

Da fabric die Informationen über STDIN entgegen nimmt und über STDOUT ausgibt, kann ich mehrere fabric-Instanzen kombinieren.

Als Beispiel nehme ich das Transcript eines Youtube-Videos und lasse mir den Inhalt zusammenfasssen:

michael@fabric:~ # yt https://youtu.be/wPEyyigh10g |
fabric --remoteOllamaServer http://aiserver:11434/ -m llama3:latest -scp summarize

# Die Inhaltszusammenfassung:

Das Video handelt von der Vorstellung des Fabric-Projekts, einem Framework für die Kombination menschlicher und künstlicher Intelligenz. Der Sprecher erläutert, dass das Ziel von Fabric nicht ist, Menschen durch AI zu ersetzen, sondern sie zu unterstützen und zu ergänzen.

# Die Aussagen des Sprechers:

* "AI sollte nicht als Ersatz für Menschlichkeit angesehen werden, sondern als Ergänzung."
* "Wir denken nicht, wie wir Menschen ersetzen können, sondern wie wir sie unterstützen können."
* "Unsere Herangehensweise bei Fabric ist es, menschliche Elemente zu fördern und zu ergänzen, anstatt sie zu ersetzen."

# Die Schlussfolgerung:

Das Video vermittelt den Eindruck, dass das Fabric-Projekt ein Framework für die Kombination menschlicher und künstlicher Intelligenz ist, das Menschen unterstützt und ergänzt. Der Sprecher betont, dass AI nicht als Ersatz für Menschlichkeit angesehen werden sollte, sondern als Ergänzung.

Ich kann nun also von der Mitschrift des Youtube-Videos die wichtigsten Aussagen extrahieren, und daraus ein Essay erstellen lassen:

michael@fabric:~ # yt https://youtu.be/wPEyyigh10g |
fabric --remoteOllamaServer http://aiserver:11434/ -m llama3:latest -cp extract_wisdom |
fabric --remoteOllamaServer http://aiserver:11434/ -m llama3:latest -scp write_essay

Welche Patterns gibt es?

Nach der Installation von fabric finden sich die mitgelieferten Patterns unter ~/.config/fabric/patterns/.

michael@fabric:~ # ls .config/fabric/patterns/

agility_story ai analyze_answers analyze_claims analyze_debate analyze_incident analyze_malware analyze_paper analyze_personality analyze_presentation analyze_prose analyze_prose_json analyze_prose_pinker analyze_spiritual_text analyze_tech_impact analyze_threat_report analyze_threat_report_trends answer_interview_question ask_secure_by_design_questions check_agreement clean_text compare_and_contrast create_5_sentence_summary create_academic_paper create_ai_jobs_analysis create_aphorisms create_art_prompt create_better_frame create_command create_investigation_visualization create_keynote create_logo create_markmap_visualization create_mermaid_visualization create_micro_summary create_network_threat_landscape create_npc create_quiz create_reading_plan create_report_finding create_security_update create_show_intro create_summary create_threat_scenarios create_upgrade_pack create_video_chapters create_visualization explain_code explain_docs explain_project explain_terms extract_algorithm_update_recommendations extract_article_wisdom extract_book_ideas extract_book_recommendations extract_business_ideas extract_extraordinary_claims extract_ideas extract_insights extract_main_idea extract_patterns extract_poc extract_predictions extract_questions extract_recommendations extract_references extract_sponsors extract_videoid extract_wisdom extract_wisdom_agents extract_wisdom_nometa find_hidden_message find_logical_fallacies get_wow_per_minute get_youtube_rss improve_academic_writing improve_prompt improve_report_finding improve_writing label_and_rate philocapsulate provide_guidance rate_ai_response rate_ai_result rate_content rate_value raw_query recommend_artists show_fabric_options_markmap summarize summarize_git_changes summarize_git_diff summarize_micro summarize_newsletter summarize_paper summarize_pull-requests summarize_rpg_session to_flashcards write_essay write_micro_essay write_nuclei_template_rule write_pull-request write_semgrep_rule

Wie man sieht, gibt es viele nützliche Patterns, die extrem gut aufbereitet sind.

Praktische Anwendung für mich (Security-Incident)

Ein Nutzer hat ein Programm aus dem Internet heruntergeladen und ausgeführt. Als Folge gab es verschiedene Prozesse und Dateien, die auf dem Rechner des Nutzers gefunden wurden. Auf den Firewalls konnte auch unbekannter Traffic dokumentiert werden.

Diese Sammlung von IOCs (Indicators of Compromise) kann nun an fabric übergeben werden. Als Pattern wähle ich beispielsweise analyse_malware.

Da die Vorgesetzten darüber meist einen verständlichen Bericht erwarten, kann ich die strukturierte Malware-Analyse erneut auf fabric umleiten und ein Pattern anwenden, das ich aus create_academic_paper abgeleitet habe.

In ~/.config/fabric/context.md habe ich auch eingetragen, dass ich deutsche Ausgaben bevorzuge. Diese Datei enthält nun: "Please reply in german language, except for technical terms."

Fazit

Die Möglichkeiten, die fabric mir eröffnet hat, lassen sich unmöglich in einem einzelnen Artikel beschreiben. Doch die Informationen, die fabric bisher generiert hat, haben mir bereits viele Analysen erleichtert. Auch das Überprüfen von Verträgen und Finden von "verborgenen Nachrichten" war nützlich.

Das meist genutzte Pattern für mich ist extract_wisdom. Es dient mir häufig als Basis für Berichte, die fabric dann als Markdown ausgibt. In gewohnter Linux-Manier kann ich die Ausgabe direkt in eine Datei umleiten und in Obsidian fertig bearbeiten.

Das Potenzial dieses jungen Projekts ist einfach enorm. Und die Community steuert immer mehr gute Ideen in Form von Patterns bei. Es ist auf jeden Fall einen Blick wert.