Learn AI with Python · Lekcja

Projektowanie promptów dla produkcyjnych aplikacji LLM

Projektowanie promptu systemowego, przykłady few-shot, formatowanie wyników, logika ponawiania prób, optymalizacja kosztów.

Lekcja 4 z 413 kroki

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_1k

Obsł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_attempt

Ponawianie 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.

Bezpłatny start

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

  1. OpenAI API: chat.completions i przesyłanie strumieniowe
  2. Anthropic Claude API w Pythonie
  3. Wywoływanie funkcji i używanie narzędzi z LLM
  4. Projektowanie promptów dla produkcyjnych aplikacji LLM
← Powrót do Learn AI with Python