Dostarczanie informacji kontekstowych
Dowiedz się, kiedy i jak uwzględniać wiedzę dziedzinową, ograniczenia i szczegóły projektu.
Dostarczanie informacji kontekstowych to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 2 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.
Dlaczego informacje wprowadzające mają znaczenie
Informacje wprowadzające dostarczają modelowi faktów, których nie może znać samodzielnie: szczegółów Państwa projektu, ograniczeń zespołu, dotychczasowej pracy oraz oczekiwań interesariuszy.
Bez informacji wprowadzających model generuje treści dla wyobrażonej, typowej sytuacji. Z nimi generuje treści dla Państwa sytuacji.
Kiedy uwzględniać wiedzę domenową
Wiedzę domenową należy uwzględnić w promptcie, gdy:
- Temat ma wiele interpretacji w różnych branżach
- Pracują Państwo ze specjalistyczną terminologią
- Poprawna odpowiedź zależy od norm lub regulacji właściwych dla danej domeny
- Model może udzielić ogólnej odpowiedzi, podczas gdy potrzebna jest odpowiedź dotycząca konkretnej dziedziny
Nie należy wklejać całych podręczników — wystarczy podsumować 2–3 fakty domenowe najbardziej istotne dla konkretnego pytania.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
domain_knowledge = (
'Domain: algorithmic trading at a regulated broker-dealer in the US. '
'Relevant rules: SEC Rule 15c3-5 (Market Access Rule) requires pre-trade risk checks. '
'Latency budget: all risk checks must complete in under 100 microseconds. '
'Stack: C++ for the matching engine, Python for strategy logic.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
f'{domain_knowledge}\n\n'
f'Question: How should we implement position limit checks for our order router?'
)
}]
)
print(response.content[0].text)Uwzględnianie szczegółów projektu
Szczegóły projektu informują model o konkretnym kontekście Państwa pracy. Niezbędne szczegóły projektu obejmują:
- Czym jest projekt i na jakim jest obecnie etapie (MVP / skalowanie / dojrzały produkt)
- Stos technologiczny i architekturę
- Rozmiar zespołu i poziom umiejętności jego członków
- Harmonogram i presję związaną z terminami
- Niedawne zmiany lub zdarzenia wpływające na pytanie
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
project_context = (
'Project: a mobile recipe app (React Native, Node.js backend, MongoDB). '
'Stage: pre-launch, 2 weeks to go live. '
'Team: 2 frontend devs, 1 backend dev, no dedicated QA. '
'Current issue: app search is slow (3-5 seconds) with 50,000 recipes in the DB. '
'Constraint: no time for a full re-architecture before launch.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
f'{project_context}\n\n'
f'Suggest 3 quick wins to improve search speed before launch. '
f'Each suggestion: what to do (1 sentence), estimated effort (hours), '
f'expected improvement.'
)
}]
)
print(response.choices[0].message.content)Udostępnianie dotychczasowej pracy
Udostępnienie dotychczasowej pracy pozwala modelowi bazować na tym, co już Państwo zrobili, zamiast zaczynać od zera. Dotychczasową pracę należy uwzględnić, gdy potrzebują Państwo:
- Kontynuacji lub rozwinięcia dokumentu albo kodu
- Krytyki i sugestii ulepszeń
- Dopasowania stylu (dopasowania tonu i formatu do istniejącej treści)
- Sprawdzenia spójności (czy nowy element pasuje do istniejącej struktury?)
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
existing_intro = (
'At Northlight Labs, we build AI tools that work the way humans think — '
'not the other way around. Founded in 2022 by two ex-Google researchers, '
'we have helped 500 companies ship smarter products without hiring ML teams.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{
'role': 'user',
'content': (
'Here is our existing company intro paragraph:\n\n'
f'{existing_intro}\n\n'
'Write a second paragraph (matching this exact tone and style) '
'that describes our flagship product: an API that lets developers '
'add natural language search to any database with 3 lines of code. '
'Keep it under 60 words.'
)
}]
)
print(response.content[0].text)Opisywanie ograniczeń z wyprzedzeniem
Ograniczenia to zasady, w ramach których model musi działać. Określenie ich z wyprzedzeniem zapobiega proponowaniu całkowicie poprawnych pomysłów, które w Państwa sytuacji okazują się niemożliwe do zastosowania.
Rodzaje ograniczeń, które warto uwzględnić:
- Techniczne: „Python 3.11, bez bibliotek innych firm”
- Budżetowe: „0 USD — tylko rozwiązania open source”
- Czasowe: „Musi zostać wykonane w ramach 2-godzinnego sprintu”
- Regulacyjne: „W logach nie wolno umieszczać danych pozwalających na identyfikację osoby”
- Organizacyjne: „Nie można zmienić schematu bazy danych”
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'We need to add rate limiting to our REST API.\n\n'
'Constraints:\n'
'- Python 3.11 FastAPI application\n'
'- No external dependencies beyond what is already installed (requests, pydantic, uvicorn)\n'
'- Must work as a single process (no Redis, no shared state between workers)\n'
'- Rate limit: 100 requests per minute per IP address\n'
'- If limit exceeded, return HTTP 429 with Retry-After header\n\n'
'Show me a complete implementation.'
)
}]
)
print(response.choices[0].message.content)Informacje o interesariuszach
Informacje o interesariuszach informują model, kto jeszcze ma znaczenie w Państwa sytuacji. Interesariusze wpływają na to, jakie ryzyka należy podkreślić, jakimi zastrzeżeniami się zająć oraz jak definiowany jest sukces.
- „Wśród moich odbiorców jest dyrektor finansowy, który sceptycznie podchodzi do inwestycji w AI”
- „Przed publikacją treść zostanie sprawdzona przez nasz dział prawny”
- „Użytkownik końcowy ma potrzeby związane z dostępnością — treść musi być zgodna z czytnikami ekranu”
- „Nasz CTO preferuje proste rozwiązania zamiast sprytnych”
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
stakeholder_context = (
'This proposal will be reviewed by:\n'
'1. CTO: cares about technical risk and maintainability, skeptical of microservices\n'
'2. CFO: cares about cost, wants to see clear ROI numbers\n'
'3. VP Engineering: cares about developer experience and team morale\n'
'The CTO has veto power.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
f'{stakeholder_context}\n\n'
f'Write a 3-paragraph executive summary for a proposal to migrate '
f'our monolith to a modular monolith (not microservices). '
f'Address each stakeholder\'s top concern in a separate paragraph.'
)
}]
)
print(response.content[0].text)Metoda chronologiczna
W złożonych sytuacjach metoda chronologiczna porządkuje informacje wprowadzające w formie osi czasu wydarzeń. Pomaga to modelowi zrozumieć związki przyczynowe i obecny stan sytuacji.
Format:
- Jaki był wcześniejszy stan sytuacji
- Co się zmieniło lub wydarzyło
- Jaki jest obecny stan sytuacji
- W czym potrzebują Państwo pomocy, biorąc pod uwagę tę sekwencję zdarzeń
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
chronological_background = (
'Timeline:\n'
'- 6 months ago: We launched v1 of our API with a flat pricing model ($99/month).\n'
'- 3 months ago: Power users (top 10%) started consuming 80% of compute.\n'
'- 1 month ago: We introduced usage-based pricing — power users complained loudly.\n'
'- Current: 12% of power users have churned; new signups are up 15%.\n'
'- Goal: Keep power users without losing the new-signup growth.\n'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
f'{chronological_background}\n\n'
f'Suggest 3 pricing model adjustments that could address both groups. '
f'For each: describe the change, who it benefits, and the revenue risk.'
)
}]
)
print(response.choices[0].message.content)Wykorzystywanie własnych danych jako informacji wprowadzających
Jednym z najpotężniejszych zastosowań informacji wprowadzających jest umieszczenie własnych danych — wskaźników, logów, wyników lub badań — bezpośrednio w promptcie, aby model mógł rozumować na podstawie konkretnych liczb.
Dane należy zawsze wklejać w czystym i czytelnym formacie. Najlepiej sprawdzają się tabele i uporządkowane listy. Surowe zrzuty tekstu są trudniejsze do przeanalizowania przez model.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
metrics_data = (
'Weekly active users (WAU) last 8 weeks:\n'
'Week 1: 1,200 | Week 2: 1,350 | Week 3: 1,290 | Week 4: 1,400\n'
'Week 5: 1,380 | Week 6: 1,220 | Week 7: 1,100 | Week 8: 980\n'
'Note: We launched a pricing change in Week 5.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
f'{metrics_data}\n\n'
f'Analyze the trend, identify where decline began, '
f'and suggest 2 hypotheses for the cause. '
f'Be specific — reference the exact weeks in your analysis.'
)
}]
)
print(response.content[0].text)Czego NIE uwzględniać w informacjach wprowadzających
Informacje wprowadzające mają swoją cenę: zużycie tokenów. Należy uwzględniać tylko to, co bezpośrednio wpływa na odpowiedź.
Informacje wprowadzające, które zazwyczaj nie są potrzebne:
- Historia założenia firmy (chyba że znaczenie ma głos marki)
- Struktura organizacyjna zespołu (chyba że znaczenie ma zakres uprawnień decyzyjnych)
- Kontekst historyczny starszy niż okres, którego dotyczy decyzja
- Technologie, których Państwo NIE używają
- Problemy już rozwiązane, które nie mają związku z bieżącym pytaniem
W razie wątpliwości: należy uwzględnić daną informację raz, sprawdzić, czy wynik się poprawił, a następnie usunąć ją przy kolejnych próbach.
# Contrast: bloated vs lean background
bloated_background = (
'Our company was founded in 2018 by Alice and Bob. '
'We have 45 employees across 3 offices. We use Jira for project management. '
'We had a product refresh in 2020. Our CTO came from Amazon. '
'We use Slack, Notion, and Linear. '
'We once tried Kubernetes but moved back to Docker Compose. '
'Question: How should we handle database connection pooling in FastAPI?'
)
lean_background = (
'Stack: FastAPI, PostgreSQL, deployed on a single 8-core server. '
'Load: ~200 concurrent users peak. '
'Current issue: seeing "too many connections" errors under load. '
'Question: How should we handle database connection pooling?'
)
print('Bloated background:', len(bloated_background.split()), 'words')
print('Lean background:', len(lean_background.split()), 'words')
print('Reduction:', round((1 - len(lean_background.split())/len(bloated_background.split()))*100), '%')Formatowanie informacji wprowadzających dla czytelności
Sposób formatowania informacji wprowadzających wpływa na to, jak dobrze model je przetwarza. Najlepsze praktyki:
- Należy używać oznaczonych sekcji:
Stack:,Constraints:,Goal: - Dla równorzędnych elementów należy używać list punktowanych
- Najważniejsze informacje należy umieszczać na początku
- Informacje wprowadzające należy oddzielać od zadania pustym wierszem lub wyraźnym znacznikiem
- Należy używać spójnej terminologii — nie należy określać tej samej rzeczy dwiema nazwami
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Well-formatted background
formatted_background = (
'=== BACKGROUND ===\n'
'Project: real-time chat API\n'
'Stack: Python FastAPI, WebSockets, Redis pub/sub, PostgreSQL\n'
'Scale: 10,000 concurrent connections target\n'
'Constraints: single server for now, no Kubernetes\n'
'Current problem: messages are occasionally delivered out of order\n'
'=== TASK ===\n'
'Explain the root cause of out-of-order message delivery in WebSocket pub/sub '
'and suggest the simplest fix for our stack.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': formatted_background}]
)
print(response.choices[0].message.content)Ponownie wykorzystywane informacje wprowadzające w komunikacie systemowym
Jeśli budują Państwo aplikację opartą na AI i te same informacje wprowadzające dotyczą wszystkich rozmów, należy umieścić je w komunikacie systemowym, zamiast powtarzać je w każdej wiadomości użytkownika.
Jest to wydajniejsze i zapewnia spójny kontekst we wszystkich interakcjach, bez konieczności ponownego wpisywania tych informacji przez użytkownika.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# System message carries reusable background for every user turn
system_background = (
'You are an AI assistant embedded in Northlight Labs\' internal developer portal. '
'Background: our stack is Python 3.11, FastAPI, PostgreSQL 15, Redis 7, Docker. '
'We follow Google Python style guide. All code examples must include type hints. '
'We do not use ORM — raw SQL with psycopg3. '
'Our API follows REST conventions with snake_case JSON fields.'
)
# Now every user turn gets this background automatically
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
system=system_background,
messages=[
{'role': 'user', 'content': 'Show me how to insert a row into the users table.'}
]
)
print(response.content[0].text)Sprawdzenie wiedzy
Menedżer produktu chce uzyskać pomoc AI przy napisaniu wiadomości e-mail z ogłoszeniem nowej funkcji. Uwzględnia rok założenia firmy, liczbę pracowników, lokalizacje biur, a następnie samo zadanie. Jakiego rodzaju informacji wprowadzających brakuje, aby najbardziej poprawić wynik?
Dostarczanie informacji wprowadzających — podsumowanie
Dobre informacje wprowadzające decydują o tym, czy otrzymają Państwo ogólną poradę, czy poradę rzeczywiście dopasowaną do swojej sytuacji. Najważniejsze zasady:
- Należy uwzględniać wiedzę domenową, która wpływa na poprawną odpowiedź w danej dziedzinie
- Należy udostępniać szczegóły projektu: stos technologiczny, etap, rozmiar zespołu i niedawne zmiany
- Należy uwzględniać dotychczasową pracę, gdy potrzebna jest kontynuacja lub dopasowanie stylu
- Należy określać ograniczenia z wyprzedzeniem, aby zapobiec bezużytecznym sugestiom
- Należy uwzględniać informacje o interesariuszach, aby model odniósł się do właściwych kwestii
- W przypadku złożonego kontekstu sytuacyjnego należy korzystać z metody chronologicznej
- Informacje wprowadzające powinny być zwięzłe — należy uwzględniać tylko to, co wpływa na odpowiedź
Często zadawane pytania
Czy lekcja „Dostarczanie informacji kontekstowych” jest bezpłatna?
Tak — pełny tekst „Dostarczanie informacji kontekstowych” 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 „Dostarczanie informacji kontekstowych”?
Dowiedz się, kiedy i jak uwzględniać wiedzę dziedzinową, ograniczenia i szczegóły projektu. Ć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 2 z 4.
Ile czasu zajmuje lekcja „Dostarczanie informacji kontekstowych”?
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
- Znaczenie kontekstu w promptowaniu AI
- Dostarczanie informacji kontekstowych
- Skuteczne określanie kontekstu
- Długość kontekstu i jego istotność