Fornire informazioni di base
Quando e come includere conoscenze del dominio, vincoli e dettagli del progetto
Fornire informazioni di base è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.
Perché le informazioni di base sono importanti
Le informazioni di base forniscono al modello i fatti che non può conoscere autonomamente: i dettagli specifici del Suo progetto, i vincoli del Suo team, il lavoro già svolto e le aspettative dei Suoi stakeholder.
Senza informazioni di base, il modello genera contenuti per una situazione generica e immaginaria. Con le informazioni di base, genera contenuti per la Sua situazione.
Quando includere le conoscenze di dominio
Includa le conoscenze di dominio nel prompt quando:
- L'argomento può essere interpretato in modi diversi a seconda del settore
- Sta lavorando con una terminologia specialistica
- La risposta corretta dipende da norme o regolamenti specifici del dominio
- Il modello potrebbe fornire una risposta generale quando Lei ne ha bisogno di una specifica del settore
Non incolli interi manuali: riassuma i 2-3 fatti di dominio più pertinenti alla Sua domanda specifica.
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)Includere i dettagli del progetto
I dettagli del progetto indicano al modello il contesto specifico del Suo lavoro. I dettagli essenziali del progetto includono:
- Che cos'è il progetto e in quale fase si trova attualmente (MVP / scaling / maturo)
- Lo stack tecnologico e l'architettura
- Le dimensioni del team e i livelli di competenza
- Le tempistiche e la pressione delle scadenze
- I cambiamenti o gli eventi recenti che influenzano la domanda
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)Condividere il lavoro già svolto
Condividere il lavoro già svolto consente al modello di basarsi su ciò che ha già fatto invece di partire da zero. Includa il lavoro esistente quando desidera:
- Proseguire o ampliare un documento o del codice
- Ricevere una critica e suggerimenti per migliorare
- Uniformare lo stile (mantenere il tono e il formato del materiale esistente)
- Verificare la coerenza (il nuovo elemento si inserisce nella struttura esistente?)
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)Descrivere subito i vincoli
I vincoli sono le regole entro cui il modello deve operare. Dichiararli subito impedisce al modello di suggerire idee perfettamente valide, ma impossibili nella Sua situazione.
Tipi di vincoli da includere:
- Tecnici: «Python 3.11, nessuna libreria di terze parti»
- Di budget: «0 $ — solo open source»
- Temporali: «Deve essere completato in uno sprint di 2 ore»
- Normativi: «Nessuna informazione personale identificabile nei log»
- Organizzativi: «Non è possibile modificare lo schema del database»
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)Informazioni sugli stakeholder
Le informazioni sugli stakeholder indicano al modello chi altro conta nella Sua situazione. Gli stakeholder determinano quali rischi evidenziare, quali obiezioni affrontare e in cosa consiste il successo.
- «Il mio pubblico include il CFO, che è scettico sugli investimenti nell'IA»
- «Il testo sarà esaminato dal nostro ufficio legale prima della pubblicazione»
- «L'utente finale ha esigenze di accessibilità: compatibile con gli screen reader»
- «Il nostro CTO preferisce soluzioni semplici a soluzioni ingegnose»
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)Il metodo cronologico
Per le situazioni complesse, il metodo cronologico organizza le informazioni di base come una sequenza temporale di eventi. Questo aiuta il modello a comprendere il rapporto di causa-effetto e lo stato attuale.
Formato:
- Qual era la situazione iniziale
- Che cosa è cambiato o è successo
- Qual è lo stato attuale
- Per che cosa ha bisogno di aiuto, alla luce di questa sequenza
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)Usare i propri dati come informazioni di base
Uno degli usi più potenti delle informazioni di base consiste nell'inserire direttamente nel prompt i propri dati — metriche, log, output o ricerche — affinché il modello possa ragionare sui numeri specifici della Sua situazione.
Incolli sempre i dati in un formato chiaro e leggibile. Tabelle ed elenchi strutturati funzionano meglio. I dump di testo grezzo sono più difficili da analizzare per il modello.
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)Cosa NON includere nelle informazioni di base
Le informazioni di base hanno un costo: l'utilizzo di token. Includa solo ciò che influenza direttamente la risposta.
Informazioni di base generalmente non necessarie:
- La storia della fondazione dell'azienda (a meno che non sia importante la voce del brand)
- L'organigramma del team (a meno che non sia importante l'autorità decisionale)
- Il contesto storico precedente all'intervallo temporale della decisione
- Le tecnologie che NON sta utilizzando
- I problemi già risolti e non pertinenti alla domanda attuale
In caso di dubbio: includa l'informazione una volta, verifichi se l'output migliora, poi la elimini nelle esecuzioni successive.
# 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), '%')Formattare le informazioni di base per facilitarne la lettura
Il modo in cui formatta le informazioni di base influisce sulla capacità del modello di elaborarle. Buone pratiche:
- Utilizzi sezioni con etichette:
Stack:,Constraints:,Goal: - Utilizzi elenchi puntati per gli elementi sullo stesso piano
- Inserisca per prime le informazioni più importanti
- Separi le informazioni di base dall'attività con una riga vuota o un indicatore chiaro
- Utilizzi una terminologia coerente: non chiami la stessa cosa con due nomi diversi
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)Informazioni di base riutilizzabili nel messaggio di sistema
Se sta sviluppando un'applicazione basata sull'IA e lo stesso contesto di base si applica a tutte le conversazioni, lo inserisca nel messaggio di sistema invece di ripeterlo in ogni turno dell'utente.
Questa soluzione è più efficiente e garantisce un contesto coerente in tutte le interazioni senza che l'utente debba ripeterlo.
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)Verifica delle conoscenze
Un product manager desidera l'aiuto dell'IA per scrivere un'e-mail di annuncio di una funzionalità. Include l'anno di fondazione dell'azienda, il numero di dipendenti, le sedi degli uffici e poi l'attività. Quale tipo di informazioni di base manca e migliorerebbe maggiormente l'output?
Fornire informazioni di base — riepilogo
Le buone informazioni di base fanno la differenza tra consigli generici e consigli realmente adatti alla Sua situazione. Principi fondamentali:
- Includa le conoscenze di dominio che influenzano la risposta corretta per il Suo settore
- Condivida i dettagli del progetto: stack, fase, dimensioni del team, cambiamenti recenti
- Includa il lavoro già svolto quando ha bisogno di proseguire un'attività o uniformare lo stile
- Dichiari subito i vincoli per evitare suggerimenti inutili
- Includa le informazioni sugli stakeholder affinché il modello affronti le questioni giuste
- Utilizzi il metodo cronologico per il contesto situazionale complesso
- Mantenga le informazioni di base essenziali: includa solo ciò che influisce sulla risposta
Domande Frequenti
La lezione «Fornire informazioni di base» è gratuita?
Sì — il testo completo di «Fornire informazioni di base» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.
Cosa imparerò in «Fornire informazioni di base»?
Quando e come includere conoscenze del dominio, vincoli e dettagli del progetto Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Fornire informazioni di base»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cosa significa contesto nei prompt per l'IA
- Fornire informazioni di base
- Impostare efficacemente lo scenario
- Lunghezza e rilevanza del contesto