默认阈值写回了调用方字典
`update_gemini_kwargs()` 虽然复制了最外层请求参数,却继续复用调用者传入的嵌套 `safety_settings` 映射;合并 Gemini 默认阈值时会原地修改应用持有的配置,使同一字典在后续请求中携带 Instructor 写入的状态。

基于 Pydantic 的 LLM 结构化输出框架,将响应模型、验证、重试与多提供商适配统一到类型安全的 Python 接口,支持 OpenAI、Anthropic、Gemini、Bedrock 等主流模型服务。
外层字典被复制后,嵌套映射仍可能指向同一个对象;真正的输入隔离必须切断这条别名关系。
id: config_Aresult = kwargs.copy()nested mappingconfig_A ↔ config_Aconfig_A→ copy →OUTPUTconfig_B`update_gemini_kwargs()` 虽然复制了最外层请求参数,却继续复用调用者传入的嵌套 `safety_settings` 映射;合并 Gemini 默认阈值时会原地修改应用持有的配置,使同一字典在后续请求中携带 Instructor 写入的状态。
外层浅拷贝只隔离字典壳,不能改变嵌套可变对象仍被共享的事实。请求规范化应把调用方输入视为只读:既要把默认阈值写入即将发送的请求,也必须保证返回映射与原对象不再别名,避免一次调用改变之后的应用行为。
在应用默认阈值前显式复制 `safety_settings`,再把独立映射写回结果;回归测试同时锁定三条契约:原始配置保持不变、输出不与输入共享对象身份、发送给 Gemini 的默认安全阈值仍然完整生效。
PR #2551 随维护者的整合 PR #2566 进入 `main`:合并说明明确将其列为 superseded contribution,并保留原始 provider contributor commits 与作者;1.16.1 Changelog 单独链接 #2551,维护者关闭原 PR 时也确认修复已整合并致谢。