跳转至

OpenAIVoiceModelProvider

OpenAIVoiceModelProvider

Bases: VoiceModelProvider

使用 OpenAI 模型的语音模型提供者。

Source code in agents/voice/models/openai_model_provider.py
class OpenAIVoiceModelProvider(VoiceModelProvider):
    """使用 OpenAI 模型的语音模型提供者。"""

    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:
        """创建一个新的 OpenAI 语音模型提供者。

        参数:
            api_key: 用于 OpenAI 客户端的 API 密钥。如果未提供,则使用默认的 API 密钥。
            base_url: 用于 OpenAI 客户端的基础 URL。如果未提供,则使用默认的基础 URL。
            openai_client: 可选的 OpenAI 客户端。如果未提供,则会使用 api_key 和 base_url 创建一个新的 OpenAI 客户端。
            organization: 用于 OpenAI 客户端的组织。
            project: 用于 OpenAI 客户端的项目。
        """
        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:
        """根据名称获取语音转文本模型。

        参数:
            model_name: 要获取的模型名称。

        返回:
            语音转文本模型。
        """
        return OpenAISTTModel(model_name or DEFAULT_STT_MODEL, self._get_client())

    def get_tts_model(self, model_name: str | None) -> TTSModel:
        """根据名称获取文本转语音模型。

        参数:
            model_name: 要获取的模型名称。

        返回:
            文本转语音模型。
        """
        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

创建一个新的 OpenAI 语音模型提供者。

参数

api_key: 用于 OpenAI 客户端的 API 密钥。如果未提供,则使用默认的 API 密钥。 base_url: 用于 OpenAI 客户端的基础 URL。如果未提供,则使用默认的基础 URL。 openai_client: 可选的 OpenAI 客户端。如果未提供,则会使用 api_key 和 base_url 创建一个新的 OpenAI 客户端。 organization: 用于 OpenAI 客户端的组织。 project: 用于 OpenAI 客户端的项目。

Source code in 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:
    """创建一个新的 OpenAI 语音模型提供者。

    参数:
        api_key: 用于 OpenAI 客户端的 API 密钥。如果未提供,则使用默认的 API 密钥。
        base_url: 用于 OpenAI 客户端的基础 URL。如果未提供,则使用默认的基础 URL。
        openai_client: 可选的 OpenAI 客户端。如果未提供,则会使用 api_key 和 base_url 创建一个新的 OpenAI 客户端。
        organization: 用于 OpenAI 客户端的组织。
        project: 用于 OpenAI 客户端的项目。
    """
    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

根据名称获取语音转文本模型。

参数

model_name: 要获取的模型名称。

返回

语音转文本模型。

Source code in agents/voice/models/openai_model_provider.py
def get_stt_model(self, model_name: str | None) -> STTModel:
    """根据名称获取语音转文本模型。

    参数:
        model_name: 要获取的模型名称。

    返回:
        语音转文本模型。
    """
    return OpenAISTTModel(model_name or DEFAULT_STT_MODEL, self._get_client())

get_tts_model

get_tts_model(model_name: str | None) -> TTSModel

根据名称获取文本转语音模型。

参数

model_name: 要获取的模型名称。

返回

文本转语音模型。

Source code in agents/voice/models/openai_model_provider.py
def get_tts_model(self, model_name: str | None) -> TTSModel:
    """根据名称获取文本转语音模型。

    参数:
        model_name: 要获取的模型名称。

    返回:
        文本转语音模型。
    """
    return OpenAITTSModel(model_name or DEFAULT_TTS_MODEL, self._get_client())