googleapis / googleapis/python-genai

temperature and top_p silently removed from Interactions GenerationConfig in 2.14.0

Open
#2,876 1 comment 0 reactions 1 assignee Claimed by @kkorpal View on GitHub
priority: p2 type: bug
Dominant language
Python
Stars
4k
Forks
1k
Avg merge
2d 11h
Merged PRs (30d)
40

Description

### Description

`temperature` and `top_p` were removed from the Interactions API's `GenerationConfig` / `GenerationConfigParam` in **2.14.0**. The [2.14.0 changelog](https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md) has no entry for this, and it wasn't flagged as a deprecation in any prior release.

The removal is type-only. `GenerationConfig` is `extra="allow"`, so passing `temperature` still validates and still serializes onto the wire — code keeps working at runtime but fails type checking. That combination makes it easy to "fix" by deleting the field, silently changing sampling behavior.

This also leaves the two surfaces inconsistent: `types.GenerateContentConfig` (used by `models.generate_content`) still has both `temperature` and `top_p` as first-class fields in 2.18.1.

### Reproduction (2.18.1)

```python
from google.genai import version
from google.genai.interactions import GenerationConfigParam
from google.genai._gaos.types.interactions.generationconfig import GenerationConfig

print("google-genai:", version.__version__)
print("temperature in GenerationConfig:", "temperature" in GenerationConfig.model_fields)
print("extra policy:", GenerationConfig.model_config.get("extra"))
print("dump:", GenerationConfig.model_validate({"temperature": 0.0}).model_dump())

cfg: GenerationConfigParam = {"temperature": 0.0} # pyright: reportAssignmentType
```

Runtime output:

```
google-genai: 2.18.1
temperature in GenerationConfig: False
extra policy: allow
dump: {'temperature': 0.0}
```

Type checker (pyright, standard mode):

```
error: Type "dict[str, float]" is not assignable to declared type "GenerationConfigParam"
"temperature" is an undefined item in type "GenerationConfigParam" (reportAssignmentType)
```

Bisected across wheels: present in 2.13.0, absent from 2.14.0 onward.

### Questions

1. Is this intentional — has the Interactions API stopped accepting `temperature`/`top_p`, or is it a codegen omission?
2. **If intentional:** is `temperature` now ignored server-side, or still honored? Callers doing deterministic structured extraction need to know whether removing it changes model behavior. A changelog entry and a deprecation window would help.
3. **If a codegen bug:** can the fields be restored?

### Environment

- google-genai 2.18.1 (also reproduces on 2.14.0–2.18.0)
- Python 3.13, Linux

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.