deep_research-personal / agents /models /chatcmpl_helpers.py
Akashmj22122002's picture
Upload folder using huggingface_hub
14edff4 verified
from __future__ import annotations
from contextvars import ContextVar
from openai import AsyncOpenAI
from ..model_settings import ModelSettings
from ..version import __version__
_USER_AGENT = f"Agents/Python {__version__}"
HEADERS = {"User-Agent": _USER_AGENT}
HEADERS_OVERRIDE: ContextVar[dict[str, str] | None] = ContextVar(
"openai_chatcompletions_headers_override", default=None
)
class ChatCmplHelpers:
@classmethod
def is_openai(cls, client: AsyncOpenAI):
return str(client.base_url).startswith("https://api.openai.com")
@classmethod
def get_store_param(cls, client: AsyncOpenAI, model_settings: ModelSettings) -> bool | None:
# Match the behavior of Responses where store is True when not given
default_store = True if cls.is_openai(client) else None
return model_settings.store if model_settings.store is not None else default_store
@classmethod
def get_stream_options_param(
cls, client: AsyncOpenAI, model_settings: ModelSettings, stream: bool
) -> dict[str, bool] | None:
if not stream:
return None
default_include_usage = True if cls.is_openai(client) else None
include_usage = (
model_settings.include_usage
if model_settings.include_usage is not None
else default_include_usage
)
stream_options = {"include_usage": include_usage} if include_usage is not None else None
return stream_options