0Pricing
AI Prompt Engineering · Lekcja

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

  1. Znaczenie kontekstu w promptowaniu AI
  2. Dostarczanie informacji kontekstowych
  3. Skuteczne określanie kontekstu
  4. Długość kontekstu i jego istotność
← Powrót do AI Prompt Engineering