Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule zapoznasz się z podstawowymi pojęciami dotyczącymi inżynierii promptów. Wiele modeli sztucznej inteligencji jest opartych na monitach, co oznacza, że reagują na tekst wejściowy użytkownika ( monit) z odpowiedzią wygenerowaną przez algorytmy predykcyjne ( ukończenie). Nowsze modele często obsługują również uzupełnianie w formularzu czatu z wiadomościami opartymi na rolach (system, użytkownik, asystent) i historii czatów w celu zachowania konwersacji.
Praca z podpowiedziami
Modele, które obsługują aplikacje oparte na czacie, używają trzech ról do organizowania uzupełniania: roli systemu kontrolującej czat, rolę użytkownika reprezentującą dane wejściowe użytkownika i rolę asystenta w zakresie reagowania na użytkowników. Podziel polecenia na komunikaty dla każdej roli.
- Komunikaty systemowe zawierają instrukcje dotyczące asystenta. Monit może zawierać tylko jeden komunikat systemowy i musi być pierwszym komunikatem.
- Komunikaty użytkownika zawierają monity od użytkownika, przykłady lub instrukcje dotyczące asystenta. Przykładowe ukończenie czatu musi zawierać co najmniej jedną wiadomość użytkownika.
- Komunikaty asystenta pokazują przykładowe lub historyczne zakończenia i muszą zawierać odpowiedź na poprzedni komunikat użytkownika. Komunikaty asystenta nie są wymagane, ale jeśli ją dołączysz, musi być sparowana z komunikatem użytkownika, aby utworzyć przykład.
Użyj instrukcji, aby poprawić ukończenie
Instrukcja to tekst, który informuje model o sposobie reagowania. Instrukcja może być dyrektywą lub imperatywem:
- Dyrektywy mówią modelowi, jak zachowywać się, ale nie są prostymi poleceniami — pomyśl o konfiguracji postaci dla aktora improwizatora: "Pomagasz uczniom dowiedzieć się o historii USA, więc mówić o USA, chyba że konkretnie pytają o inne kraje lub regiony".
- Imperatywami są jednoznaczne polecenia, aby model je stosował. "Przetłumacz na tagalog:"
Używanie przykładów do kierowania modelem
Przykładem jest tekst pokazujący, jak reagować model, dostarczając przykładowe dane wejściowe użytkownika i dane wyjściowe modelu. Model używa przykładów, aby wywnioskować, co należy uwzględnić w ukończeniach. Przykłady mogą pojawić się albo przed instrukcjami, albo po instrukcjach w opracowanym monicie, ale te dwa elementy nie powinny być przeplatane.
Przykład rozpoczyna się od zachęty i może opcjonalnie zawierać uzupełnienie. Przykład zakończenia nie musi zawierać dosłownej odpowiedzi — może obejmować tylko ułożone słowo, pierwszy punkt na liście wypunktowanej lub coś podobnego, aby wskazać, jak każde zakończenie powinno się rozpocząć.
Klasyfikuj przykłady jako uczenie zero-shot lub uczenie z niewielką ilością danych na podstawie tego, czy zawierają dosłowne ukończenia.
- Przykłady uczenia zero-shot obejmują przypadki poleceń bez dosłownego ukończenia. Takie podejście sprawdza odpowiedzi modelu bez podawania przykładowych danych wyjściowych. Podpowiedzi zero-shot mogą zawierać uzupełnienia, które zawierają sygnały, takie jak wskazanie, że model powinien wyświetlić uporządkowaną listę, uwzględniając "1". jako część uzupełnienia.
- Przykłady uczenia z niewielką liczbą przykładów obejmują kilka par zaczątków z dosłownymi zakończeniami. Uczenie przy małej liczbie przykładów może zmienić zachowanie modelu, dodając do jego istniejącej wiedzy.
Wskazówki
Wskazówka to tekst, który przekazuje żądaną strukturę lub format danych wyjściowych. Podobnie jak instrukcja, sygnał nie jest przetwarzany przez model tak, jakby był to dane wejściowe użytkownika. Jak przykład, wskazówka pokazuje model, co chcesz, zamiast mówić mu, co ma zrobić. Dodaj dowolną liczbę wskazówek, aby dążyć do żądanego wyniku. Użyj wskazówek z instrukcją lub przykładem i umieść je na końcu monitu.
Przykładowy monit przy użyciu platformy .NET
Platforma .NET udostępnia różne narzędzia do monitowania i rozmowy z różnymi modelami sztucznej inteligencji. Użyj struktury agentów , aby nawiązać połączenie z wieloma różnymi modelami i usługami sztucznej inteligencji. Agent Framework zawiera narzędzia do tworzenia agentów z instrukcjami systemowymi i utrzymania stanu rozmowy w wielu etapach.
Rozważmy następujący przykład kodu:
using Azure;
using Azure.AI.OpenAI;
using Microsoft.Agents.AI;
using OpenAI.Chat;
string endpoint = "https://<your-endpoint>.openai.azure.com/";
string apiKey = "<your-api-key>";
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureKeyCredential(apiKey))
.GetChatClient("gpt-4o")
.AsAIAgent();
// Create a session to maintain conversation state.
AgentSession session = await agent.CreateSessionAsync();
while (true)
{
// Get user prompt.
Console.WriteLine("Your prompt:");
string? userInput = Console.ReadLine();
if (string.IsNullOrWhiteSpace(userInput))
break;
// Send prompt to agent and stream response.
Console.WriteLine("AI response:");
await foreach (AgentResponseUpdate update in agent.RunStreamingAsync(userInput, session))
{
Console.Write(update.Text);
}
Console.WriteLine();
}
Poprzedni kod:
- Tworzy klienta usługi Azure OpenAI z użyciem punktu końcowego i klucza API.
- Pobiera klienta czatu dla modelu GPT-4o i konwertuje go na agenta sztucznej inteligencji.
- Tworzy sesję agenta w celu utrzymania stanu konwersacji na wielu etapach dialogowych.
- Akceptuje dane wejściowe użytkownika w pętli, aby umożliwić korzystanie z różnych typów monitów.
- Asynchronicznie przesyła strumieniowo odpowiedź sztucznej inteligencji i wyświetla ją w konsoli.