Blog
Erstellen Sie keine Inhalte mehr mit ChatGPT!

Dieses Jahr hatte ich das Vergnügen, auf der NDC Oslo zu sprechen. Ich durfte einen Vortrag über ein Thema halten, das mir sehr am Herzen liegt: die Verwendung verschiedener Formen generativer KI zur Erstellung selbstgeführter Meditationssitzungen. Sie können darüber im XPRT Magazine #16 lesen. Am Tag vor der Konferenz besuchte ich eine Community-Veranstaltung, um mich zu entspannen. Bei dieser Veranstaltung traf ich einen der Organisatoren der NDC Oslo. Er fragte mich, über welches Thema ich sprechen würde, und von den 100 Vorträgen auf dieser Veranstaltung wusste er genau, welchen Vortrag ich halten würde. Und das nicht aus einem Grund, auf den ich stolz bin. Ich hatte nämlich eine Zusammenfassung der Sitzung eingereicht, die ich mit ChatGPT erstellt hatte. Ich war mit dem Ergebnis so zufrieden, dass ich die Zusammenfassung sofort einreichte, anstatt sie noch einmal genau zu prüfen. Schriftsteller werden Ihnen sagen: "Betrunken schreiben, nüchtern bearbeiten". Und als ich die Zusammenfassung noch einmal las, wurde mir klar, dass ChatGPT zu diesem Zeitpunkt getrunken haben muss. Das Ergebnis war, dass der Organisator der Veranstaltung mich eine Viertelstunde lang in aller Öffentlichkeit für meine Sitzungszusammenfassung geröstet hat. Und woher wusste er das? Nun, hier ist der erste Absatz des Abstracts:
In einer Zeit, in der sich Technologie und Achtsamkeit überschneiden, verändert die Macht der KI die Art und Weise, wie wir an die App-Entwicklung herangehen. Diese Sitzung taucht in die faszinierende Welt der Nutzung von künstlicher Intelligenz ein, um den Entwicklungsprozess einer mobilen Meditations-App zu beschleunigen und zu optimieren. Wir werden erkunden, wie Azure AI Speech, DALL-E, Azure OpenAI und GitHub Copilot zusammenarbeiten, um visuelle Designer, Synchronsprecher und Sounddesigner überflüssig zu machen und so den traditionellen Entwicklungsablauf zu revolutionieren.
Erkennen Sie die verräterischen Zeichen von (Chat)GPT? Die Schlagworte, die übertriebenen Versprechungen, die mangelnde Konzentration? ChatGPT liebt es, in Dinge "einzutauchen". Es beginnt auch jede Zusammenfassung mit "In einer Welt / In einer Ära". Dass die Sitzung überhaupt angenommen wurde, ist ein Wunder. Die Zusammenfassung ist zu langatmig, zu schwülstig und verrät einen Mangel an Fokus. Das ist nicht die Art von Inhalt, für die ich bekannt sein wollte.
Ich habe aus dieser Erfahrung gelernt. Schreiben Sie Ihre Sitzungszusammenfassung nicht mit ChatGPT. Wählen Sie nicht den einfachen Weg. Seien Sie nicht faul. Stattdessen:
Erstellen Sie einen automatisierten Abstrakt-Generator mit GitHub und Prompty
Ich bin überzeugt, dass wir mit Hilfe von Large Language Models (LLM) bessere Inhalte erstellen können. Es gleicht das Spielfeld aus und macht das Schreiben guter Inhalte für Menschen wie mich zugänglicher. Menschen, die gerne reden und präsentieren und nichts aufschreiben. Menschen, die keine Muttersprachler sind. Menschen, die keine Schriftsteller sind. Also habe ich mir die Mühe gemacht und ein System entwickelt, das mir hilft, bessere Sitzungszusammenfassungen zu erstellen. Ich verwendete GitHub Actions, um den Prozess zu automatisieren, und Prompty, um die Inhalte zu erstellen. So habe ich es gemacht:
Ich habe eine neue Issue-Vorlage in meinem GitHub-Repository erstellt, um loszulegen. Eine Issue-Vorlage ist eine YAML-Datei, die bei der Erstellung eines neuen Issue als Vorlage verwendet wird. Dadurch bin ich gezwungen, ein bestimmtes Format zu verwenden, wenn ich eine neue Sitzungszusammenfassung erstellen möchte. Die Vorlage enthält vier Felder, die die folgenden Fragen beantworten:
- Was glauben Sie, für wen dieser Vortrag gedacht ist?
- Was denken Sie, werden Sie aus diesem Vortrag lernen?
- Was werden Sie mit den Informationen aus diesem Vortrag erreichen können?
- Wie lautet die Zusammenfassung des Vortrags in zwei Sätzen?
Diese Fragen stammen von einem sehr talentierten Redner: Arthur Doler. Er erwähnte, dass er sich diese Fragen stellt, wenn er seine Sitzungszusammenfassungen erstellt. Und ich stimme ihm zu: Wenn Sie diese Fragen nicht beantworten können, sind Sie noch nicht bereit, eine Zusammenfassung Ihrer Sitzung einzureichen.
Wenn Sie mit LLMs arbeiten und Prompty noch nicht kennen, sollten Sie es ausprobieren! Prompty ist eine VS Code-Erweiterung, mit der Sie Prompts für LLM zusammen mit den für diesen Prompt benötigten Einstellungen und Beispielen schreiben können. Dadurch werden alle Prompt-bezogenen Einstellungen in einer Datei zusammengefasst, so dass Sie Änderungen im Laufe der Zeit in Ihrem Git-Verlauf verfolgen können. Darüber hinaus bietet Prompty eine umfangreiche Entwicklungs- und Testerfahrung. Ich werde in diesem Artikel nicht auf alle Funktionen von Prompty eingehen. Es ist ein großartiges Tool für die Entwicklung jeder Anwendung, die LLMs nutzt. Es lässt sich außerdem nahtlos in Prompt Flow, Langchain und Semantic Kernel integrieren, allesamt führende LLM-Orchestrierungstools. Nachdem Sie die Erweiterung installiert haben, klicken Sie einfach mit der rechten Maustaste in den Explorer von VS Code und wählen Sie "Neues Prompty". Nachfolgend sehen Sie das Prompty, das ich für die Erstellung eines neuen Session Abstracts erstellt habe:
---
name: CreateAbstract
description: A prompt that uses a set of questions and answers to create a new presentation abstract.
authors:
- Matthijs van der Veer
model:
api: chat
configuration:
type: azure_openai
azure_endpoint: ${ env:AZURE_OPENAI_ENDPOINT }
azure_deployment: gpt-4o
parameters:
max_tokens: 3000
temperature: 0.7
sample:
answers: >
---
system:
You are an expert in creating presentation abstracts. Our award-winning way of crafting an abstract is to ask a series of questions and use the answers to create a compelling abstract.
I will give some examples of abstracts I like. Please match the wording, style and energy of the examples when crafting new ones.
Examples:
Input:
### 1. Who do you think this talk is for?
Mostly developers, or others interested in automation
### 2. What do you think you'll learn from this talk?
How to use GitHub automation for content generation
The role of humans in reviewing GenAI output
How to chain different forms of GenAI to create unique content
### 3. What's something you'll be able to accomplish with the information gained from this talk?
Use GitHub actions to automatically create PRs
Use Azure AI services from a pipeline
### 4. What is the two-sentence summary of the talk?
Learn how to use GitHub actions to automate more than continuous integration or deployment. Leverage the GitHub's powerful platform the generate new and exciting content with Azure AI Services, while maintaining responsibility as a human.
Output:
# Automating Content Generation with GitHub Actions & Azure AI
In this session, you will learn how to harness the power of GitHub automation for content generation, leveraging GitHub Actions and Azure AI Services. Discover the role of human review and oversight in reviewing GenAI output and how to chain different forms of GenAI to create unique content. We'll explore a practical example of creating self-guided meditations using GPT-4, Azure AI Speech, and DALL-E 3.
This session is ideal for developers and anyone interested in automation. Expect many practical demos, including using GitHub Actions to automatically create PRs and integrating Azure AI services into your pipeline.
What to avoid
- Never discriminate against any group of people
- Never use the words "delve", "equip", "empower", "navigate", "landscape", "enhance", "delve", "insight".
- Avoid terms like "in a world", or "in an era"
user:
{{answers}}
Eine Prompty-Datei beginnt mit einigen Metadaten und der Konfiguration. Wenn Sie bereits mit LLMs gearbeitet haben, werden Sie einige der Einstellungen wiedererkennen. In der Datei bitte ich um die Verwendung der chat API anstelle der completion API und gebe den Einsatz meines LLMs an. Wir können auch einige Parameter angeben, wie die Temperatur. Dieser Parameter ist ein Wert zwischen 0 und 1, wobei 0 bedeutet, dass der LLM nur den wahrscheinlichsten Text erzeugt. Je höher Sie die Temperatur einstellen, desto unerwarteter wird die Ausgabe sein. Er ermöglicht es dem LLM, weniger wahrscheinlichen Text auszuwählen, der etwas ähnelt, das Menschen als "Kreativität" erkennen. Ich stelle die Temperatur recht hoch ein, weil diese Kreativität meinen Zusammenfassungen sehr zugute kommen kann. Das ist sicher, weil ich Beispiele für die Ausgabe, die ich erwarte, in das Programm einfüge. Neben diesen Einstellungen können Sie auch Beispieleingaben in den Abschnitt sample einfügen. Dies ermöglicht es uns, die Eingabeaufforderung lokal auszuführen und die Ergebnisse zu sehen. Es ist auch ein gutes Beispiel für andere, um zu sehen, wie die Eingabe strukturiert sein sollte.
Ein paar Dinge sollten in der zweiten Hälfte der Datei hervorgehoben werden. Ich beginne damit, dass ich Anweisungen zur Rolle gebe, die die KI bei der Erstellung der Zusammenfassung übernehmen soll. Dadurch erhält der LLM mehr Kontext zu der Aufgabe, die ich ihm zuweisen möchte. Ich füge auch Anweisungen hinzu, die dem Stil der Beispiele entsprechen. Dies ist eine wichtige Technik im Prompt Engineering, die als "few-shot prompt" bekannt ist und bei der wir die Antwort des Modells mit einigen Beispielen untermauern. Würde ich die Beispiele weglassen, bekämen Sie Antworten, die nur auf dem basieren, was nach Ansicht des LLM eine Sitzungszusammenfassung sein sollte, mit all den GPT-Fragen meiner ursprünglichen Zusammenfassung. In der Aufforderung, die ich weitergegeben habe, habe ich nur ein Beispiel angeführt, aber je mehr Sie hinzufügen, desto besser wird der LLM Ihren beabsichtigten Stil und Wortlaut übernehmen. Zum Zeitpunkt des Verfassens dieses Artikels verwendet mein Prompt zwei Beispiele von Zusammenfassungen, die ich ohne KI geschrieben habe, in Kombination mit den Fragen und Antworten, die ich oben beschrieben habe. Dadurch wird das Modell ausreichend auf meinen Schreibstil abgestimmt, ebenso wie auf die Gesamtlänge und den Ton der Zusammenfassung (ich bevorzuge kurze Zusammenfassungen mit einem positiven Ton).
Die Aufforderung enthält auch Dinge, die der Assistent vermeiden soll. Das ist wichtig, denn sonst machen wir die gleichen Fehler, die ich bei ChatGPT gemacht habe. Ein Teil des Verhaltens von ChatGPT kommt von der für uns unsichtbaren Eingabeaufforderung des Systems, aber ein großer Teil der Ausgabe kommt von der Verwendung des gleichen Modells, das wir hier verwenden: GPT-4o. Wenn wir dem Modell sagen, was es vermeiden soll, können wir einige der gleichen Fehler vermeiden. In der Souffleurtechnik bevorzugen wir in der Regel positive Beispiele gegenüber negativen Beispielen, aber in der Praxis müssen Sie Leitplanken und Einschränkungen einbauen.
Wenn Sie sich fragen, warum ich diese spezielle Liste von Wörtern ausschließe, so liegt das daran, dass sie in den Zusammenfassungen von Sitzungen seit dem Erscheinen von ChatGPT übermäßig häufig verwendet werden. Sehen Sie sich "Delving Into The Landscape" von Dylan Beattie zu diesem Thema an.
GitHub-Aktionen
Mit meiner neuen Eingabeaufforderung bewaffnet, machte ich mich daran, den Prozess zu automatisieren. Ich habe einen neuen GitHub-Workflow erstellt, der jedes Mal ausgeführt wird, wenn eine neue Ausgabe mit dem Label
Das macht die Implementierung in unserem Workflow recht einfach. Nachdem wir die Python-Abhängigkeiten installiert und uns bei Azure angemeldet haben, haben wir alles, was wir brauchen, um unsere Zusammenfassung als Kommentar zur Ausgabe zu erhalten:
- name: Create an abstract
env:
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
run: |
python create-abstract_promptflow.py --answers "${{ github.event.issue.body }}" > abstract.txt
- run: gh issue comment $ISSUE --body "$(cat abstract.txt)"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE: ${{ github.event.issue.html_url }}
Dieser GitHub-Workflow führt das Python-Skript aus, speichert die Ausgabe in einer Datei und verwendet dann die GitHub CLI, um einen Kommentar zu dem Problem mit der generierten Zusammenfassung zu posten. Das Ergebnis ist eine generierte Zusammenfassung, die als Kommentar zu dem Problem gepostet wird. So kann ich die Zusammenfassung überprüfen, was uns zum nächsten Problem bringt: Automation Bias.
[caption id="attachment_84822" align="alignnone" width="1024"]
Abbildung 1. Screenshot einer generierten Zusammenfassung. [/caption]
Automation Bias: Alles überprüfen
Wie viele Menschen leide auch ich unter der Voreingenommenheit für Automatisierung. Diese spezielle Form der kognitiven Voreingenommenheit ist die Tendenz, Informationen, die von automatisierten Systemen generiert wurden, gegenüber Informationen, die von Menschen bereitgestellt wurden, zu bevorzugen. Der Grund für meine fehlerhafte Zusammenfassung war nicht nur der Inhalt, den ich mit ChatGPT erstellt hatte, sondern auch die Tatsache, dass ich sie nicht genau genug überprüft hatte. Ich sah Worte auf dem Bildschirm, die wie eine Zusammenfassung aussahen, und habe sie eingereicht. Und obwohl mehr Automatisierung wahrscheinlich nicht die Lösung ist, habe ich noch mehr automatisiert. Das sollte Sie, lieber Leser, nun nicht mehr überraschen.
Ich habe beschlossen, zwei LLM-gestützte Überprüfungsaufgaben einzuführen. Eine Aufgabe überprüft den Inhalt der Zusammenfassung. Sie prüft, ob alle vom Benutzer bereitgestellten Antworten in die Zusammenfassung aufgenommen wurden und gibt einige allgemeine Einblicke in den Inhalt. Die zweite Aufgabe ist eine Stilprüfung. Sie prüft, ob die Zusammenfassung für meinen Geschmack zu "ChatGPT" ist. Sie erkennt die meisten der Schlagwörter und Phrasen, die ich vermeiden möchte. Auf diese Weise kann ich die von Prompty generierten Zusammenfassungen überprüfen und sicherstellen, dass sie meinen Ansprüchen genügen.
Beide Aufforderungen folgen der gleichen Struktur wie die Aufforderung zur Erstellung von Zusammenfassungen. Sie beginnen mit einem Stil und Anweisungen und werden mit Beispielen ergänzt. Ein großer Unterschied ist, dass temperature auf 0,2 gesetzt wurde, um sicherzustellen, dass der LLM bei seinen Antworten nicht zu kreativ wird, sondern sich an die gestellte Aufgabe hält. Denken Sie daran: "Betrunken schreiben, nüchtern bearbeiten". Außerdem weise ich das Modell an, ausgiebig von Emojis Gebrauch zu machen. Auf diese Weise wird die Rezension meine Aufmerksamkeit erregen, wenn etwas nicht stimmt. Hier ist ein Beispiel:
[caption id="attachment_84823" align="alignnone" width="1024"]
Abbildung 2. Screenshot einer generierten Inhaltsüberprüfung.[/caption]
[caption id="attachment_84824" align="alignnone" width="1024"]
Abbildung 3. Der Schreibcoach betritt den Raum.[/caption]
Auf den Screenshots können Sie sehen, dass die Überprüfungen recht gründlich sind. Der Schreibcoach hat sogar einen Fehler richtig erkannt und die Zusammenfassung mit nur einer winzigen Änderung neu geschrieben. Die Überprüfungen waren eine große Hilfe. Ich muss zwar immer noch den Originaltext lesen, aber die Bewertungen geben mir eine gute Vorstellung davon, was mich erwartet. Sie helfen mir auch, Fehler zu entdecken, die ich sonst übersehen würde. Und noch besser: Die ersten Abstracts, die ich auf diese Weise erstellt habe, werden bereits auf Konferenzen angenommen.
Fazit
Generalisten-Tools wie ChatGPT sind für viele Dinge gut geeignet. Aber wenn Sie Inhalte in einem professionellen Umfeld erstellen wollen, sollten Sie besser auf spezialisierte Tools zurückgreifen oder Ihre eigenen entwickeln! Ich würde gerne sagen, dass es keinen Ersatz für eine menschliche Überprüfung gibt, und ich glaube, dass das im Falle der Generativen KI auch heute noch zutrifft. Aber das gilt auch für Rechtschreibprüfung, Autokorrektur, UI-Tests und viele andere Tools, auf die wir uns heute verlassen. Ich glaube, dass wir mit generativer KI bessere Inhalte erstellen können, wenn wir die richtigen Aufforderungen, die richtigen Leitplanken und den richtigen Überprüfungsprozess anwenden.
Ich glaube, dass LLMs das Spielfeld für Menschen ausgleichen können, die nicht in der Lage sind, so flüssig wie ein Muttersprachler zu schreiben. Ich benutze es als Hilfsmittel, um bessere Inhalte zu erstellen, nicht um meine eigene Kreativität zu ersetzen. Jede Zusammenfassung, die erstellt wird, enthält meinen Stil, meine Formulierungen und meine Ideen. Die Schlussfolgerung aus diesem Artikel: Erstellen Sie bessere Prompts, machen Sie sich an die Arbeit und vor allem: Überprüfen Sie alles, was die generative KI generiert. Sie sind derjenige, der für den Inhalt verantwortlich ist, nicht die KI.
Dieser Artikel ist Teil von XPRT.#17. Laden Sie das Magazin hier herunter.

Verfasst von
Matthijs van der Veer
Matthijs is a consultant at Xebia, with a strong focus on Generative AI. He loves helping people achieve more in the cloud.
Contact