Wraps a provider to inject ``reasoning_effort`` via ``extra_body`` on chat calls (the original's /effort). Used only when /effort is set; delegates everything else to the inner provider, so the default path is untouched.
| 1579 | |
| 1580 | |
| 1581 | class _EffortProvider: |
| 1582 | """Wraps a provider to inject ``reasoning_effort`` via ``extra_body`` on chat |
| 1583 | calls (the original's /effort). Used only when /effort is set; delegates |
| 1584 | everything else to the inner provider, so the default path is untouched.""" |
| 1585 | |
| 1586 | def __init__(self, inner: Any, effort: str) -> None: |
| 1587 | self._inner = inner |
| 1588 | self._effort = effort |
| 1589 | |
| 1590 | def __getattr__(self, name: str) -> Any: # model, get_available_models, … |
| 1591 | return getattr(self._inner, name) |
| 1592 | |
| 1593 | def _inject(self, kwargs: dict) -> dict: |
| 1594 | eb = dict(kwargs.get("extra_body") or {}) |
| 1595 | eb.setdefault("reasoning_effort", self._effort) |
| 1596 | kwargs["extra_body"] = eb |
| 1597 | return kwargs |
| 1598 | |
| 1599 | def chat_stream_response(self, *args: Any, **kwargs: Any) -> Any: |
| 1600 | return self._inner.chat_stream_response(*args, **self._inject(kwargs)) |
| 1601 | |
| 1602 | def chat(self, *args: Any, **kwargs: Any) -> Any: |
| 1603 | return self._inner.chat(*args, **self._inject(kwargs)) |
| 1604 | |
| 1605 | def chat_stream(self, *args: Any, **kwargs: Any) -> Any: |
| 1606 | return self._inner.chat_stream(*args, **self._inject(kwargs)) |
| 1607 | |
| 1608 | async def chat_async(self, *args: Any, **kwargs: Any) -> Any: |
| 1609 | return await self._inner.chat_async(*args, **self._inject(kwargs)) |
| 1610 | |
| 1611 | |
| 1612 | def _sessions_dir() -> Path: |