Sovellusten rakentaminen Gemini 3.1 Pro:lla: Kehittäjän opas API:hin, koodaukseen ja vibe-koodaukseen
19. helmikuuta 2026 — Gemini 3.1 Pro on juuri julkaistu, ja se on yksi vahvimmista saatavilla olevista koodausmalleista: 80,6 % SWE-Bench Verified -testissä, 2887 Eloa LiveCodeBenchissä ja 1 miljoonan tokenin konteksti-ikkuna hintaan 2 $ per miljoona syötetokenia. Kyseessä on huipputason koodauskyvykkyys murto-osalla kilpailijoiden hinnoista.
Tämä opas on tarkoitettu kehittäjille, jotka haluavat aloittaa rakentamisen sen avulla tänään. Käsittelemme API-asennuksen, koodiesimerkit Pythonilla ja Node.js:llä, ajattelutasot, kontekstin välimuistin kustannusoptimointia varten sekä sen, miten Gemini 3.1 Pro sopii vibe-koodauksen työnkulkuihin.
Aloittaminen
Vaihtoehto 1: Google AI Studio (Ilmainen, ei asennusta)
Nopein tapa kokeilla Gemini 3.1 Prota:
- Mene osoitteeseen aistudio.google.com
- Kirjaudu sisään Google-tililläsi
- Valitse Gemini 3.1 Pro Preview mallivalikosta
- Aloita kehotteiden (prompts) kirjoittaminen
AI Studio on ilmainen käyttörajojen puitteissa — sopii erinomaisesti prototypointiin ja kokeiluun.
Vaihtoehto 2: API-avain (Sovellusten rakentamiseen)
- Valitse AI Studiossa Get API Key → Create API Key
- Tallenna avain turvallisesti (älä koskaan tallenna sitä versionhallintaan)
- Asenna SDK:
# Python
pip install google-genai
# Node.js
npm install @google/genai
Ensimmäinen API-kutsu
Python
from google import genai
client = genai.Client(api_key="YOUR_API_KEY")
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="Write a Python function that finds the longest common subsequence of two strings. Include type hints and docstring."
)
print(response.text)
Node.js
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "YOUR_API_KEY" });
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview",
contents: "Write a TypeScript Express middleware that validates JWT tokens and extracts user info.",
});
console.log(response.text);
Ajattelutasojen (Thinking Levels) käyttö
# Korkea ajattelutaso monimutkaiseen debuggaukseen
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="""
This Go server has a race condition that causes intermittent 500 errors
under load. Here's the relevant code:
[liitä koodisi tähän]
Find the race condition and explain the fix.
""",
config={
"thinking_config": {"thinking_level": "HIGH"}
}
)
Koodaus Gemini 3.1 Pro:lla
Suorituskykyvertailu
Ennen kuin syvennymme ominaisuuksiin, tässä on Gemini 3.1 Pro:n sijoitus koodausmallien joukossa:
| Vertailuarvo | Gemini 3.1 Pro | GPT-5.3-Codex | Claude Opus 4.6 |
|---|---|---|---|
| SWE-Bench Verified | 80,6 % | 76,2 % | 72,6 % |
| Terminal-Bench 2.0 | 68,5 % | 77,3 % | — |
| LiveCodeBench Pro | 2887 Elo | — | — |
Kyseessä on 15 % parannus parhaisiin Gemini 3 Pro Preview -ajoihin verrattuna, ja se tuottaa parempia tuloksia käyttämällä vähemmän tulostetokeneita.
Koodin generointi
Gemini 3.1 Pro generoi tuotantolaatuista koodia eri kielillä. 1 miljoonan tokenin konteksti tarkoittaa, että voit sisällyttää olemassa olevan koodikantasi mukaan kontekstitietoiseen generointiin:
# Lataa koodikantasi konteksti
with open("codebase_context.txt", "r") as f:
codebase = f.read()
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=f"""
Here is my current codebase:
{codebase}
Add a new API endpoint POST /api/users/bulk-import that:
- Accepts a CSV file upload
- Validates each row against the User schema
- Inserts valid records in batches of 100
- Returns a summary of successes and failures
- Follow the existing patterns and coding style
""",
config={
"thinking_config": {"thinking_level": "MEDIUM"}
}
)
Virheenkorjaus (Debugging)
Syötä virhelokit, pinojäljet (stack traces) ja lähdekoodi yhdessä. Korkea (High) ajattelutaso on lisäkustannuksen arvoinen monimutkaisissa virhetilanteissa:
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="""
Error: Connection pool exhausted after 30 seconds
Stack trace:
[liitä pinojälki]
Relevant source files:
[liitä db.py, connection_pool.py, api_handler.py]
This only happens under concurrent requests (>50 rps).
Find the root cause.
""",
config={
"thinking_config": {"thinking_level": "HIGH"}
}
)
Koodin katselmointi (Code Review)
Medium-ajattelutaso tarjoaa tasapainoisen katselmoinnin ilman triviaalien asioiden liiallista analysointia:
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=f"""
Review this pull request diff for:
1. Bugs or logic errors
2. Security vulnerabilities (SQL injection, XSS, etc.)
3. Performance issues
4. Adherence to project conventions
Diff:
{diff_content}
""",
config={
"thinking_config": {"thinking_level": "MEDIUM"}
}
)
1 miljoonan tokenin konteksti-ikkunan etu
Gemini 3.1 Pro:n miljoonan tokenin konteksti-ikkuna muuttaa tavan, jolla olet vuorovaikutuksessa koodin kanssa. Koodinpätkien sijaan voit ladata kokonaisia projekteja.
Kontekstin koon viitearvot
| Mitä voit ladata | Arvioidut tokenit |
|---|---|
| Yksi tiedosto (500 riviä) | ~2K tokenia |
| Pieni projekti (50 tiedostoa) | ~100K tokenia |
| Keskikokoinen projekti (200 tiedostoa) | ~400K tokenia |
| Suuri projekti (500 tiedostoa) | ~1M tokenia |
Koko koodikannan analysointi
import os
def load_codebase(root_dir, extensions=('.py', '.js', '.ts', '.jsx', '.tsx')):
"""Lataa kaikki lähdetiedostot yhteen kontekstimerkkijonoon."""
files = []
for dirpath, _, filenames in os.walk(root_dir):
for filename in filenames:
if any(filename.endswith(ext) for ext in extensions):
filepath = os.path.join(dirpath, filename)
with open(filepath, 'r', errors='ignore') as f:
content = f.read()
files.append(f"=== {filepath} ===\n{content}\n")
return "\n".join(files)
codebase = load_codebase("./src")
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=f"""
Analyze this entire codebase and identify:
1. Architectural issues or anti-patterns
2. Dead code that can be removed
3. Functions that should be refactored
4. Missing error handling at system boundaries
Codebase:
{codebase}
"""
)
Tämä on asia, jota ei yksinkertaisesti voi tehdä 200k-kontekstin malleilla ilman palastelua ja tiedostojen välisen kontekstin menettämistä.
Ajattelutasot: Low, Medium, High
Ajattelutasojen avulla voit hallita pyyntökohtaista hinta-laatu-suhdetta.
| Taso | Käyttötapaukset | Token-lisäkuorma | Kustannusvaikutus |
|---|---|---|---|
| Low | Automaattinen täydennys, yksinkertaiset haut, muotoilu, luokittelu | Minimaalinen | ~1x |
| Medium | Koodin katselmointi, tiivistäminen, kohtalainen analyysi, sisällön tuottaminen | Kohtalainen | ~2-3x |
| High | Monimutkainen debuggaus, monivaiheinen päättely, arkkitehtuuripäätökset | Merkittävä | ~5-10x |
Käytännön suuntaviivat
- Low: "Muunna tämä JSON TypeScript-interfaceksi" — ei vaadi syvää päättelyä.
- Medium: "Katselmoi tämä PR virheiden ja tietoturvaongelmien varalta" — vaatii analyysia mutta ei tyhjentävää päättelyä.
- High: "Tässä hajautetussa järjestelmässä on ajoittainen konsistenssivirhe kuormituksen alla. Tässä on 15 tiedostoa..." — vaatii syvää tiedostojen välistä päättelyä.
# Vaihda ajattelutasoa tehtävän monimutkaisuuden mukaan
def ask_gemini(prompt, complexity="medium"):
levels = {"low": "LOW", "medium": "MEDIUM", "high": "HIGH"}
return client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=prompt,
config={
"thinking_config": {"thinking_level": levels[complexity]}
}
)
Kustannusoptimointi
Kontekstin välimuisti (Context Caching)
Jos sovelluksesi tekee toistuvia kyselyitä samaan koodikantaan tai dokumentaatioon, kontekstin välimuisti alentaa syötteen kustannuksia 75 %:
| Hinnoittelu | Vakio | Välimuistissa |
|---|---|---|
| Syöte (per 1M tokenia) | 2,00 $ | 0,50 $ |
| Tuloste (per 1M tokenia) | 12,00 $ | 12,00 $ |
# Luo välimuistiin tallennettu konteksti koodikannallesi
cached_content = client.caches.create(
model="gemini-3.1-pro-preview",
contents=[{"role": "user", "parts": [{"text": codebase}]}],
ttl="3600s" # Välimuisti voimassa 1 tunnin
)
# Seuraavat kyselyt käyttävät välimuistissa olevaa kontekstia
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="Find all SQL injection vulnerabilities in this codebase",
cached_content=cached_content.name
)
Koodausprosessin kustannusvertailu
Oletetaan 500k tokenin koodikantakonteksti + 1k kysely, 100 kyselyä päivässä:
| Strategia | Päivittäinen kustannus |
|---|---|
| Gemini 3.1 Pro (ilman välimuistia) | ~$100 |
| Gemini 3.1 Pro (välimuistin kanssa) | ~$27 |
| Claude Opus 4.6 (ilman välimuistia) | ~$750 |
Lisää optimointivinkkejä
- Oikea ajattelutaso: Käytä Low-tasoa 80 %:ssa tehtävistä, Mediumia 15 %:ssa ja High-tasoa vain 5 %:ssa.
- Ryhmittele samankaltaiset pyynnöt: Yhdistä koodikatselmointitehtävät kontekstin lataamisen jakamiseksi.
- Käytä välimuistia aggressiivisesti: Jos teet kyselyn samaan dokumentaatioon tai koodiin yli 3 kertaa, tallenna se välimuistiin.
- Käytä Gemini 3 Flashia yksinkertaisiin tehtäviin, jotka eivät vaadi Pro-tason päättelyä.
Vibe-koodaus Gemini 3.1 Pro:lla
Vibe-koodaus on käytäntö, jossa kuvailet haluamasi lopputuloksen luonnollisella kielellä ja annat tekoälyn generoida koodin. Gemini 3.1 Pro on tässä erityisen vahva, koska se ymmärtää suunnittelun tarkoituksen, ei vain syntaksia.
Miten Gemini ymmärtää "viben"
Hostingerin tiimi huomasi, että Gemini 3.1 Pro kääntää "suunnan, tyylin ja tuotetarkoituksen" koodiksi. Kun siltä pyydettiin portfolion rakentamista synkällä kirjallisella teemalla, se päätteli tunnelman ja suunnitteli siihen sopivan käyttöliittymän.
SVG-generointi
Erityisominaisuus: Gemini 3.1 Pro generoi animoituja SVG-kuvia suoraan tekstikuvauksista. Koska SVG:t ovat koodia, ne pysyvät terävinä kaikilla resoluutioilla:
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="""
Create an animated SVG logo for a tech startup called "Pulse AI".
Design requirements:
- Minimalist, modern style
- Blue-to-purple gradient
- Subtle pulse animation on the icon
- 200x60px viewport
- Clean, sharp edges
"""
)
# Tallenna SVG suoraan
with open("logo.svg", "w") as f:
f.write(response.text)
Kokonaisten sovellusten rakentaminen
Yhdistä Gemini 3.1 Pro:n koodausvoima NxCode-tyyppiseen sovellusrakentajaan siirtyäksesi ideasta valmiiseen sovellukseen:
- Kuvaile sovelluksesi luonnollisella kielellä.
- Gemini generoi koodikannan (frontend + backend + tietokanta).
- Tarkista ja iteroi vibe-koodauskehotteilla.
- Julkaise suoraan tuotantoon.
Tämä työnkulku on erityisen tehokas, koska Geminin 1 miljoonan tokenin konteksti-ikkuna pystyy säilyttämään koko kasvavan koodikantasi iteroinnin aikana.
Alustaintegraatiot
GitHub Copilot
Gemini 3.1 Pro on nyt saatavilla GitHub Copilotissa:
- Avaa GitHub Copilotin asetukset.
- Valitse Gemini 3.1 Pro mallivalikosta.
- Käytä koodintäydennyksiä ja chattia normaaliin tapaan.
Gemini CLI
Terminaalipohjaiseen kehitykseen:
# Asennus
npm install -g @anthropic-ai/gemini-cli
# Käyttö
gemini --model gemini-3.1-pro-preview "Refactor this function to use async/await"
# Koodin ohjaaminen putkella (pipe)
cat src/server.js | gemini --model gemini-3.1-pro-preview "Review this code"
VS Code
Saatavilla Copilot-laajennuksen kautta. Valitse Gemini 3.1 Pro mallipudotusvalikosta ehdotuksia ja chattia varten.
Google Antigravity
Googlen agenttipohjainen kehitysalusta, jossa on syvä Gemini-integraatio. Paras monimutkaisten, monivaiheisten tekoälyagenttien rakentamiseen, jotka vaativat työkalujen käyttöä ja pitkäkestoisia työnkulkuja.
Vinkit ja parhaat käytännöt
- Aloita Medium-ajattelulla, siirry High-tasolle vain tarvittaessa — säästät 3–5-kertaisesti tokeneissa.
- Lataa koko konteksti kerralla — Gemini käsittelee 1M tokenia hyvin; älä karsi tiedostoja liian aggressiivisesti.
- Käytä kontekstin välimuistia toistuvissa analyyseissä (koodikatselmointi, dokumentaatio-Q&A, testien generointi).
- Ole täsmällinen tulostusmuodosta — "Palauta vain koodi, ei selitystä" säästää tulostetokeneita.
- Yhdistä Gemini 3 Flashin kanssa kaksitasoiseksi järjestelmäksi: Flash yksinkertaisiin täydennyksiin, Pro monimutkaiseen päättelyyn.
- Käytä esimerkkejä kehotteissasi — Gemini 3.1 Pro seuraa malleja erinomaisesti.
- Määritä kieli ja kehys eksplisiittisesti — "Kirjoita TypeScriptillä käyttäen Next.js 15:ttä ja App Routeria".
- Katselmoi generoitu koodi — 80,6 % SWE-Bench-tulos on vaikuttava, mutta ei 100 %. Testaa ja katselmoi koodi aina.
Yhteenveto
Gemini 3.1 Pro tarjoaa kehittäjille huipputason koodauskyvykkyyden budjettiystävälliseen hintaan. 1 miljoonan tokenin konteksti-ikkuna on todellinen pelinmuuttaja koko koodikannan kattavassa analyysissä, ja ajattelutasot tarjoavat tarkan hallinnan kustannusten ja laadun välillä.
Lue lisää siitä, miten tekoäly muuttaa kehitystyötä, tutustumalla vibe-koodausoppaaseemme ja Cursor vs Windsurf vs Claude Code -vertailuumme. Gemini 3.1 Pro:n muiden kuin koodausominaisuuksien täydellinen erittely löytyy kattavasta oppaastamme.
