Byg apps med Gemini 3.1 Pro: Udviklervejledning til API, kodning og Vibe Coding
19. februar 2026 — Gemini 3.1 Pro er netop lanceret, og det er en af de stærkeste kodningsmodeller til rådighed: 80,6% på SWE-Bench Verified, 2887 Elo på LiveCodeBench, og et 1 mio. token-kontekstvindue til $2 pr. million input-tokens. Det er kodning på frontier-niveau til en brøkdel af prisen.
Denne guide er til udviklere, der ønsker at begynde at bygge med den i dag. Vi dækker API-opsætning, kodeeksempler i Python og Node.js, tænkeniveauer, kontekst-caching til prisoptimering, og hvordan Gemini 3.1 Pro passer ind i vibe coding-workflows.
Kom godt i gang
Mulighed 1: Google AI Studio (Gratis, ingen opsætning)
Den hurtigste måde at prøve Gemini 3.1 Pro på:
- Gå til aistudio.google.com
- Log ind med din Google-konto
- Vælg Gemini 3.1 Pro Preview fra model-dropdown-menuen
- Start med at prompte
AI Studio er gratis med hastighedsbegrænsninger — godt til prototyping og eksperimentering.
Mulighed 2: API-nøgle (Til opbygning af apps)
- I AI Studio skal du gå til Get API Key → Create API Key
- Gem nøglen sikkert (commit den aldrig til versionsstyring)
- Installer SDK'et:
# Python
pip install google-genai
# Node.js
npm install @google/genai
Dit første API-kald
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);
Med tænkeniveauer (Thinking Levels)
# Høj tænkning til kompleks fejlfinding
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:
[paste your code here]
Find the race condition and explain the fix.
""",
config={
"thinking_config": {"thinking_level": "HIGH"}
}
)
Kodning med Gemini 3.1 Pro
Benchmark-kontekst
Før vi dykker ned i mulighederne, er her en oversigt over, hvor Gemini 3.1 Pro står blandt kodningsmodeller:
| Benchmark | 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 | — | — |
Det er en forbedring på 15% i forhold til de bedste Gemini 3 Pro Preview-kørsler, og den bruger færre output-tokens til at producere bedre resultater.
Kodegenerering
Gemini 3.1 Pro genererer kode i produktionskvalitet på tværs af sprog. Kontekstvinduet på 1 mio. tokens betyder, at du kan inkludere din eksisterende kodebase for kontekstbevidst generering:
# Indlæs din kodebase-kontekst
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"}
}
)
Fejlfinding (Debugging)
Indsend fejllogfiler, stack traces og kildekode samlet. Det høje tænkeniveau (High) er den ekstra pris værd for komplekse fejl:
# Find årsagen til fejlen
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents="""
Error: Connection pool exhausted after 30 seconds
Stack trace:
[paste stack trace]
Relevant source files:
[paste 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"}
}
)
Kodegennemgang (Code Review)
Mellemniveauet (Medium) giver balancerede gennemgange uden at overanalysere triviel kode:
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"}
}
)
Fordelen ved 1 mio. token-kontekst
Gemini 3.1 Pro's kontekstvindue på 1 million tokens ændrer måden, du interagerer med kode på. I stedet for at indsende små bidder, kan du indlæse hele projekter.
Reference for kontekststørrelse
| Hvad du kan indlæse | Omtrentlige tokens |
|---|---|
| Enkelt fil (500 linjer) | ~2K tokens |
| Lille projekt (50 filer) | ~100K tokens |
| Mellem projekt (200 filer) | ~400K tokens |
| Stort projekt (500 filer) | ~1M tokens |
Analyse af hele kodebasen
import os
def load_codebase(root_dir, extensions=('.py', '.js', '.ts', '.jsx', '.tsx')):
"""Indlæs alle kildefiler i en enkelt kontekst-streng."""
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}
"""
)
Dette er noget, du simpelthen ikke kan gøre med modeller med 200K-kontekst uden at opdele koden og miste kontekst på tværs af filer.
Tænkeniveauer: Lav, Mellem, Høj
Tænkeniveauer lader dig styre afvejningen mellem pris og kvalitet pr. anmodning.
| Niveau | Brugsscenarier | Token-omkostning | Prispåvirkning |
|---|---|---|---|
| Lav (Low) | Autocomplete, enkle opslag, formatering, klassificering | Minimal | ~1x |
| Mellem (Medium) | Kodegennemgang, opsummering, moderat analyse, indholdsgenerering | Moderat | ~2-3x |
| Høj (High) | Kompleks fejlfinding, ræsonnement i flere trin, arkitekturbeslutninger | Betydelig | ~5-10x |
Praktiske retningslinjer
- Lav: "Konverter denne JSON til et TypeScript-interface" — intet behov for dybt ræsonnement.
- Mellem: "Gennemse denne PR for fejl og sikkerhedsproblemer" — kræver analyse, men ikke udtømmende.
- Høj: "Dette distribuerede system har en periodisk konsistensfejl under belastning. Her er 15 filer…" — kræver dybt ræsonnement på tværs af mange filer.
# Skift tænkeniveau baseret på opgavens kompleksitet
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]}
}
)
Prisoptimering
Kontekst-caching
Hvis din app gentagne gange forespørger den samme kodebase eller dokumentation, reducerer kontekst-caching inputomkostningerne med 75%:
| Prissætning | Standard | Cached |
|---|---|---|
| Input (pr. 1M tokens) | $2.00 | $0.50 |
| Output (pr. 1M tokens) | $12.00 | $12.00 |
# Opret en cached kontekst for din kodebase
cached_content = client.caches.create(
model="gemini-3.1-pro-preview",
contents=[{"role": "user", "parts": [{"text": codebase}]}],
ttl="3600s" # Cache i 1 time
)
# Efterfølgende forespørgsler bruger den cachede kontekst
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
)
Prissammenligning for et kodnings-workflow
Forudsætning: 500K tokens af kodebase-kontekst + 1K forespørgsel, 100 forespørgsler om dagen:
| Strategi | Daglig omkostning |
|---|---|
| Gemini 3.1 Pro (uden caching) | ~$100 |
| Gemini 3.1 Pro (med caching) | ~$27 |
| Claude Opus 4.6 (uden caching) | ~$750 |
Flere tips til optimering
- Vælg det rigtige tænkeniveau: Brug Lav til 80% af opgaverne, Mellem til 15%, og Høj til 5%.
- Batch lignende anmodninger: Grupper kodegennemgangsopgaver for at fordele omkostningen ved kontekstindlæsning.
- Cache aggressivt: Hvis du forespørger de samme dokumenter/kode mere end 3 gange, så cache det.
- Brug Gemini 3 Flash til enkle opgaver, der ikke kræver Pro-niveau ræsonnement.
Vibe Coding med Gemini 3.1 Pro
Vibe coding er praksis med at beskrive, hvad du vil have i naturligt sprog, og lade AI generere koden. Gemini 3.1 Pro er særligt stærk her, fordi den forstår designhensigt, ikke kun syntaks.
Hvordan Gemini forstår "Vibe"
Hostingers team bemærkede, at Gemini 3.1 Pro oversætter "retning, stil og produkthensigt" til kode. Da den blev bedt om at bygge en porteføljeside med et dystert litterært tema, ræsonnerede den sig frem til den atmosfæriske tone for at designe en matchende brugerflade.
SVG-generering
En fremtrædende funktion: Gemini 3.1 Pro genererer animerede SVG'er direkte fra tekstbeskrivelser. Da SVG'er er kode, forbliver de skarpe i enhver opløsning:
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
"""
)
# Gem SVG'en direkte
with open("logo.svg", "w") as f:
f.write(response.text)
Opbygning af komplette apps
Kombiner Gemini 3.1 Pro's kodestyrke med en AI-app-builder som NxCode for at gå fra idé til udrullet app:
- Beskriv din app i naturligt sprog.
- Gemini genererer kodebasen (frontend + backend + database).
- Gennemse og iterer med vibe coding-prompts.
- Udrul direkte til produktion.
Dette workflow er særligt kraftfuldt, fordi Geminis 1M kontekstvindue kan rumme hele din voksende kodebase, mens du itererer.
Platform-integration
GitHub Copilot
Gemini 3.1 Pro er nu tilgængelig i GitHub Copilot:
- Åbn indstillingerne i GitHub Copilot.
- Vælg Gemini 3.1 Pro fra modelvælgeren.
- Brug inline-fuldførelser og chat som sædvanligt.
Gemini CLI
Til terminalbaseret udvikling:
# Installation
npm install -g @anthropic-ai/gemini-cli
# Brug
gemini --model gemini-3.1-pro-preview "Refactor this function to use async/await"
# Send kode ind via pipe
cat src/server.js | gemini --model gemini-3.1-pro-preview "Review this code"
VS Code
Tilgængelig via Copilot-udvidelsen. Vælg Gemini 3.1 Pro i model-dropdown-menuen for inline-forslag og chat.
Google Antigravity
Googles agent-baserede udviklingsplatform med dyb Gemini-integration. Bedst til at bygge komplekse AI-agenter i flere trin, der kræver værktøjsbrug og langvarige workflows.
Tips og Best Practices
- Start med Mellem tænkeniveau, og eskaler kun til Høj, når det er nødvendigt — sparer 3-5x på tokens.
- Indlæs fuld kontekst fra starten — Gemini håndterer 1M tokens godt; lad være med at for-filtrere for aggressivt.
- Brug kontekst-caching til enhver gentagen analyse (kodegennemgang, dokument-Q&A, testgenerering).
- Vær specifik omkring output-formatet — "Return only the code, no explanation" sparer output-tokens.
- Kombiner med Gemini 3 Flash for et to-lags system: Flash til enkle fuldførelser, Pro til komplekse ræsonnementer.
- Inkluder eksempler i dine prompts — Gemini 3.1 Pro følger mønstre godt.
- Specificer sprog og framework eksplicit — "Write in TypeScript using Next.js 15 with App Router".
- Gennemse genereret kode — 80,6% på SWE-Bench er imponerende, men ikke 100%. Test og gennemse altid.
Konklusion
Gemini 3.1 Pro giver udviklere kodningsmuligheder på topniveau til budgetvenlige priser. Kontekstvinduet på 1M tokens er en ægte game-changer for analyse på kodebaseniveau, og tænkeniveauer giver finkornet kontrol over pris og kvalitet.
For mere om, hvordan AI ændrer udvikling, kan du se vores vibe coding guide og Cursor vs Windsurf vs Claude Code sammenligning. Og for en fuld gennemgang af Gemini 3.1 Pros evner udover kodning, se vores komplette guide.

