Übung: Schreiben Sie eigener Prompts
Für diese Übung erstellen Sie einen Prompt, der das große Sprachmodell (LLM) auffordert, eine Liste hilfreicher Ausdrücke in Französisch bereitzustellen. Sie können Ihren Code auch mit verschiedenen Sprachen Ihrer Wahl testen. Legen wir los.
Öffnen Sie das Visual Studio Code-Projekt, das Sie in der vorigen Übung erstellt haben.
Aktualisieren Sie die Datei „Program.cs“ mit dem folgenden Code:
using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Plugins.Core; var builder = Kernel.CreateBuilder(); builder..AddAzureOpenAIChatCompletion( "your-deployment-name", "your-endpoint", "your-api-key", "deployment-model"); var kernel = builder.Build(); string language = "French"; string prompt = @$"Create a list of helpful phrases and words in ${language} a traveler would find useful."; var result = await kernel.InvokePromptAsync(prompt); Console.WriteLine(result);
Führen Sie den Code aus, indem Sie
dotnet run
in den Terminal eingeben.Die Antwort sollte in etwa wie die folgende Ausgabe aussehen:
1. Bonjour - Hello 2. Merci - Thank you 3. Oui - Yes 4. Non - No 5. S'il vous plaît - Please 6. Excusez-moi - Excuse me 7. Parlez-vous anglais? - Do you speak English? 8. Je ne comprends pas - I don't understand 9. Pouvez-vous m'aider? - Can you help me? 10. Combien ça coûte? - How much does it cost? 11. Où est la gare? - Where is the train station?
Die Antwort stammt aus dem Azure OpenAI-Modell, das Sie an den Kernel übergeben haben. Das Semantic Kernel-SDK stellt eine Verbindung mit dem großen Sprachmodell (LLM) her und führt die Eingabeaufforderung aus. Sie können diesen Prompt verbessern, indem Sie spezifischere Anweisungen hinzufügen.
Aktualisieren Sie Ihren Prompt so, dass sie dem folgenden Text entspricht:
string prompt = @$"Create a list of helpful phrases and words in ${language} a traveler would find useful. Group phrases by category. Display the phrases in the following format: Hello - Ciao [chow]";
In dieser Eingabeaufforderung geben Sie dem LLM spezifische Anweisungen zum Formatieren der Antwort an. Wenn Sie den neuen Prompt ausführen, sollte eine detailliertere Antwort angezeigt werden, ähnlich wie die folgende Ausgabe:
Restaurant Phrases: - Water, please - De l'eau, s'il vous plaît [duh loh, seel voo pleh] - Check, please - L'addition, s'il vous plaît [lah-di-syo(n), seel voo pleh] - Bon appétit - Bon appétit [bohn ah-peh-teet] Transportation Phrases: - Where is the train station? - Où est la gare? [oo-eh lah gahr] - How do I get to...? - Comment aller à...? [ko-mahn tah-lay ah] - I need a taxi - J'ai besoin d'un taxi [zhay buh-zwan dunn tah-xee]
Sie können das LLM auch auffordern, eine bestimmte Kategorie von Ausdrücken einzuschließen und einige Hintergrundinformationen zu den Reisenden zu berücksichtigen. Probieren Sie es aus!
Aktualisieren Sie Ihren Prompt so, dass er dem folgenden Text entspricht:
string language = "French"; string history = @"I'm traveling with my kids and one of them has a peanut allergy."; string prompt = @$"Consider the traveler's background: ${history} Create a list of helpful phrases and words in ${language} a traveler would find useful. Group phrases by category. Include common direction words. Display the phrases in the following format: Hello - Ciao [chow]";
Jetzt kann das LLM die Informationen der Reisenden beim Generieren der Liste der Ausdrücke berücksichtigen. Außerdem wurden Anweisungen hinzugefügt, um allgemeine Richtungswörter einzuschließen.
Die Ausgabe sieht möglicherweise ähnlich wie die folgende Antwort aus:
Phrases for dealing with peanut allergy: My child has a peanut allergy - Mon enfant a une allergie aux arachides [mon on-fon ah oon ah-lair-zhee oh a-rah-sheed] Is there a peanut-free option available? - Y a-t-il une option sans arachide? [ee ah-teel une oh-pee-syon sahn ah-rah-sheed] Phrases for directions: Turn left - Tournez à gauche [toor-nay ah gohsh] Turn right - Tournez à droite [toor-nay ah dwaht]
In der nächsten Übung lernen Sie, dem LLM Personas zuzuweisen, um die Qualität der Antworten zu verbessern.
Wichtig
Achten Sie darauf, dass Sie den Code, den Sie bisher geschrieben haben, nicht löschen, denn Sie brauchen ihn für die nächste Übung.