Tehokas promptaus ja mallien valinta
AI-koodaustyökalut ovat yhtä hyviä kuin promptit, joilla niitä ohjataan. Tässä oppitunnissa opit muotoilemaan tehokkaita prompteja ohjelmistokehitykseen ja valitsemaan oikean mallin kuhunkin tehtävään.
Promptauksen perusteet kehittäjille
Kehittäjille promptaus eroaa yleiskäytöstä: konteksti on teknistä, tuloksen pitää olla täsmällistä, ja laadun voi usein verifioida automaattisesti (testit, tyyppitarkistus, lint).
Konteksti-ikkuna
Konteksti-ikkuna (context window) on LLM:n "työmuisti" — kuinka paljon tekstiä malli pystyy käsittelemään kerrallaan. Suurempi ikkuna mahdollistaa laajemman koodikannan ymmärtämisen, mutta nostaa kustannuksia ja hidastaa vasteaikaa.
Kehittäjän promptausmallit
1. Konteksti → Tehtävä → Rajoitteet
Tehokkain promptausmalli kehittäjille:
KONTEKSTI:
Projekti käyttää Next.js 15 + TypeScript + Supabase.
Kyseessä on käyttäjähallintamoduuli (lib/users/).
TEHTÄVÄ:
Luo funktio, joka hakee käyttäjän profiilin ja
palauttaa sen tyypitetyn vastauksen.
RAJOITTEET:
- Käytä Supabase-clientiä, älä suoria SQL-kyselyitä
- Palauta tyypitetty vastaus (ei any)
- Käsittele virhetilanteet
- Kirjoita JSDoc-kommentit2. Esimerkkipohjainen promptaus (Few-shot)
Anna mallille esimerkki haluamastasi tulosteesta:
Tässä projektissa API-endpointit noudattavat tätä kaavaa:
// Esimerkki: GET /api/users
export async function GET(request: NextRequest) {
const supabase = await createClient()
const { data, error } = await supabase
.from('users')
.select('*')
if (error) return NextResponse.json(
{ error: error.message }, { status: 500 }
)
return NextResponse.json(data)
}
Luo vastaava endpoint: GET /api/products3. Roolipohjainen promptaus
Toimi kokeneena TypeScript-kehittäjänä, joka noudattaa
seuraavia periaatteita:
- Strict TypeScript (ei any)
- Funktionaalinen ohjelmointi (ei luokkia)
- Virheenkäsittely Result-tyypillä
- Testit ennen toteutusta (TDD)Pro-vinkki
Vältä epämääräisiä prompteja kuten "paranna tätä koodia". Kerro sen sijaan täsmällisesti mitä haluat: "lisää virheenkäsittely, TypeScript-tyypit ja JSDoc-kommentit tähän funktioon."
Mallien vertailu kehittäjille
Eri LLM-mallit sopivat eri tehtäviin. Tässä vertailu kehittäjän näkökulmasta:
| Tehtävä | Paras valinta | Miksi |
|---|---|---|
| Monimutkainen arkkitehtuuri | Claude Opus / GPT-4o | Pitkä konteksti, syvä päättely |
| Koodin generointi | Claude Sonnet / GPT-4o | Hyvä tasapaino laatu/nopeus |
| Nopeat korjaukset | Claude Haiku / GPT-4o mini | Nopea, halpa, riittävä laatu |
| Koodin selittäminen | Mikä tahansa | Kaikki mallit selittävät hyvin |
| Laaja koodikanta | Gemini 2.5 Pro | Erittäin suuri konteksti-ikkuna |
Mallien tasot
LLM-mallit jakautuvat tyypillisesti kolmeen tasoon: Frontier (Opus, GPT-4o) monimutkaisen päättelyn tehtäviin, Balanced (Sonnet, GPT-4o) päivittäiseen kehitykseen, ja Speed (Haiku, GPT-4o mini) nopeisiin yksinkertaisiin tehtäviin. Valitse taso tehtävän monimutkaisuuden mukaan.
Kustannusoptimointi
AI-koodaus tuottaa kustannuksia. Näin optimoit:
1. Oikea malli oikeaan tehtävään
- Käytä halpaa mallia yksinkertaisiin tehtäviin (boilerplate, tyylittelyt)
- Vaihda frontier-malliin kun tarkkuus on kriittistä (arkkitehtuuri, turvallisuus)
2. Kontekstin hallinta
- Rajaa konteksti relevanttiin: älä syötä koko koodikantaa joka kerta
- Käytä
.cursorignoretai vastaavia tiedostoja turhien tiedostojen poissulkemiseen - Viittaa tiedostoihin nimellä sen sijaan, että liittäisit sisällön
3. Välimuistin hyödyntäminen
- Prompt caching vähentää kustannuksia toistuvissa tehtävissä
- Moni API tukee system prompt -välimuistia automaattisesti
Yleisiä promptausvirheitä
| Virhe | Esimerkki | Korjaus |
|---|---|---|
| Liian epämääräinen | "Tee tämä paremmin" | "Lisää virheenkäsittely ja tyypit" |
| Liikaa kerralla | "Rakenna koko sovellus" | Pilko pienempiin tehtäviin |
| Ei kontekstia | "Luo komponentti" | Kerro framework, tyyli, sijainti |
| Ei rajoitteita | "Kirjoita testi" | Kerro framework, kattavuus, tapa |
Mikä on tehokkain tapa promptata AI:ta ohjelmistokehityksessä?
Promptausharjoitus
Valitse yksi ohjelmointitehtävä ja kirjoita kolme eri promptia samalle tehtävälle: 1) Huono prompti (epämääräinen), 2) Hyvä prompti (konteksti + tehtävä + rajoitteet), 3) Few-shot prompti (esimerkin kanssa). Vertaa tuloksia AI-koodaustyökalulla.
Yhteenveto
- Tehokas promptaus = konteksti + tehtävä + rajoitteet
- Eri mallit sopivat eri tehtäviin — älä käytä frontier-mallia kaikkeen
- Kustannuksia optimoidaan mallin valinnalla ja kontekstin rajaamisella
- Few-shot promptaus on tehokkain tapa varmistaa oikea tulosmuoto
- Seuraavaksi opimme speksilähtöisen kehityksen ja hyväksymiskriteerit