56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from typing import Literal
|
|
|
|
from openai import AsyncOpenAI
|
|
|
|
from .models import _openai_shared
|
|
from .models.openai_agent_registration import (
|
|
OpenAIAgentRegistrationConfig,
|
|
set_default_openai_agent_registration_config,
|
|
)
|
|
from .tracing import set_tracing_export_api_key
|
|
|
|
|
|
def set_default_openai_key(key: str, use_for_tracing: bool) -> None:
|
|
_openai_shared.set_default_openai_key(key)
|
|
|
|
if use_for_tracing:
|
|
set_tracing_export_api_key(key)
|
|
|
|
|
|
def set_default_openai_client(client: AsyncOpenAI, use_for_tracing: bool) -> None:
|
|
_openai_shared.set_default_openai_client(client)
|
|
|
|
if use_for_tracing:
|
|
set_tracing_export_api_key(client.api_key)
|
|
|
|
|
|
def set_default_openai_api(api: Literal["chat_completions", "responses"]) -> None:
|
|
if api == "chat_completions":
|
|
_openai_shared.set_use_responses_by_default(False)
|
|
else:
|
|
_openai_shared.set_use_responses_by_default(True)
|
|
|
|
|
|
def set_default_openai_responses_transport(transport: Literal["http", "websocket"]) -> None:
|
|
if transport not in {"http", "websocket"}:
|
|
raise ValueError(
|
|
"Invalid OpenAI Responses transport. Expected one of: 'http', 'websocket'."
|
|
)
|
|
_openai_shared.set_default_openai_responses_transport(transport)
|
|
|
|
|
|
def set_default_openai_agent_registration(
|
|
config: OpenAIAgentRegistrationConfig | None,
|
|
) -> None:
|
|
set_default_openai_agent_registration_config(config)
|
|
|
|
|
|
def set_default_openai_harness(harness_id: str | None) -> None:
|
|
if harness_id is None:
|
|
set_default_openai_agent_registration_config(None)
|
|
return
|
|
|
|
set_default_openai_agent_registration_config(
|
|
OpenAIAgentRegistrationConfig(harness_id=harness_id)
|
|
)
|