SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
2.0 KB · 26 lines shellscript
Raw Blame History
1#!/usr/bin/env bash2# STATUS: UNVERIFIED (ACCOUNT_RESTRICTED) — 2026-09-18 every batchGenerateContent create (this body included) returned3#         400 FAILED_PRECONDITION "Precondition check failed." on our free-tier key (Batch API: "Free Tier: Not available").4#         On a paid key: 200 Operation {name: batches/…, metadata.state: BATCH_STATE_PENDING}; poll GET /v1beta/{name} until done.5# Run: bash examples/gemini/batch/batch-inline.sh6set -euo pipefail7cd "$(dirname "$0")/../../.."8source scripts/lib.sh9MODEL="${GEMINI_MODEL:-gemini-3.5-flash-lite}"10OUT=$(mktemp); trap 'rm -f "$OUT"' EXIT11gemini POST "/v1beta/models/$MODEL:batchGenerateContent" -d '{"batch":{"display_name":"atlas-example","input_config":{"requests":{"requests":[12  {"request":{"contents":[{"parts":[{"text":"Reply with OK."}]}],"generationConfig":{"maxOutputTokens":8}},"metadata":{"key":"r1"}},13  {"request":{"contents":[{"parts":[{"text":"Reply with OK."}]}],"generationConfig":{"maxOutputTokens":8}},"metadata":{"key":"r2"}}]}}}}' > "$OUT"14log_request gemini POST "/v1beta/models/{model}:batchGenerateContent" "$GEMINI_STATUS" 0.0001 "example batch-inline.sh create"15echo "HTTP $GEMINI_STATUS"; cat "$OUT"; echo16NAME=$(python3 -c "import json,sys; print(json.load(open(sys.argv[1])).get('name',''))" "$OUT")17[ -n "$NAME" ] || exit 018for _ in $(seq 1 15); do                 # poll ≤ 5 min19  sleep 2020  gemini GET "/v1beta/$NAME" > "$OUT"; log_request gemini GET "/v1beta/batches/{id}" "$GEMINI_STATUS" 0 "example batch poll"21  python3 -c "import json,sys; d=json.load(open(sys.argv[1])); print('state', d.get('metadata',{}).get('state'), 'done', d.get('done'))" "$OUT"22  [ "$(python3 -c "import json,sys; print(json.load(open(sys.argv[1])).get('done', False))" "$OUT")" = "True" ] && break23done24python3 -c "import json,sys; d=json.load(open(sys.argv[1])); print(json.dumps(d.get('response', d.get('error')), indent=1)[:1500])" "$OUT"25gemini DELETE "/v1beta/$NAME" > /dev/null; log_request gemini DELETE "/v1beta/batches/{id}" "$GEMINI_STATUS" 0 "example batch delete"26