Bases: VoiceModelProvider
A voice model provider that uses OpenAI models.
ソースコード位置: src/agents/voice/models/openai_model_provider.py
| class OpenAIVoiceModelProvider(VoiceModelProvider):
"""A voice model provider that uses OpenAI models."""
def __init__(
self,
*,
api_key: str | None = None,
base_url: str | None = None,
openai_client: AsyncOpenAI | None = None,
organization: str | None = None,
project: str | None = None,
) -> None:
"""Create a new OpenAI voice model provider.
Args:
api_key: The API key to use for the OpenAI client. If not provided, we will use the
default API key.
base_url: The base URL to use for the OpenAI client. If not provided, we will use the
default base URL.
openai_client: An optional OpenAI client to use. If not provided, we will create a new
OpenAI client using the api_key and base_url.
organization: The organization to use for the OpenAI client.
project: The project to use for the OpenAI client.
"""
if openai_client is not None:
assert api_key is None and base_url is None, (
"Don't provide api_key or base_url if you provide openai_client"
)
self._client: AsyncOpenAI | None = openai_client
else:
self._client = None
self._stored_api_key = api_key
self._stored_base_url = base_url
self._stored_organization = organization
self._stored_project = project
# We lazy load the client in case you never actually use OpenAIProvider(). Otherwise
# AsyncOpenAI() raises an error if you don't have an API key set.
def _get_client(self) -> AsyncOpenAI:
if self._client is None:
self._client = _openai_shared.get_default_openai_client() or AsyncOpenAI(
api_key=self._stored_api_key or _openai_shared.get_default_openai_key(),
base_url=self._stored_base_url,
organization=self._stored_organization,
project=self._stored_project,
http_client=shared_http_client(),
)
return self._client
def get_stt_model(self, model_name: str | None) -> STTModel:
"""Get a speech-to-text model by name.
Args:
model_name: The name of the model to get.
Returns:
The speech-to-text model.
"""
return OpenAISTTModel(model_name or DEFAULT_STT_MODEL, self._get_client())
def get_tts_model(self, model_name: str | None) -> TTSModel:
"""Get a text-to-speech model by name.
Args:
model_name: The name of the model to get.
Returns:
The text-to-speech model.
"""
return OpenAITTSModel(model_name or DEFAULT_TTS_MODEL, self._get_client())
|
__init__
__init__(
*,
api_key: str | None = None,
base_url: str | None = None,
openai_client: AsyncOpenAI | None = None,
organization: str | None = None,
project: str | None = None,
) -> None
Create a new OpenAI voice model provider.
引数:
| 名前 |
タイプ |
デスクリプション |
デフォルト |
api_key
|
str | None
|
The API key to use for the OpenAI client. If not provided, we will use the
default API key.
|
None
|
base_url
|
str | None
|
The base URL to use for the OpenAI client. If not provided, we will use the
default base URL.
|
None
|
openai_client
|
AsyncOpenAI | None
|
An optional OpenAI client to use. If not provided, we will create a new
OpenAI client using the api_key and base_url.
|
None
|
organization
|
str | None
|
The organization to use for the OpenAI client.
|
None
|
project
|
str | None
|
The project to use for the OpenAI client.
|
None
|
ソースコード位置: src/agents/voice/models/openai_model_provider.py
| def __init__(
self,
*,
api_key: str | None = None,
base_url: str | None = None,
openai_client: AsyncOpenAI | None = None,
organization: str | None = None,
project: str | None = None,
) -> None:
"""Create a new OpenAI voice model provider.
Args:
api_key: The API key to use for the OpenAI client. If not provided, we will use the
default API key.
base_url: The base URL to use for the OpenAI client. If not provided, we will use the
default base URL.
openai_client: An optional OpenAI client to use. If not provided, we will create a new
OpenAI client using the api_key and base_url.
organization: The organization to use for the OpenAI client.
project: The project to use for the OpenAI client.
"""
if openai_client is not None:
assert api_key is None and base_url is None, (
"Don't provide api_key or base_url if you provide openai_client"
)
self._client: AsyncOpenAI | None = openai_client
else:
self._client = None
self._stored_api_key = api_key
self._stored_base_url = base_url
self._stored_organization = organization
self._stored_project = project
|
get_stt_model
get_stt_model(model_name: str | None) -> STTModel
Get a speech-to-text model by name.
引数:
| 名前 |
タイプ |
デスクリプション |
デフォルト |
model_name
|
str | None
|
The name of the model to get.
|
必須
|
戻り値:
| タイプ |
デスクリプション |
STTModel
|
The speech-to-text model.
|
ソースコード位置: src/agents/voice/models/openai_model_provider.py
| def get_stt_model(self, model_name: str | None) -> STTModel:
"""Get a speech-to-text model by name.
Args:
model_name: The name of the model to get.
Returns:
The speech-to-text model.
"""
return OpenAISTTModel(model_name or DEFAULT_STT_MODEL, self._get_client())
|
get_tts_model
get_tts_model(model_name: str | None) -> TTSModel
Get a text-to-speech model by name.
引数:
| 名前 |
タイプ |
デスクリプション |
デフォルト |
model_name
|
str | None
|
The name of the model to get.
|
必須
|
戻り値:
| タイプ |
デスクリプション |
TTSModel
|
The text-to-speech model.
|
ソースコード位置: src/agents/voice/models/openai_model_provider.py
| def get_tts_model(self, model_name: str | None) -> TTSModel:
"""Get a text-to-speech model by name.
Args:
model_name: The name of the model to get.
Returns:
The text-to-speech model.
"""
return OpenAITTSModel(model_name or DEFAULT_TTS_MODEL, self._get_client())
|