Wprowadzenie do frameworka DSPy
Dlaczego DSPy zastępuje ręcznie pisane prompty deklaratywnymi sygnaturami.
Wprowadzenie do frameworka DSPy to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 1 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 AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Kruchość ręcznie pisanych promptów
Prompty tworzone ręcznie są kruche. Zmiana jednego słowa może radykalnie zmienić zachowanie modelu, a rozwiązanie działające z GPT-4 często nie działa z Claude ani Gemini.
Inżynierowie promptów spędzają wiele godzin na dopracowywaniu sformułowań, by odkryć, że wprowadzone zmiany nie sprawdzają się w różnych zbiorach danych ani wersjach modeli. Ta kruchość jest głównym problemem, który rozwiązuje DSPy.
Czym jest DSPy
DSPy (Declarative Self-improving Python) to framework ze Stanford, który traktuje tworzenie promptów jako problem kompilacji, a nie rzemiosło.
Zamiast pisać: "Think step by step and answer the following question...", deklarują Państwo co chcą uzyskać (sygnaturę), a DSPy ustala, jak sformułować prompt, aby model osiągnął ten cel.
Instalowanie DSPy
DSPy jest dostępne w PyPI. Aby rozpocząć pracę, należy je zainstalować i skonfigurować backend modelu językowego.
pip install dspy-ai
# Basic setup in Python
import dspy
# Configure the language model
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)
print('DSPy configured successfully')Główna idea: oddzielenie logiki od promptowania
W tradycyjnym promptowaniu logika programu i tekst promptu są ze sobą ściśle powiązane. Jeśli chcą Państwo zmienić sposób rozumowania modelu, muszą Państwo przepisać tekst promptu.
DSPy rozdziela te kwestie: piszą Państwo logikę w języku Python, korzystając z modułów, a DSPy automatycznie generuje i optymalizuje właściwy tekst promptu podczas etapu kompilacji.
Sygnatury: deklarowanie intencji
Sygnatura w DSPy to typowana deklaracja wejść i wyjść. Określa co ma zostać zrobione, a nie jak.
DSPy wykorzystuje sygnaturę do skonstruowania odpowiedniego promptu w czasie kompilacji — nie muszą Państwo zajmować się inżynierią promptów.
import dspy
# Declare: given a question, produce an answer
class SimpleQA(dspy.Signature):
"""Answer questions with short factual responses."""
question: str = dspy.InputField()
answer: str = dspy.OutputField(desc='A concise factual answer')
# DSPy turns this declaration into a real prompt automatically
print(SimpleQA.__doc__)Moduły: łączone bloki rozumowania
DSPy udostępnia moduły implementujące typowe wzorce rozumowania. Korzystają Państwo z nich podobnie jak z warstw PyTorch — łączą je Państwo w większe programy.
dspy.Predict— bezpośrednie przewidywaniedspy.ChainOfThought— dodaje kroki rozumowaniadspy.ReAct— rozumowanie i używanie narzędzi
import dspy
class SimpleQA(dspy.Signature):
"""Answer questions with short factual responses."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
# Three different module strategies for the same signature
predict_module = dspy.Predict(SimpleQA)
cot_module = dspy.ChainOfThought(SimpleQA)
# Call just like a function
result = predict_module(question='What is the capital of France?')
print(result.answer)Na czym polega kompilacja
Kompilacja to proces, w którym DSPy optymalizuje prompty programu na podstawie zbioru treningowego i funkcji metryki.
Przed kompilacją DSPy używa podstawowego promptu domyślnego. Po kompilacji DSPy znajduje przykłady few-shot, lepsze instrukcje lub demonstracje chain-of-thought, które maksymalizują wartość metryki. Zoptymalizowane prompty są zapisywane i ponownie wykorzystywane podczas inferencji.
Minimalny program w DSPy
Oto kompletny, minimalny program w DSPy: sygnatura, moduł i wywołanie. Nigdzie nie zapisano tekstu promptu.
import dspy
# 1. Configure LM
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)
# 2. Define signature
class Summarize(dspy.Signature):
"""Summarize text into one sentence."""
text: str = dspy.InputField()
summary: str = dspy.OutputField()
# 3. Create module
summarizer = dspy.Predict(Summarize)
# 4. Use it
result = summarizer(text='DSPy is a framework for programming language models.')
print(result.summary)DSPy a tradycyjna inżynieria promptów
Najważniejsza różnica w podejściu:
- Tradycyjne: piszą Państwo tekst promptu → model go wykonuje → ręcznie modyfikują Państwo tekst
- DSPy: piszą Państwo logikę w Pythonie → optymalizator znajduje najlepszy tekst promptu → model wykonuje zoptymalizowany prompt
DSPy traktuje prompty jako szczegóły implementacji, którymi powinien zajmować się kompilator — podobnie jak kompilator przekształca kod Pythonu w kod bajtowy.
Kiedy warto użyć DSPy
DSPy sprawdza się szczególnie wtedy, gdy mają Państwo:
- jasną metrykę do optymalizacji (dokładność, F1, ocena użytkownika)
- zbiór treningowy zawierający przykłady (wystarczy nawet 20–50)
- potok z wieloma krokami rozumowania, które wzajemnie na siebie wpływają
W przypadku pojedynczych, prostych promptów narzut związany z DSPy nie jest wart poniesionego kosztu. W produkcyjnych potokach LLM z mierzalnymi celami DSPy może całkowicie zmienić sposób pracy.
Przegląd ekosystemu DSPy
DSPy to nie tylko opakowanie API — to kompletny ekosystem:
- Sygnatury: deklarowanie wejść i wyjść
- Moduły: strategie rozumowania
- Optymalizatory: BootstrapFewShot, MIPRO, COPRO
- Evaluate: wbudowany mechanizm ewaluacji
- Assertions: deklaratywne ograniczanie wyjść
W kolejnych lekcjach tego kursu poznają Państwo każdy z tych elementów.
Sprawdzenie wiedzy: główna koncepcja DSPy
Jaka jest podstawowa różnica między DSPy a ręcznym pisaniem promptów?
Podsumowanie: podstawy frameworka DSPy
DSPy rozwiązuje problem kruchości ręcznie pisanych promptów, traktując promptowanie jako problem kompilacji. Piszą Państwo sygnatury (typowane deklaracje wejść i wyjść) i łączą je z modułami, takimi jak Predict i ChainOfThought. Następnie optymalizator automatycznie znajduje najlepszy tekst promptu, korzystając z danych treningowych i metryki. W rezultacie otrzymują Państwo przenośny, testowalny i automatycznie ulepszany potok promptów — bez ręcznej inżynierii promptów.
Często zadawane pytania
Czy lekcja „Wprowadzenie do frameworka DSPy” jest bezpłatna?
Tak — pełny tekst „Wprowadzenie do frameworka DSPy” 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 AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Co nauczysz się w „Wprowadzenie do frameworka DSPy”?
Dlaczego DSPy zastępuje ręcznie pisane prompty deklaratywnymi sygnaturami. Ćwiczysz AI Prompt Engineering 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ąć AI Prompt Engineering?
Nie wymagamy żadnego doświadczenia. AI Prompt Engineering 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 1 z 4.
Ile czasu zajmuje lekcja „Wprowadzenie do frameworka DSPy”?
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 AI Prompt Engineering?
Tak. Każda lekcja AI Prompt Engineering 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
- Wprowadzenie do frameworka DSPy
- Definiowanie sygnatur i modułów
- Kompilowanie i optymalizowanie promptów
- Ewaluacja potoków DSPy