Projektowanie promptów dla produkcyjnych aplikacji LLM
Projektowanie promptu systemowego, przykłady few-shot, formatowanie wyników, logika ponawiania prób, optymalizacja kosztów.
Projektowanie promptów dla produkcyjnych aplikacji LLM to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Tworzenie promptów w środowisku produkcyjnym
W rzeczywistych aplikacjach prompty są częścią kodu: wymagają struktury, testowania i niezawodności. Dobre projektowanie promptów ogranicza halucynacje, wymusza format wyników i pozwala kontrolować koszty. Ta lekcja obejmuje techniki, które mają znaczenie w środowisku produkcyjnym.
Projektowanie promptu systemowego
Prompt systemowy określa rolę modelu, ton wypowiedzi, ograniczenia i zasady. Należy podawać konkretne informacje: określić, czym jest asystent, co musi robić, czego nie wolno mu robić oraz w jakim formacie ma odpowiadać. Jasny prompt systemowy jest najsilniejszym narzędziem sterowania modelem.
system = (
"You are a support agent for an e-commerce store. "
"Answer only questions about orders and shipping. "
"If asked anything else, politely decline. "
"Keep replies under 3 sentences."
)Przykłady few-shot
Promptowanie few-shot polega na pokazaniu modelowi par przykładowych danych wejściowych i wyjściowych, aby nauczył się wzorca. Przykłady umieszcza się jako naprzemienne wiadomości użytkownika i asystenta przed właściwym żądaniem.
messages = [
{"role": "system", "content": system},
{"role": "user", "content": "Classify: I love this!"},
{"role": "assistant", "content": "positive"},
{"role": "user", "content": "Classify: This broke instantly."},
{"role": "assistant", "content": "negative"},
{"role": "user", "content": "Classify: It is okay I guess."}
]Dlaczego few-shot działa?
Przykłady precyzyjniej wyjaśniają intencję niż same instrukcje. Ustalają dokładny styl wyniku (jedno słowo, JSON lub etykieta) i znacząco poprawiają spójność w zadaniach klasyfikacji, ekstrakcji i formatowania.
Wymuszanie wyniku w formacie JSON
W przypadku odpowiedzi odczytywanych maszynowo należy zażądać trybu JSON za pomocą response_format. Przy użyciu {"type": "json_object"} model jest ograniczony do generowania poprawnego JSON-a, który można następnie bezpiecznie przeanalizować.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)Zliczanie tokenów za pomocą tiktoken
Koszt i limity kontekstu mierzy się w tokenach. Biblioteka tiktoken zlicza tokeny lokalnie, dzięki czemu można zaplanować budżet przed wysłaniem żądania. Instalacja odbywa się za pomocą polecenia pip install tiktoken.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))Dlaczego zliczanie tokenów ma znaczenie?
Każdy model ma okno kontekstu (maksymalną liczbę tokenów), a opłaty naliczane są za tokeny. Wcześniejsze zliczanie pozwala skrócić historię, odrzucać zbyt duże dane wejściowe i przewidywać koszt, zanim wywołanie opuści serwer.
def cost_estimate(text, price_per_1k=0.005):
enc = tiktoken.encoding_for_model("gpt-4o")
n = len(enc.encode(text))
return n, n / 1000 * price_per_1kObsługa limitów szybkości
Ruch produkcyjny napotyka limity szybkości (HTTP 429) i przejściowe błędy. Zamiast przerywać działanie programu, należy ponawiać próbę z wykładniczym zwiększaniem opóźnienia. Biblioteka tenacity pozwala osiągnąć to za pomocą dekoratora w jednym wierszu.
pip install tenacity
from tenacity import retry, wait_exponential, stop_after_attemptPonawianie prób za pomocą tenacity
Wywołanie API należy udekorować za pomocą @retry. Użycie wait_exponential powoduje zwiększanie opóźnienia między próbami, a stop_after_attempt ogranicza ich łączną liczbę. Dzięki temu program może łagodnie poradzić sobie z tymczasowymi awariami.
@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)Definiowanie JSON Schema dla wyniku
W przypadku wymuszania trybu JSON należy zawsze opisać w prompcie dokładną oczekiwaną strukturę, aby nazwy kluczy były przewidywalne. Określenie schematu zwykłym tekstem w połączeniu z trybem JSON zapewnia za każdym razem wyniki możliwe do przeanalizowania i zweryfikowania.
system = (
"Return ONLY JSON with this shape: "
"{\"sentiment\": \"positive|negative|neutral\", "
"\"confidence\": number between 0 and 1}"
)Połączenie wszystkiego
Potok promptów produkcyjnych obejmuje: zaprojektowanie ścisłego promptu systemowego, dodanie przykładów few-shot, wymuszenie wyniku w formacie JSON, gdy jest to potrzebne, zliczanie tokenów w celu zarządzania kosztem i kontekstem oraz opakowanie wywołań w logikę ponawiania prób. Razem techniki te zwiększają niezawodność funkcji opartych na LLM.
Szybki test
Sprawdź swoją wiedzę o tworzeniu promptów w środowisku produkcyjnym.
Podsumowanie: promptowanie w środowisku produkcyjnym
Nauczyli się Państwo tworzyć rygorystyczne prompty systemowe, sterować zachowaniem za pomocą przykładów few-shot oraz gwarantować ustrukturyzowane odpowiedzi dzięki trybowi JSON response_format. Zliczali Państwo tokeny za pomocą tiktoken, aby zarządzać kontekstem i kosztami, a także zwiększyli odporność aplikacji, dodając ponowienia z użyciem biblioteki tenacity na wypadek limitów szybkości.
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 53
- Lekcje
- 225
Często zadawane pytania
Czy lekcja „Projektowanie promptów dla produkcyjnych aplikacji LLM” jest bezpłatna?
Tak — pełny tekst „Projektowanie promptów dla produkcyjnych aplikacji LLM” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Projektowanie promptów dla produkcyjnych aplikacji LLM”?
Projektowanie promptu systemowego, przykłady few-shot, formatowanie wyników, logika ponawiania prób, optymalizacja kosztów. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Projektowanie promptów dla produkcyjnych aplikacji LLM”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- OpenAI API: chat.completions i przesyłanie strumieniowe
- Anthropic Claude API w Pythonie
- Wywoływanie funkcji i używanie narzędzi z LLM
- Projektowanie promptów dla produkcyjnych aplikacji LLM