Fix thinking_budget=0 not disabling Gemini thinking
When callers passed thinking_budget=0, the falsy check `if thinking_budget
and thinking_budget > 0` would skip setting ThinkingConfig entirely. Without
an explicit config, Gemini applies its own default thinking budget (~23K
tokens), consuming nearly the entire output budget and truncating extraction
responses at ~800 tokens despite a 24K limit.
Change the condition to `if thinking_budget is not None` so that
thinking_budget=0 explicitly sets ThinkingConfig(thinking_budget=0),
properly disabling thinking and preserving the full output budget.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>