Direkt zum Inhalt

Hey ChatGPT, schreib einen Blogbeitrag zum Thema Prompt Engineering [Teil 2]

Hey ChatGPT, schreib einen Blogbeitrag zum Thema Prompt Engineering [Teil 2]

In dieser Reihe beschäftigen wir uns damit, wie man durch Übung und Experimentieren die Kunst meistert, präzise und wirksame Eingabeaufforderungen zu formulieren. Im ersten Teilhaben wir die verschiedenen Eingabeaufforderungstypen, bewährte Methoden zur Erstellung von Eingabeaufforderungen und die fünf wichtigsten Eingabeaufforderungstechniken behandelt. Im zweiten Teil werden wir uns mit der Gedankenbaum-Eingabeaufforderung sowie mit dem Einstieg in die Eingabeaufforderung befassen – insbesondere, wenn Sie neu darin sind.

Anwendungsfall: Gedankenbaum-Eingabeaufforderung

Der Support Assistant Starter-App ist eine Mendix App, die heruntergeladen und an Ihre Anforderungen angepasst werden kann. Es verwendet Retrieval Augmented Generation (RAG) und Funktionsaufrufe zum Herstellen einer Verbindung mit Ihrer eigenen Datenbank, wodurch dieser Anwendungsfall ein hervorragendes Beispiel für Eingabeaufforderungen ist (vorerst – weitere folgen!).

Die Support Assistant App wurde entwickelt, um zu demonstrieren, wie GenAI in einem Unternehmen als Support-Assistent für Mitarbeiter mit IT-bezogenen Anfragen eingesetzt werden kann. Sie bietet Lösungen auf der Grundlage statischer Daten oder früherer ähnlicher Probleme und erstellt ein Support-Ticket für den IT-Helpdesk, wenn die Anfrage nicht allein vom Chatbot gelöst werden kann. Wenn der Benutzer beispielsweise eine neue Lizenz oder Hardware benötigt, kann der Bot eine neue Anfrage für den Benutzer öffnen und das Erlebnis erleichtern. Weitere Informationen finden Sie in der folgenden Animation.

Um die Funktionen der Support Assistant App zu erreichen, wurden neun Funktionsmikroflüsse erstellt, die das LLM aufrufen kann, um eine Antwort zu generieren. Um zu bestimmen, welche Funktion in dem jeweiligen Szenario angesprochen werden muss, spielt die Eingabeaufforderung eine entscheidende Rolle. Daher werden wir uns auf die relevanten Teile der Eingabeaufforderung konzentrieren, die Sie in Ihrem nächsten GenAI-angereicherten Mendix App

Um die vollständige Eingabeaufforderung zu lesen, laden Sie bitte die Support Assistant Starter App herunter und suchen Sie nach dem TicketBot_ActionMicroflow Mikroströmung, im Anfrage aus ChatContext erstellen Aktivität und suchen Sie nach der SystemPrompt in den Parametern.

Als Ausgangspunkt ist es wichtig, dem Bot eine Rolle zuzuweisen und erste Informationen bereitzustellen. Im Beispiel der Support Assistant App weisen wir ihm die Persona eines Assistenten mit Zugriff auf eine private Datenbank für Anfragen zu.

You are a helpful assistant supporting the IT department with employees' inquiries, such as support tickets, licenses (e.g., Mendix) or hardware (e.g., Computer) requests. 
Use the knowledge base and previous support tickets as a database to find a solution to the user’s request without disclosing sensitive details or data from previous tickets.

Als Nächstes geben wir einige Details dazu an, wie die gewünschte Ausgabe aussehen soll, einschließlich Sprache, Ton und Format.

The user expects direct, and clear answers from you. 
Use language that users who might not be familiar with advanced software or hardware usage can understand. 
The text will be rendered in markdown ...

Nachdem der Bot nun seine „Persönlichkeit“ hat, gehen wir zu den Anweisungen über, indem wir den Gedankenbaum verwenden, wie im Bild unten dargestellt. Dazu zählen wir jedes Szenario auf, um es dem LLM zu erleichtern, den Anweisungen zu folgen.

Als erstes Beispiel betrachten wir die vage oder unvollständige AnfragenWir möchten verhindern, dass das KI-Modell die Eingaben des Benutzers interpretiert, da dies zu falschen Antworten führen könnte. Daher schließen wir Folgendes ein:

Never assume the user’s issue based on a vague input. 
If the user’s input is not clear or seems incomplete, you must first ask the user for more details to clarify the problem...

Do not proceed to suggest solutions or actions until the user’s issue is clearly understood.

Einige dieser Anfragetypen können zusammen mit Beispielantworten bereitgestellt werden, wie etwa:

Example response: "Could you please provide more details about the issue you are experiencing?"

