camel.models 包

本页内容

camel.models 包#

子模块#

camel.models.anthropic_model 模块#

class camel.models.anthropic_model.AnthropicModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Anthropic API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于CLAUDE_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入openai.ChatCompletion.create()。如果 None,将使用AnthropicConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于与Anthropic服务进行身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – Anthropic服务的URL地址。 (默认值: https://api.anthropic.com/v1/)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用AnthropicTokenCounter。(默认值: None)

  • timeout (可选[float], 可选) - API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否适用于anthropic模型后端。

Raises:

ValueError – 如果模型配置字典包含任何Anthropic API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.azure_openai_model 模块#

class camel.models.azure_openai_model.AzureOpenAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, timeout: float | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, api_version: str | None = None, azure_deployment_name: str | None = None)[来源]#

基类: BaseModelBackend

Azure OpenAI API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,GPT_*系列中的一种。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ChatGPTConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于OpenAI服务身份验证的API密钥。(默认值: None)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • api_version (Optional[str], optional) – 模型的API版本。 (default: None)

  • azure_deployment_name (Optional[str], optional) – 部署Azure模型时选择的部署名称。(默认: None)

  • token_counter (可选[BaseTokenCounter], 可选) - 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

https://learn.microsoft.com/en-us/azure/ai-services/openai/

check_model_config()[来源]#

检查模型配置是否包含任何Azure OpenAI API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何Azure OpenAI API未预期的参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次都会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.base_model 模块#

class camel.models.base_model.BaseModelBackend(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: ABC

不同模型后端的基础类。 可能是OpenAI API、本地LLM、单元测试的存根等。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个配置字典。(默认: {})

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) - API调用的超时时间值,单位为秒。(默认值: None)

async arun(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], response_format: Type[BaseModel] | None = None, tools: List[Dict[str, Any]] | None = None) ChatCompletion | AsyncStream[ChatCompletionChunk][来源]#

异步运行查询到后端模型。

Parameters:
  • messages (List[OpenAIMessage]) – 以OpenAI API格式存储聊天历史记录的消息列表。

  • response_format (Optional[Type[BaseModel]]) – 模型要使用的响应格式。(默认: None)

  • 工具 (可选[列表[工具]]) - 用于此请求模型的工具模式。将覆盖模型配置中指定的工具(但不会更改配置)。 (默认值: None)

Returns:

在非流模式下是ChatCompletion,或者在流模式下是AsyncStream[ChatCompletionChunk]

Return type:

联合[ChatCompletion, 异步流[ChatCompletionChunk]]

abstract check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

count_tokens_from_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) int[来源]#

使用特定的分词器计算消息中的令牌数量。

Parameters:

messages (List[Dict]) – 符合OpenAI API格式的聊天历史消息列表

Returns:

消息中的令牌数量。

Return type:

int

preprocess_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam][来源]#

在发送到模型API之前预处理消息。 移除助手和用户消息中的思考内容。 如果检测到工具,会自动格式化消息以支持并行工具调用。

Parameters:

messages (List[OpenAIMessage]) – 原始消息列表。

Returns:

预处理后的消息

Return type:

列表[OpenAI消息]

run(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], *args, **kwargs)[来源]#
property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

abstract property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

property token_limit: int#

返回给定模型的最大token限制。

该方法从model_config_dict或模型的默认令牌限制中获取最大令牌限制。

Returns:

给定模型的最大token限制。

Return type:

int

class camel.models.base_model.ModelBackendMeta(name, bases, namespace)[来源]#

基类:ABCMeta

自动在run方法中预处理消息的元类。

自动包装任何继承自BaseModelBackend类的run方法,在消息发送到模型之前进行预处理(移除标签)。

camel.models.gemini_model 模块#

