[ ABORT TO HUD ]
SEQ. 1
SEQ. 2
SEQ. 3

Controlled JSON Generation

⚙️ Structured Outputs & Tools 12m 250 BASE XP⌨ HANDS-ON LAB

Constrained Decoding & Token-Level Guarantees

Production enterprise pipelines cannot tolerate malformed JSON, truncated markdown backticks, or missing mandatory fields. Gemini on Vertex AI guarantees 100% schema compliance through Constrained Decoding.

Rather than relying on prompt engineering (e.g., "Please return valid JSON only"), Vertex AI compiles the provided schema into a grammar constraint automaton directly at the logits sampling level. Tokens that violate the schema receive a probability of zero, mathematically guaranteeing valid parsing.

from pydantic import BaseModel, Field
from google import genai
from google.genai import types

class AuditFinding(BaseModel):
    severity: str = Field(description="CRITICAL, HIGH, MEDIUM, or LOW")
    cve_id: str = Field(description="CVE identifier or N/A")
    description: str = Field(description="Concise description of vulnerability")
    remediation_steps: list[str] = Field(description="Actionable remediation steps")

class SecurityReport(BaseModel):
    target_host: str
    scan_timestamp: str
    findings: list[AuditFinding]

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents="Scan log excerpt: OpenSSH 7.4 buffer overflow detected on 192.168.1.50.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=SecurityReport,
    )
)

# Guaranteed to parse into strongly typed Pydantic object
report = SecurityReport.model_validate_json(response.text)
print(f"Parsed {len(report.findings)} findings for {report.target_host}")
⌨ HANDS-ON LABEnforce a Response Schema
⭐ +150 XP

Your pipeline chokes on Gemini's prose. Force pure JSON from the REST API with responseMimeType + responseSchema - no parsing regexes ever again.

1Capture an access token in the TOKEN variable.
2POST to generateContent with generationConfig containing responseMimeType application/json and a responseSchema.
lab-sandbox — simulated environment
INFINITY LAB SANDBOX v2.6 — simulated shell
Type the command for the current objective. Helpers: "hint", "solution", "clear".
$
OBJECTIVE 1 / 2 — type "hint" if stuck
SYNAPSE VERIFICATION
QUERY 1 // 2
How does Gemini guarantee valid JSON when response_schema is configured?
By running a post-processing regex on the output text
By using constrained decoding at the token sampling level to mask invalid tokens
By re-prompting the model automatically if JSON parsing fails
By asking a secondary model to rewrite the output