Optional können Sie die Themen einschränken, die der Bot behandeln kann, indem Sie Folgendes mit einer Beispielantwort in Ihre Eingabeaufforderung aufnehmen.

Avoid answering questions about cooking, music, or dancing. 
Example response: "Your request is not an IT topic. I am here to assist you on support ticket and new licenses or hardware matters."

Sobald die Grundlagen festgelegt sind, können wir die Richtlinien auf den spezifischen Anwendungsfall übertragen. In diesem FallAnweisungen für Anfragen des Benutzers, wo die vorliegenden Anfragen bearbeitet werden.

There are two types of requests - requesting a new license or hardware, or IT support.

Anschließend können wir tief in die spezifischen Anweisungen für jede Anfrage eintauchen und den Funktionsnamen angeben, den das Modell aufrufen soll, wenn die Anforderung erfüllt ist.

If the user asks for help with an issue (e.g., battery drain, connection problems, etc.), call the RetrieveStaticInformation function to provide a solution from the knowledge base.

Das Einfügen eines alternativen Abschnitts für den Fall, dass die Anforderung nicht erfüllt wird, ist der Punkt, an dem der Denkbaumansatz eine Rolle spielt, wie im obigen Bild dargestellt. Im Beispiel der Support Assistant App fährt das LLM mit der nächsten Bedingung fort, wenn die Bedingung zum Aufrufen der spezifischen Funktion nicht erfüllt ist, bis es eine präzise Funktion zum Ansprechen hat.

Wenn die Informationen beispielsweise nicht in der StatischeInformationenabrufen Funktion, es ruft weiterhin die ÄhnlicheTickets abrufen eins. Nur wenn keine der oben genannten Bedingungen erfüllt ist, wird zur nächsten Funktion übergegangen und ein neues Support-Ticket erstellt. Da die Eingabeaufforderung eine Liste von Anweisungen sein kann, ist es möglich, auf zukünftige Befehle zu verweisen, um zu verhindern, dass mehrere Anweisungswiederholungen zu einer langen Eingabeaufforderung führen. Ein Beispiel für diese Referenz ist:

If none of the options above help the user, proceed to step 3 Handling New Support Tickets.

Der dritter Schritt, Das sich auf Bearbeitung neuer Support-Tickets, kann wiederum eine Liste von Aufträgen enthalten, denen das Modell folgen soll. Wie in der Demo gezeigt, erleichtert das KI-Modell die Erstellung der neuen Tickets. Daher können Sie Richtlinien für das Modell hinzufügen, die für diesen Schritt relevant sind, wie zum Beispiel:

Write the ticket description from the user’s perspective.
If you do not agree with an update request (e.g., the user wants to categorize a Miro license request as a hardware issue), explain to the user why you do not recommend that change. 
However, if the user insists, you can make the change.

Natürlich möchten Sie bestimmte Einschränkungen oder Regeln einschließen, die jedes Mal befolgt werden müssen, wie die Grafik zeigt in Zusätzliche RegelnDer Schwerpunkt dieses Schritts konnte nicht in eine der zuvor genannten Kategorien eingeordnet werden, da es sich hierbei um allgemeinere Regeln handelt, die der Bot befolgen muss.

Beispiele hierfür sind App-Einschränkungen (d. h. wenn der Bot keine Berechtigung zum Ausführen bestimmter Aktivitäten hat, wie etwa das Speichern oder Löschen eines Tickets, und den Benutzer darauf hinweisen sollte, dies manuell zu tun) oder Funktionsbeschränkungen (d. h. was zu tun ist, wenn der Bot nicht sicher ist, welche Funktion er aufrufen soll).

Für einen Neuling mag das zunächst überwältigend klingen und aussehen, aber es ist wichtig, eine Struktur zu haben, auf die man sich verlassen kann. Wenn also neue Funktionen, Anweisungen oder Regeln zur Eingabeaufforderung hinzugefügt werden müssen, ist es einfacher, sie anzupassen. Im nächsten Abschnitt geben wir zusätzliche Tipps, wie Sie Ihre Reise beginnen können.

So starten Sie: Eingabeaufforderung ohne Grenzen

Zu Beginn kann es schwierig sein, mit der Aufforderung zu beginnen. Es gibt jedoch einige Empfehlungen, die Sie befolgen können, um sich auf diesem Weg sicherer zu fühlen. Dazu gehören:

Fangen Sie klein an und konzentrieren Sie sich auf das Experimentieren

Beim ersten Versuch gibt es keine perfekte Eingabeaufforderung. Konzentrieren Sie sich darauf, ein paar Zeilen zu schreiben, um eine Vorstellung davon zu bekommen, wie das KI-Modell auf Ihren Befehl reagiert. Dies wird für die nächsten Schritte relevant sein.

Finden Sie einen Anwendungsfall und sammeln Sie alle Anforderungen