class camel.models.gemini_model.GeminiModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Gemini API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于Gemini系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用GeminiConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) – 用于Gemini服务身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Gemini服务的URL地址。 (默认值: https://generativelanguage.googleapis.com/v1beta/ openai/)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (可选[float], 可选) - API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Gemini API参数。

Raises:

ValueError – 如果模型配置字典包含任何Gemini API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.groq_model 模块#

class camel.models.groq_model.GroqModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

由Groq提供的LLM API,采用统一的BaseModelBackend接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个将被传入:obj:openai.ChatCompletion.create()的字典。 如果:obj:None,将使用GroqConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于验证Groq服务的API密钥。(默认: None).

  • url (可选[str], optional) – Groq服务的URL地址。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Groq API参数。但Groq API没有任何额外的参数需要检查。

Raises:

ValueError - 如果模型配置字典包含任何Groq API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.litellm_model 模块#

class camel.models.litellm_model.LiteLLMModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于与OpenAI兼容的LiteLLM后端的构造函数。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端服务的模型类型,例如GPT-3.5-turbo、Claude-2等。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:completion()。如果:obj:None, 将使用LiteLLMConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认值: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的令牌计数器。如果未提供,将使用LiteLLMTokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的LiteLLM API参数。

Raises:

ValueError – 如果模型配置字典包含任何意外参数。

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.mistral_model 模块#

class camel.models.mistral_model.MistralModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Mistral API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所使用的模型,属于MISTRAL_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:Mistral.chat.complete()。 如果:obj:None,将使用MistralConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于mistral服务认证的API密钥。(默认值: None)

  • url (可选[str], 可选) – 指向mistral服务的URL。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何传递给Mistral API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何Mistral API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式每次发送部分结果。目前不支持此功能。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

# 注意:由于当前安装mistral-commonmistralai并存的问题,暂时使用OpenAITokenCounter。 # 参考:mistralai/mistral-common#37

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.model_factory 模块#

class camel.models.model_factory.ModelFactory[来源]#

基类:object

后端模型的工厂。

Raises:

ValueError – 当提供的模型类型未知时触发。

static create(model_platform: ~camel.types.enums.ModelPlatformType, model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, api_key: str | None = None, url: str | None = None, timeout: int | None = None) BaseModelBackend[来源]#

创建指定类型的BaseModelBackend实例。

Parameters:
  • model_platform (ModelPlatformType) – 模型来源的平台。

  • model_type (Union[ModelType, str]) - 创建后端所用的模型。对于开源平台可以是str类型。

  • model_config_dict (Optional[Dict]) – 一个将被传入后端构造函数的字典。(默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的令牌计数器。如果未提供,当模型平台未提供官方令牌计数器时,将使用OpenAITokenCounter(ModelType.GPT_4O_MINI)。(默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间,单位为秒(默认值:None

Returns:

已初始化的后端。

Return type:

BaseModelBackend

Raises:

ValueError - 如果模型没有对应的后端。

classmethod create_from_json(filepath: str) BaseModelBackend[来源]#

从JSON配置文件创建并返回基础模型后端实例

Parameters:

filepath (str) – 包含模型配置的JSON文件路径。

Returns:

基于配置的模型后端实例

配置。

Return type:

BaseModelBackend

classmethod create_from_yaml(filepath: str) BaseModelBackend[来源]#

从YAML配置文件创建并返回一个模型基础后端实例。

Parameters:

filepath (str) – 包含模型配置的YAML文件路径。

Returns:

基于配置的模型后端实例

配置。

Return type:

BaseModelBackend

camel.models.nemotron_model 模块#

class camel.models.nemotron_model.NemotronModel(model_type: ~<unknown>.ModelType | str, api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

具备OpenAI兼容性的Nemotron模型API后端。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • api_key (Optional[str], optional) - 用于Nvidia服务身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Nvidia服务的URL地址。 (默认值: https://integrate.api.nvidia.com/v1)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

注意事项

Nemotron模型不支持像OpenAI那样的额外模型配置。

check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.ollama_model 模块#

class camel.models.ollama_model.OllamaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Ollama 服务接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。 如果:obj:None,将使用OllamaConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。Ollama不需要API密钥,如果设置了也会被忽略。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

ollama/ollama

check_model_config()[来源]#

检查模型配置是否包含任何与Ollama API不匹配的参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.open_source_model 模块#

class camel.models.openai_audio_models.OpenAIAudioModels(api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#

基类:BaseAudioModel

提供对OpenAI的文本转语音(TTS)和语音转文本(STT)模型的访问。

audio_question_answering(audio_file_path: str, question: str, model: str = 'gpt-4o-mini-audio-preview', **kwargs: Any) str[来源]#

直接使用音频内容回答问题。

Parameters:
  • audio_file_path (str) - 音频文件的路径。

  • question (str) – 关于音频内容要提问的问题。

  • model (str, optional) – 用于音频问答的模型。(默认: "gpt-4o-mini-audio-preview")

  • **kwargs (Any) – 传递给聊天补全API的额外关键字参数。

Returns:

模型对该问题的响应。

Return type:

字符串

Raises:

异常 – 如果在API调用过程中出现错误。

speech_to_text(audio_file_path: str, translate_into_english: bool = False, **kwargs: Any) str[来源]#

将语音音频转换为文本。

Parameters:
  • audio_file_path (str) – 音频文件路径,支持以下格式之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav或webm。

  • translate_into_english (bool, optional) – Whether to translate the speech into English. Defaults to False.

  • **kwargs (Any) – 传递给语音转文本(STT) API的额外关键字参数。

Returns:

输出文本。

Return type:

字符串

Raises:
  • ValueError - 如果音频文件格式不受支持。

  • Exception - 如果在STT API调用期间发生错误。

text_to_speech(input: str, *, model_type: AudioModelType = AudioModelType.TTS_1, voice: 语音类型 = VoiceType.ALLOY, storage_path: str | None = None, **kwargs: Any) List[HttpxBinaryResponseContent] | HttpxBinaryResponseContent[来源]#

使用OpenAI的TTS模型将文本转换为语音。该方法使用指定的模型和语音将给定的输入文本转换为语音。

Parameters:
  • input (str) - 要转换为语音的文本。

  • model_type (AudioModelType, optional) – 要使用的TTS模型。 默认为 AudioModelType.TTS_1

  • voice (VoiceType, optional) – 用于生成语音的声音类型。默认为 VoiceType.ALLOY

  • storage_path (str, optional) – 如果提供,用于存储生成的语音文件的本地路径,默认为 None

  • **kwargs (Any) – 传递给TTS API的额外参数。

Returns:

Union[List[_legacy_response.HttpxBinaryResponseContent],

_legacy_response.HttpxBinaryResponseContent]: 当输入字符超过4096时来自OpenAI的响应内容对象列表,当输入字符少于4096时则为单个响应内容。

Raises:

异常 – 如果在TTS API调用期间发生错误。

camel.models.openai_compatible_model 模块#

class camel.models.openai_compatible_model.OpenAICompatibleModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

支持OpenAI兼容性的模型后端构造函数。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用{}。(默认: None)

  • api_key (str) - 用于模型服务身份验证的API密钥。

  • url (str) – 模型服务的URL地址。

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

camel.models.openai_model 模块#

class camel.models.openai_model.OpenAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

在统一的BaseModelBackend接口中提供OpenAI API。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,GPT_*系列中的一种。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ChatGPTConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于OpenAI服务身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何OpenAI API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.reka_model 模块#

class camel.models.reka_model.RekaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Reka API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 为其创建后端的模型,属于REKA_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:Reka.chat.create()。如果为None, 将使用RekaConfig().as_dict()。(默认值: None)

  • api_key (Optional[str], optional) - 用于与Reka服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Reka服务的URL地址。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何传递给Reka API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何意外的Reka API参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

# 注意:暂时使用 OpenAITokenCounter

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.samba_model 模块#

class camel.models.samba_model.SambaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

SambaNova服务接口。

Parameters:
  • model_type (Union[ModelType, str]) – 创建SambaNova后端所使用的模型。通过SambaNova云支持模型列表见: https://community.sambanova.ai/t/supported-models/193。 通过SambaVerse API支持的模型列表见: https://sambaverse.sambanova.ai/models

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用SambaCloudAPIConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于SambaNova服务身份验证的API密钥。(默认: None)

  • url (可选[str], optional) – SambaNova服务的URL地址。 当前支持的SambaVerse API接口: "https://sambaverse.sambanova.ai/api/predict" 以及 SambaNova云服务: "https://api.sambanova.ai/v1" (默认值: https://api. sambanova.ai/v1)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何SambaNova API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何SambaNova API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.stub_model 模块#

class camel.models.stub_model.StubModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于单元测试的虚拟模型。

check_model_config()[来源]#

直接将参数检查传递给STUB模型。

model_type: UnifiedModelType = ModelType.STUB#
property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.stub_model.StubTokenCounter[来源]#

基类:BaseTokenCounter

count_tokens_from_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) int[来源]#

STUB模型的令牌计数,直接返回一个常量。

Parameters:

messages (List[OpenAIMessage]) – 以OpenAI API格式存储聊天历史记录的消息列表。

Returns:

一个常量,用于表示

消息中的令牌数量。

Return type:

int

decode(token_ids: List[int]) str[来源]#

将STUB模型的token ID解码回文本。

Parameters:

token_ids (List[int]) – 要解码的token ID列表。

Returns:

解码后的文本。

Return type:

字符串

encode(text: str) List[int][来源]#

将文本编码为STUB模型的令牌ID。

Parameters:

文本 (str) – 需要编码的文本。

Returns:

令牌ID列表。

Return type:

整数列表

camel.models.togetherai_model 模块#

class camel.models.togetherai_model.TogetherAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于与OpenAI兼容的Together AI后端的构造函数。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型类型,支持的模型可以在这里找到: https://docs.together.ai/docs/chat-models

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用TogetherAIConfig().as_dict()。 (默认值: None)

  • api_key (可选[str], 可选) - 用于与Together服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Together AI服务的URL地址。 如果未提供,将使用"https://api.together.xyz/v1"。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何针对TogetherAI API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何TogetherAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.vllm_model 模块#

class camel.models.vllm_model.VLLMModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

vLLM 服务接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用VLLMConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) - 用于模型服务认证的API密钥。vLLM不需要API密钥,如果设置了也会被忽略。(默认: None)

  • url (可选[str], optional) – 模型服务的URL地址。如果未提供,将使用"http://localhost:8000/v1"作为默认值。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html

check_model_config()[来源]#

检查模型配置是否包含任何意外的vLLM API参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

camel.models.zhipuai_model 模块#

class camel.models.zhipuai_model.ZhipuAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

在统一的BaseModelBackend接口中集成ZhipuAI API。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型,属于GLM_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ZhipuAIConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于认证ZhipuAI服务的API密钥。(默认值: None)

  • url (可选[str], 可选) – ZhipuAI服务的URL地址。 (默认值: https://open.bigmodel.cn/api/paas/v4/)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何OpenAI API的意外参数。

Raises:

ValueError – 如果模型配置字典中包含任何ZhipuAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

模块内容#

class camel.models.AIMLModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

AIML API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典 将被传递给OpenAI客户端。如果为None, 将使用AIMLConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) - 用于与AIML服务进行身份验证的API密钥。(默认值: None)

  • url (Optional[str], optional) – AIML服务的URL。如果未提供,将使用https://api.aimlapi.com/v1。(默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的AIML API参数。

Raises:

ValueError - 如果模型配置字典包含任何AIML API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.AnthropicModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Anthropic API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于CLAUDE_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入openai.ChatCompletion.create()。如果 None,将使用AnthropicConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于与Anthropic服务进行身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – Anthropic服务的URL地址。 (默认值: https://api.anthropic.com/v1/)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用AnthropicTokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否适用于anthropic模型后端。

Raises:

ValueError – 如果模型配置字典包含任何Anthropic API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.AzureOpenAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, timeout: float | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, api_version: str | None = None, azure_deployment_name: str | None = None)[来源]#

基类: BaseModelBackend

Azure OpenAI API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,GPT_*系列中的一种。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ChatGPTConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于OpenAI服务身份验证的API密钥。(默认值: None)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • api_version (Optional[str], optional) – 模型的API版本。 (default: None)

  • azure_deployment_name (Optional[str], optional) – 部署Azure模型时选择的部署名称。(默认: None)

  • token_counter (可选[BaseTokenCounter], 可选) - 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

https://learn.microsoft.com/en-us/azure/ai-services/openai/

check_model_config()[来源]#

检查模型配置是否包含任何Azure OpenAI API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何Azure OpenAI API未预期的参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次都会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.BaseAudioModel(api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#

基类: ABC

提供文本转语音(TTS)和语音转文本(STT)功能的音频模型基类。

abstract speech_to_text(audio_file_path: str, **kwargs: Any) str[来源]#

将语音音频转换为文本。

Parameters:
  • audio_file_path (str) – 要转录的音频文件路径。

  • **kwargs (Any) – 传递给语音转文本(STT) API的额外关键字参数。

Returns:

转录的文本。

Return type:

字符串

abstract text_to_speech(input: str, *, storage_path: str, **kwargs: Any) Any[来源]#

将文本转换为语音。

Parameters:
  • input (str) - 要转换为语音的文本。

  • storage_path (str) – 存储生成的语音文件的本地路径。

  • **kwargs (Any) – 传递给TTS API的额外参数。

Returns:

TTS API的响应,可能因

实现方式而异。

Return type:

任何

class camel.models.BaseModelBackend(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: ABC

不同模型后端的基础类。 可能是OpenAI API、本地LLM、单元测试的存根等。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个配置字典。(默认: {})

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) - API调用的超时时间值,单位为秒。(默认值: None)

async arun(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], response_format: Type[BaseModel] | None = None, tools: List[Dict[str, Any]] | None = None) ChatCompletion | AsyncStream[ChatCompletionChunk][来源]#

异步运行查询到后端模型。

Parameters:
  • messages (List[OpenAIMessage]) – 以OpenAI API格式存储聊天历史记录的消息列表。

  • response_format (Optional[Type[BaseModel]]) – 模型要使用的响应格式。(默认: None)

  • 工具 (可选[列表[工具]]) - 用于此请求模型的工具模式。将覆盖模型配置中指定的工具(但不会更改配置)。 (默认值: None)

Returns:

在非流模式下是ChatCompletion,或者在流模式下是AsyncStream[ChatCompletionChunk]

Return type:

联合[ChatCompletion, 异步流[ChatCompletionChunk]]

abstract check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

count_tokens_from_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) int[来源]#

使用特定的分词器计算消息中的令牌数量。

Parameters:

messages (List[Dict]) – 符合OpenAI API格式的聊天历史消息列表

Returns:

消息中的令牌数量。

Return type:

int

preprocess_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam][来源]#

在发送到模型API之前预处理消息。 移除助手和用户消息中的思考内容。 如果检测到工具,会自动格式化消息以支持并行工具调用。

Parameters:

messages (List[OpenAIMessage]) – 原始消息列表。

Returns:

预处理后的消息

Return type:

列表[OpenAI消息]

run(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], *args, **kwargs)[来源]#
property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

abstract property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

property token_limit: int#

返回给定模型的最大token限制。

该方法从model_config_dict或模型的默认令牌限制中获取最大令牌限制。

Returns:

给定模型的最大token限制。

Return type:

int

class camel.models.CohereModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Cohere API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于Cohere系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:cohere.ClientV2().chat()。如果 None,将使用CohereConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) – 用于与Cohere服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], 可选) – Cohere服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Cohere API参数。

