#!/usr/bin/env bash # STATUS: LIVE_VERIFIED — executed 2026-09-18 (exit 0 in 12.3s) # Thinking: thinkingBudget + includeThoughts on gemini-3.5-flash (thought summary part + thoughtsTokenCount), then thinkingLevel low on the same model. # Run: bash examples/gemini/thinking/thinking.sh (key injected from .env by scripts/lib.sh `gemini` wrapper; never printed) set -eo pipefail source "$(dirname "$0")/../../../scripts/lib.sh"; out="$(mktemp)"; trap 'rm -f "$out"' EXIT MODEL="gemini-3.5-flash" gemini POST "/v1beta/models/$MODEL:generateContent" -d '{"contents":[{"role":"user","parts":[{"text":"What is 17*23? Reply with the number only."}]}],"generationConfig":{"maxOutputTokens":600,"thinkingConfig":{"thinkingBudget":256,"includeThoughts":true}}}' > "$out" mask < "$out" | python3 -c 'import json,sys; d=json.load(sys.stdin); ps=d["candidates"][0]["content"]["parts"]; print("parts:", [("thought" if p.get("thought") else "text", len(p.get("text",""))) for p in ps]); print("usage:", d["usageMetadata"])' echo "HTTP $GEMINI_STATUS"; log_request gemini POST "/v1beta/models/{model}:generateContent" "$GEMINI_STATUS" 0.0012 "example thinking/thinking.sh (budget 256)" gemini POST "/v1beta/models/$MODEL:generateContent" -d '{"contents":[{"role":"user","parts":[{"text":"Reply with OK."}]}],"generationConfig":{"maxOutputTokens":32,"thinkingConfig":{"thinkingLevel":"low"}}}' > "$out"; mask < "$out" | head -c 300; echo echo "HTTP $GEMINI_STATUS"; log_request gemini POST "/v1beta/models/{model}:generateContent" "$GEMINI_STATUS" 0.00003 "example thinking/thinking.sh (level low)"