Ohne einen Anwendungsfall oder ohne die Erwartungen an das LLM kann es schwierig sein, einfach zu fragen und zu erwarten, dass das Modell die richtigen Antworten liefert. Erstellen Sie daher eine Liste mit Anforderungen und Wünschen.

Von den Szenarien bis zur Prompt-Erstellung

Wenn Sie alle Szenarien für den Anwendungsfall aufgeschrieben haben und wissen, was von der Eingabeaufforderung erwartet wird, kann dies bei der Erstellung des ersten Eingabeaufforderungsentwurfs hilfreich sein. Berücksichtigen Sie die Eingabeaufforderungstypen, bewährte Methoden und, falls erforderlich, die Eingabeaufforderungstechniken.

Iterative Verfeinerung (Testen und nochmals Testen)

Testen Sie alle geschriebenen Szenarien, um die erstellte Eingabeaufforderung zu bewerten. Versuchen Sie, die Fragen in mehreren Formen zu formulieren, um die Antworten zu bewerten.

Externe Überprüfung

Für weitere Verbesserungen am Modell benötigen Sie möglicherweise externes Feedback. Ein anderer Blickwinkel kann neue Probleme aufzeigen, die in der Eingabeaufforderung behandelt werden können.

Falls die Ausgabe nicht Ihren Erwartungen entspricht

Das KI-Modell liefert Ihnen möglicherweise nicht das gewünschte Ergebnis, aber keine Sorge. Wo es ein Problem gibt, gibt es (meistens) auch eine Lösung. Hier sind einige davon:

  • Ändern der Modellvariante: Das Aktualisieren des Modells auf höhere Varianten kann seine Leistung erheblich verbessern. Wenn Sie beispielsweise GPT4o anstelle von GPT3.5 wählen, kann dies bei den meisten Aufgaben aufgrund der Verbesserungen in Architektur, Training und Gesamtfunktionen eine bessere Leistung erzielen.
  • Alternativen finden: Je nach Anwendungsfall kann das Finden von Alternativen die Leistung verbessern, indem die Eingabeaufforderung neu organisiert, vereinfacht oder die Anzahl der Anweisungen reduziert wird. In Fällen, in denen Funktionsaufrufe verwendet werden, kann beispielsweise das Erstellen einer neuen Funktion anstelle des Hinzufügens einer neuen Anweisung zur Eingabeaufforderung eine Lösung sein.
  • Testen Sie nach Schritten: Zu ermitteln, wo Ihre Eingabeaufforderung fehlschlägt, ist eine weitere Alternative, um herauszufinden, warum die Ausgabe nicht den Erwartungen entspricht. Indem Sie dem LLM zu jeder erteilten Anweisung eine Reihe von Fragen stellen und ermitteln, wo das KI-Modell möglicherweise nicht funktioniert, kann dies dazu beitragen, einen Schwerpunktbereich für Verbesserungen zu haben.
  • Beginnen Sie bei ‚Null‘: Manchmal kann es die Leistung steigern, wenn man die Gliederung der Aufforderung aus einem anderen Blickwinkel betrachtet oder die Aufforderungstechnik ändert. Zum Beispiel, wenn die Reihenfolge der Anweisungen geändert wird oder Sie sich für einen Drei-Gedanken-Ansatz entscheiden.
  • Ändern Sie den Umfang des Projekts: Dies ist zwar möglicherweise nicht die gewünschte Lösung, aber wenn Sie auf viele Probleme stoßen, kann es sinnvoll sein, den Umfang des Projekts anzupassen, um die Genauigkeit der Antworten sicherzustellen. Ein Beispiel für ein Projekt wie die Support Assistant App könnten zwei Eingabeaufforderungen sein, von denen eine die Supporttickets und die andere die Lizenz- oder Hardwareanwendungen bearbeitet.

Wie es weitergeht: Erfolgsfaktoren entwickeln

Mit all diesem Wissen können Sie Ihre Reise des Prompt Engineering beginnen und diesen Blog so oft wie nötig erneut besuchen, um Anleitungen und Tipps zu erhalten. Davon abgesehen können Sie den Blog jederzeit wieder besuchen. Wichtige Best Practices für die Erstellung von Eingabeaufforderungen bereits im ersten Beitrag dieser Reihe besprochen. Viel Glück!

Wenn Sie an Ihrem eigenen GenAI-Anwendungsfall arbeiten und Hilfe benötigen oder Feedback geben möchten, würden wir uns freuen, von Ihnen zu hören. Kontaktieren Sie Ihren Customer Success Manager oder senden Sie uns eine Nachricht im Kanal #genai-connectors im Mendix Gemeinschafts-Slack. Hier anmelden!

Weitere Ressourcen zum Ausprobieren: Eingabeaufforderung Bibliothek.

Wählen Sie Ihre Sprache