Raises:

ValueError - 如果模型配置字典中包含任何Cohere API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式每次发送部分结果。目前不支持此功能。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.DeepSeekModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

DeepSeek API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将作为参数传入:obj:openai.ChatCompletion.create()。如果 None,则会使用DeepSeekConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于DeepSeek服务认证的API密钥。(默认值: None)

  • url (可选[str], optional) – DeepSeek服务的URL地址。 (默认值: https://api.deepseek.com)

  • token_counter (可选[BaseTokenCounter], 可选) - 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

https://api-docs.deepseek.com/

check_model_config()[来源]#

检查模型配置是否包含任何DeepSeek API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何DeepSeek API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.FishAudioModel(api_key: str | None = None, url: str | None = None)[来源]#

基类:BaseAudioModel

提供对FishAudio的文本转语音(TTS)和语音转文本(STT)模型的访问。

speech_to_text(audio_file_path: str, language: str | None = None, ignore_timestamps: bool | None = None, **kwargs: Any) str[来源]#

将音频文件中的语音转换为文本。

Parameters:
  • audio_file_path (str) – 要转录的音频文件路径。

  • language (Optional[str]) – 音频的语言。(默认: None)

  • ignore_timestamps (可选[布尔值]) - 是否忽略时间戳。 (默认值: None)

  • **kwargs (Any) – 传递给STT请求的附加参数。

Returns:

音频转录的文本。

Return type:

字符串

Raises:

FileNotFoundError – 如果找不到音频文件。

text_to_speech(input: str, *, storage_path: str | None = None, reference_id: str | None = None, reference_audio: str | None = None, reference_audio_text: str | None = None, **kwargs: Any) Any[来源]#

将文本转换为语音并将输出保存到文件。

Parameters:
  • input (str) – 需要转换为语音的文本。

  • storage_path (可选[str]) - 生成语音文件的保存路径。(默认: None)

  • reference_id (Optional[str]) – 一个可选的要与请求关联的参考ID。(默认: None)

  • reference_audio (Optional[str]) – 参考语音的音频文件路径。(默认: None)

  • reference_audio_text (可选[str]) - 参考音频的文本。 (默认: None)

  • **kwargs (Any) - 传递给TTS请求的附加参数。

Raises:
  • FileNotFoundError - 如果找不到参考音频文件。

  • ValueError - 如果未提供storage_path,或者提供了reference_audio但没有提供reference_audio_text。

class camel.models.GeminiModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Gemini API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于Gemini系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用GeminiConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) – 用于Gemini服务身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Gemini服务的URL地址。 (默认值: https://generativelanguage.googleapis.com/v1beta/ openai/)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Gemini API参数。

Raises:

ValueError – 如果模型配置字典包含任何Gemini API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.GroqModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

由Groq提供的LLM API,采用统一的BaseModelBackend接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个将被传入:obj:openai.ChatCompletion.create()的字典。 如果:obj:None,将使用GroqConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于验证Groq服务的API密钥。(默认: None).

  • url (可选[str], optional) – Groq服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Groq API参数。但Groq API没有任何额外的参数需要检查。

Raises:

ValueError - 如果模型配置字典包含任何Groq API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.InternLMModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

在统一的BaseModelBackend接口中实现InternLM API。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于InternLM系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用InternLMConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) – 用于与InternLM服务进行身份验证的API密钥。(默认: None)

  • url (可选[str], optional) – InternLM服务的URL地址。 (默认值: https://internlm-chat.intern-ai.org.cn/puyu/api/v1)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何InternLM API的意外参数。

Raises:

ValueError – 如果模型配置字典包含任何InternLM API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.LiteLLMModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于与OpenAI兼容的LiteLLM后端的构造函数。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端服务的模型类型,例如GPT-3.5-turbo、Claude-2等。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:completion()。如果:obj:None, 将使用LiteLLMConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认值: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的令牌计数器。如果未提供,将使用LiteLLMTokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的LiteLLM API参数。

Raises:

ValueError – 如果模型配置字典包含任何意外参数。

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.MistralModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Mistral API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所使用的模型,属于MISTRAL_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:Mistral.chat.complete()。 如果:obj:None,将使用MistralConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于mistral服务认证的API密钥。(默认值: None)

  • url (可选[str], 可选) – 指向mistral服务的URL。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何传递给Mistral API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何Mistral API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式每次发送部分结果。目前不支持此功能。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

# 注意:由于当前安装mistral-commonmistralai并存的问题,暂时使用OpenAITokenCounter。 # 参考:mistralai/mistral-common#37

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.ModelFactory[来源]#

基类:object

后端模型的工厂。

Raises:

ValueError – 当提供的模型类型未知时触发。

static create(model_platform: ~camel.types.enums.ModelPlatformType, model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, api_key: str | None = None, url: str | None = None, timeout: int | None = None) BaseModelBackend[来源]#

创建指定类型的BaseModelBackend实例。

Parameters:
  • model_platform (ModelPlatformType) – 模型来源的平台。

  • model_type (Union[ModelType, str]) - 创建后端所用的模型。对于开源平台可以是str类型。

  • model_config_dict (Optional[Dict]) – 一个将被传入后端构造函数的字典。(默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的令牌计数器。如果未提供,当模型平台未提供官方令牌计数器时,将使用OpenAITokenCounter(ModelType.GPT_4O_MINI)。(默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间,单位为秒(默认值:None

Returns:

已初始化的后端。

Return type:

BaseModelBackend

Raises:

ValueError - 如果模型没有对应的后端。

classmethod create_from_json(filepath: str) BaseModelBackend[来源]#

从JSON配置文件创建并返回基础模型后端实例

Parameters:

filepath (str) – 包含模型配置的JSON文件路径。

Returns:

基于配置的模型后端实例

配置。

Return type:

BaseModelBackend

classmethod create_from_yaml(filepath: str) BaseModelBackend[来源]#

从YAML配置文件创建并返回一个模型基础后端实例。

Parameters:

filepath (str) – 包含模型配置的YAML文件路径。

Returns:

基于配置的模型后端实例

配置。

Return type:

BaseModelBackend

class camel.models.ModelManager(models: BaseModelBackend | List[BaseModelBackend], scheduling_strategy: str = 'round_robin')[来源]#

基类:object

ModelManager 从提供的列表中选择模型。 模型根据定义的策略进行选取。

Parameters:
add_strategy(name: str, strategy_fn: Callable)[来源]#
Add a scheduling strategy method provided by user in case when none

现有策略的适配情况。 当提供自定义策略时,它将被设置为 "self.scheduling_strategy"属性。

Parameters:
  • name (str) – 策略的名称。

  • strategy_fn (Callable) – 调度策略函数。

always_first() BaseModelBackend[来源]#

总是返回 self.models 中的第一个模型。

Returns:

用于处理传入消息的BaseModelBackend。

async arun(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], response_format: Type[BaseModel] | None = None, tools: List[Dict[str, Any]] | None = None) ChatCompletion | AsyncStream[ChatCompletionChunk][来源]#
Process a list of messages by selecting a model based on

调度策略。 将整个消息列表发送到所选模型, 并返回单个响应。

Parameters:

消息 (列表[OpenAIMessage]) – 采用OpenAI API格式的聊天历史消息列表。

Returns:

在非流模式下是ChatCompletion,或者在流模式下是AsyncStream[ChatCompletionChunk]

Return type:

联合[ChatCompletion, 异步流[ChatCompletionChunk]]

property current_model_index: int#

返回当前模型在self.models列表中的索引。

Returns:

当前模型在给定模型列表中的索引。

Return type:

int

property model_config_dict: Dict[str, Any]#

返回当前模型的model_config_dict。

Returns:

当前模型的配置字典。

Return type:

字典[字符串, 任意类型]

property model_type: UnifiedModelType#

当前模型的返回类型。

Returns:

当前模型类型。

Return type:

联合类型[ModelType, 字符串]

property num_models: int#

返回管理器中的模型数量。

Returns:

模型管理器中可用的模型数量。

Return type:

int

random_model() BaseModelBackend[来源]#

从self.models列表中返回随机模型。

Returns:

用于处理传入消息的BaseModelBackend。

round_robin() BaseModelBackend[来源]#

以简单的轮询方式逐个返回模型。

Returns:

用于处理传入消息的BaseModelBackend。

run(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], response_format: Type[BaseModel] | None = None, tools: List[Dict[str, Any]] | None = None) ChatCompletion | Stream[ChatCompletionChunk][来源]#
Process a list of messages by selecting a model based on

调度策略。 将整个消息列表发送到所选模型, 并返回单个响应。

Parameters:

消息 (列表[OpenAIMessage]) – 采用OpenAI API格式的聊天历史消息列表。

Returns:

ChatCompletion 在非流模式下,或 Stream[ChatCompletionChunk] 在流模式下。

Return type:

联合类型[ChatCompletion, 流[ChatCompletionChunk]]

property token_counter: BaseTokenCounter#

返回当前模型的token_counter。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

property token_limit#

返回当前模型的最大令牌限制。

该方法从model_config_dict或模型的默认令牌限制中获取最大令牌限制。

Returns:

给定模型的最大token限制。

Return type:

int

exception camel.models.ModelProcessingError[来源]#

基类: Exception

在模型处理过程中发生错误时引发。

class camel.models.ModelScopeModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

ModelScope API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型类型,属于ModelScope系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ModelScopeConfig().as_dict()。 (默认: None)

  • api_key (可选[str], optional) – 用于ModelScope服务认证的MODELSCOPE_SDK_TOKEN。(默认值: None) 更多详情请参考以下链接: https://modelscope.cn/my/myaccesstoken

  • url (可选[str], optional) – ModelScope服务的URL地址。 (默认值: https://api-inference.modelscope.cn/v1/)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何ModelScope API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何ModelScope API不支持的参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.MoonshotModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Moonshot API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型类型,属于Moonshot系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入openai.ChatCompletion.create()。如果 None,将使用MoonshotConfig().as_dict()。 (默认值: None)

  • api_key (可选[str], 可选) - 用于与Moonshot服务进行身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – Moonshot服务的URL地址。 (默认值: https://api.moonshot.cn/v1)

  • token_counter (可选[BaseTokenCounter], optional) – 用于该模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4)。 (默认: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的Moonshot API参数。

Raises:

ValueError – 如果模型配置字典中包含任何Moonshot API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.NemotronModel(model_type: ~<unknown>.ModelType | str, api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

具备OpenAI兼容性的Nemotron模型API后端。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • api_key (Optional[str], optional) - 用于Nvidia服务身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Nvidia服务的URL地址。 (默认值: https://integrate.api.nvidia.com/v1)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

注意事项

Nemotron模型不支持像OpenAI那样的额外模型配置。

check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.NvidiaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

NVIDIA API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于NVIDIA系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用NvidiaConfig().as_dict()。 (默认: None)

  • api_key (可选[str], 可选) - 用于与NVIDIA服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – NVIDIA服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], optional) – 用于该模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4)。 (默认: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何意外的NVIDIA API参数。

Raises:

ValueError - 如果模型配置字典中包含任何NVIDIA API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.OllamaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Ollama 服务接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。 如果:obj:None,将使用OllamaConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于模型服务认证的API密钥。Ollama不需要API密钥,如果设置了也会被忽略。(默认: None)

  • url (可选[str], 可选) – 模型服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

ollama/ollama

check_model_config()[来源]#

检查模型配置是否包含任何与Ollama API不匹配的参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.OpenAIAudioModels(api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#

基类:BaseAudioModel

提供对OpenAI的文本转语音(TTS)和语音转文本(STT)模型的访问。

audio_question_answering(audio_file_path: str, question: str, model: str = 'gpt-4o-mini-audio-preview', **kwargs: Any) str[来源]#

直接使用音频内容回答问题。

Parameters:
  • audio_file_path (str) - 音频文件的路径。

  • question (str) – 关于音频内容要提问的问题。

  • model (str, optional) – 用于音频问答的模型。(默认: "gpt-4o-mini-audio-preview")

  • **kwargs (Any) – 传递给聊天补全API的额外关键字参数。

Returns:

模型对该问题的响应。

Return type:

字符串

Raises:

异常 – 如果在API调用过程中出现错误。

speech_to_text(audio_file_path: str, translate_into_english: bool = False, **kwargs: Any) str[来源]#

将语音音频转换为文本。

Parameters:
  • audio_file_path (str) – 音频文件路径,支持以下格式之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav或webm。

  • translate_into_english (bool, optional) – Whether to translate the speech into English. Defaults to False.

  • **kwargs (Any) – 传递给语音转文本(STT) API的额外关键字参数。

Returns:

输出文本。

Return type:

字符串

Raises:
  • ValueError - 如果音频文件格式不受支持。

  • Exception - 如果在STT API调用期间发生错误。

text_to_speech(input: str, *, model_type: AudioModelType = AudioModelType.TTS_1, voice: 语音类型 = VoiceType.ALLOY, storage_path: str | None = None, **kwargs: Any) List[HttpxBinaryResponseContent] | HttpxBinaryResponseContent[来源]#

使用OpenAI的TTS模型将文本转换为语音。该方法使用指定的模型和语音将给定的输入文本转换为语音。

Parameters:
  • input (str) - 要转换为语音的文本。

  • model_type (AudioModelType, optional) – 要使用的TTS模型。 默认为 AudioModelType.TTS_1

  • voice (VoiceType, optional) – 用于生成语音的声音类型。默认为 VoiceType.ALLOY

  • storage_path (str, optional) – 如果提供,用于存储生成的语音文件的本地路径,默认为 None

  • **kwargs (Any) – 传递给TTS API的额外参数。

Returns:

Union[List[_legacy_response.HttpxBinaryResponseContent],

_legacy_response.HttpxBinaryResponseContent]: 当输入字符超过4096时来自OpenAI的响应内容对象列表,当输入字符少于4096时则为单个响应内容。

Raises:

异常 – 如果在TTS API调用期间发生错误。

class camel.models.OpenAICompatibleModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

支持OpenAI兼容性的模型后端构造函数。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用{}。(默认: None)

  • api_key (str) - 用于模型服务身份验证的API密钥。

  • url (str) – 模型服务的URL地址。

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查输入模型配置是否包含意外的参数

Raises:

ValueError – 如果模型配置字典包含该模型类无法识别的任何参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.OpenAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

在统一的BaseModelBackend接口中提供OpenAI API。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,GPT_*系列中的一种。

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ChatGPTConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于OpenAI服务身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何OpenAI API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.OpenRouterModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

由OpenRouter提供的LLM API,采用统一的BaseModelBackend接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个将被传入:obj:openai.ChatCompletion.create()的字典。 如果:obj:None,将使用GroqConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于OpenRouter服务身份验证的API密钥。(默认值: None)。

  • url (可选[str], 可选) – OpenRouter服务的URL地址。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何OpenRouter API的意外参数。但OpenRouter API没有任何额外参数需要检查。

Raises:

ValueError - 如果模型配置字典中包含任何OpenRouter API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.PPIOModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于与OpenAI兼容的PPIO后端的构造函数。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型类型,支持的模型可以在这里找到: https://ppinfra.com/model-api/product/llm-api?utm_source=github_owl

  • model_config_dict (Optional[Dict[str, Any]], optional) - 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用PPIOConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于与PPIO服务进行身份验证的API密钥。(默认: None)

  • url (可选[str], 可选) – PPIO服务的URL地址。 如果未提供,将使用"https://api.ppinfra.com/v3/openai"。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何PPIO API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何PPIO API未预期的参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.QwenModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Qwen API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 创建后端所用的模型,属于Qwen系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用QwenConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) – 用于与Qwen服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Qwen服务的URL地址。 (默认值: https://dashscope.aliyuncs.com/compatible-mode/v1)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何Qwen API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何Qwen API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.RekaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Reka API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 为其创建后端的模型,属于REKA_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:Reka.chat.create()。如果为None, 将使用RekaConfig().as_dict()。(默认值: None)

  • api_key (Optional[str], optional) - 用于与Reka服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Reka服务的URL地址。 (默认值: None)

  • token_counter (Optional[BaseTokenCounter], optional) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何传递给Reka API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何意外的Reka API参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

# 注意:暂时使用 OpenAITokenCounter

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.SGLangModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

SGLang服务接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用SGLangConfig().as_dict()。 (默认: None)

  • api_key (可选[str], optional) - 用于模型服务认证的API密钥。SGLang不需要API密钥,如果设置将被忽略。(默认值: None)

  • url (Optional[str], optional) – 模型服务的URL地址。如果未提供,将使用"http://127.0.0.1:30000/v1"。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

Reference: https://sgl-project.github.io/backend/openai_api_completions.html

check_model_config()[来源]#

检查模型配置是否包含任何SGLang API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

cleanup()[来源]#

终止服务器进程并清理资源。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.SambaModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

SambaNova服务接口。

Parameters:
  • model_type (Union[ModelType, str]) – 创建SambaNova后端所使用的模型。通过SambaNova云支持模型列表见: https://community.sambanova.ai/t/supported-models/193。 通过SambaVerse API支持的模型列表见: https://sambaverse.sambanova.ai/models

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用SambaCloudAPIConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于SambaNova服务身份验证的API密钥。(默认: None)

  • url (可选[str], optional) – SambaNova服务的URL地址。 当前支持的SambaVerse API接口: "https://sambaverse.sambanova.ai/api/predict" 以及 SambaNova云服务: "https://api.sambanova.ai/v1" (默认值: https://api. sambanova.ai/v1)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何SambaNova API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何SambaNova API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.SiliconFlowModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

SiliconFlow API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传递给OpenAI客户端。如果为None, 将使用SiliconFlowConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) – 用于SiliconFlow服务认证的API密钥。(默认: None)

  • url (可选[str], 可选) – SiliconFlow服务的URL。如果未提供,将使用https://api.siliconflow.cn/v1/。 (默认: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何SiliconFlow API的意外参数。

Raises:

ValueError – 如果模型配置字典中包含任何SiliconFlow API不支持的参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.StubModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于单元测试的虚拟模型。

check_model_config()[来源]#

直接将参数检查传递给STUB模型。

model_type: UnifiedModelType = ModelType.STUB#
property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.TogetherAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

用于与OpenAI兼容的Together AI后端的构造函数。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型类型,支持的模型可以在这里找到: https://docs.together.ai/docs/chat-models

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用TogetherAIConfig().as_dict()。 (默认值: None)

  • api_key (可选[str], 可选) - 用于与Together服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – Together AI服务的URL地址。 如果未提供,将使用"https://api.together.xyz/v1"。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何针对TogetherAI API的意外参数。

Raises:

ValueError - 如果模型配置字典中包含任何TogetherAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.VLLMModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

vLLM 服务接口。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 该字典将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用VLLMConfig().as_dict()。 (默认: None)

  • api_key (Optional[str], optional) - 用于模型服务认证的API密钥。vLLM不需要API密钥,如果设置了也会被忽略。(默认: None)

  • url (可选[str], optional) – 模型服务的URL地址。如果未提供,将使用"http://localhost:8000/v1"作为默认值。 (默认值: None)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

参考文献

https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html

check_model_config()[来源]#

检查模型配置是否包含任何意外的vLLM API参数。

Raises:

ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.VolcanoModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: OpenAICompatibleModel

火山引擎API统一封装在BaseModelBackend接口中。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个将被传入API调用的字典。如果为None,将使用{}。(默认值: None)

  • api_key (可选[str], optional) - 用于与火山引擎服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], 可选) – 火山引擎服务的URL地址。 (默认: https://ark.cn-beijing.volces.com/api/v3)

  • token_counter (可选[BaseTokenCounter], 可选) - 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter。(默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否适用于Volcano模型后端。

Raises:

ValueError - 如果模型配置字典中包含任何意外的Volcano API参数。

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

BaseTokenCounter

class camel.models.YiModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

Yi API 统一在 BaseModelBackend 接口中。

Parameters:
  • model_type (Union[ModelType, str]) – 用于创建后端的模型,属于Yi系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用YiConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于与Yi服务进行身份验证的API密钥。(默认值: None)

  • url (可选[str], optional) – 指向Yi服务的URL地址。 (默认值: https://api.lingyiwanwu.com/v1)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何针对Yi API的意外参数。

Raises:

ValueError - 如果模型配置字典包含任何Yi API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter

class camel.models.ZhipuAIModel(model_type: ~<unknown>.ModelType | str, model_config_dict: ~typing.Dict[str, ~typing.Any] | None = None, api_key: str | None = None, url: str | None = None, token_counter: ~camel.utils.token_counting.BaseTokenCounter | None = None, timeout: float | None = None)[来源]#

基类: BaseModelBackend

在统一的BaseModelBackend接口中集成ZhipuAI API。

Parameters:
  • model_type (Union[ModelType, str]) - 创建后端所用的模型,属于GLM_*系列之一。

  • model_config_dict (Optional[Dict[str, Any]], optional) – 一个字典, 将被传入:obj:openai.ChatCompletion.create()。如果 None,将使用ZhipuAIConfig().as_dict()。 (默认值: None)

  • api_key (Optional[str], optional) - 用于认证ZhipuAI服务的API密钥。(默认值: None)

  • url (可选[str], 可选) – ZhipuAI服务的URL地址。 (默认值: https://open.bigmodel.cn/api/paas/v4/)

  • token_counter (可选[BaseTokenCounter], 可选) – 用于模型的token计数器。如果未提供,将使用OpenAITokenCounter( ModelType.GPT_4O_MINI)。 (默认值: None)

  • timeout (Optional[float], optional) – API调用的超时时间(以秒为单位)。 如果未提供,将回退到MODEL_TIMEOUT环境变量或默认为180秒。 (默认值: None)

check_model_config()[来源]#

检查模型配置是否包含任何OpenAI API的意外参数。

Raises:

ValueError – 如果模型配置字典中包含任何ZhipuAI API不支持的意外参数。

property stream: bool#

返回模型是否处于流模式,该模式下每次会发送部分结果。

Returns:

模型是否处于流模式。

Return type:

布尔值

property token_counter: BaseTokenCounter#

初始化模型后端的token计数器。

Returns:

该标记计数器遵循模型的

标记化风格。

Return type:

OpenAITokenCounter