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)[来源]#
基类:
BaseModelBackendAnthropic 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:
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)[来源]#
基类:
BaseModelBackendAzure 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:
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]]
- 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:
- property token_limit: int#
返回给定模型的最大token限制。
该方法从model_config_dict或模型的默认令牌限制中获取最大令牌限制。
- Returns:
给定模型的最大token限制。
- Return type:
int
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)[来源]#
基类:
BaseModelBackendGemini 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:
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:
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)
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
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)[来源]#
基类:
BaseModelBackendMistral 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-common与mistralai并存的问题,暂时使用OpenAITokenCounter。 # 参考:mistralai/mistral-common#37
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
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:
- Raises:
ValueError - 如果模型没有对应的后端。
- classmethod create_from_json(filepath: str) BaseModelBackend[来源]#
从JSON配置文件创建并返回基础模型后端实例
- Parameters:
filepath (str) – 包含模型配置的JSON文件路径。
- Returns:
- 基于配置的模型后端实例
配置。
- Return type:
- classmethod create_from_yaml(filepath: str) BaseModelBackend[来源]#
从YAML配置文件创建并返回一个模型基础后端实例。
- Parameters:
filepath (str) – 包含模型配置的YAML文件路径。
- Returns:
- 基于配置的模型后端实例
配置。
- Return type:
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那样的额外模型配置。
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
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)[来源]#
基类:
BaseModelBackendOllama 服务接口。
- 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)
参考文献
- check_model_config()[来源]#
检查模型配置是否包含任何与Ollama API不匹配的参数。
- Raises:
ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。
- property stream: bool#
返回模型是否处于流模式,该模式下每次会发送部分结果。
- Returns:
模型是否处于流模式。
- Return type:
布尔值
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
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)[来源]#
-
提供对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)
- property stream: bool#
返回模型是否处于流模式,该模式下每次会发送部分结果。
- Returns:
模型是否处于流模式。
- Return type:
布尔值
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
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:
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)[来源]#
基类:
BaseModelBackendReka 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:
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)[来源]#
基类:
BaseModelBackendSambaNova服务接口。
- 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:
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用于单元测试的虚拟模型。
- model_type: UnifiedModelType = ModelType.STUB#
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- class camel.models.stub_model.StubTokenCounter[来源]#
-
- count_tokens_from_messages(messages: List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam]) int[来源]#
STUB模型的令牌计数,直接返回一个常量。
- Parameters:
messages (List[OpenAIMessage]) – 以OpenAI API格式存储聊天历史记录的消息列表。
- Returns:
- 一个常量,用于表示
消息中的令牌数量。
- Return type:
int
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:
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)[来源]#
基类:
BaseModelBackendvLLM 服务接口。
- 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:
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:
模块内容#
- 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)[来源]#
基类:
BaseModelBackendAIML 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:
- 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)[来源]#
基类:
BaseModelBackendAnthropic 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:
- 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)[来源]#
基类:
BaseModelBackendAzure 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:
- class camel.models.BaseAudioModel(api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#
基类:
ABC提供文本转语音(TTS)和语音转文本(STT)功能的音频模型基类。
- 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]]
- 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:
- 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)[来源]#
基类:
BaseModelBackendCohere 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:
- 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)[来源]#
基类:
BaseModelBackendDeepSeek 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:
- class camel.models.FishAudioModel(api_key: str | None = None, url: str | None = None)[来源]#
-
提供对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)[来源]#
基类:
BaseModelBackendGemini 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:
- 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:
- 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:
- 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)
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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)[来源]#
基类:
BaseModelBackendMistral 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-common与mistralai并存的问题,暂时使用OpenAITokenCounter。 # 参考:mistralai/mistral-common#37
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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:
- Raises:
ValueError - 如果模型没有对应的后端。
- classmethod create_from_json(filepath: str) BaseModelBackend[来源]#
从JSON配置文件创建并返回基础模型后端实例
- Parameters:
filepath (str) – 包含模型配置的JSON文件路径。
- Returns:
- 基于配置的模型后端实例
配置。
- Return type:
- classmethod create_from_yaml(filepath: str) BaseModelBackend[来源]#
从YAML配置文件创建并返回一个模型基础后端实例。
- Parameters:
filepath (str) – 包含模型配置的YAML文件路径。
- Returns:
- 基于配置的模型后端实例
配置。
- Return type:
- class camel.models.ModelManager(models: BaseModelBackend | List[BaseModelBackend], scheduling_strategy: str = 'round_robin')[来源]#
基类:
objectModelManager 从提供的列表中选择模型。 模型根据定义的策略进行选取。
- Parameters:
models (Union[BaseModelBackend, List[BaseModelBackend]]) – 模型后端或模型后端列表 (例如:模型实例、API接口)
scheduling_strategy (str) – 定义如何选择下一个模型的函数名称。(默认: :str:`round_robin`)
- 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:
- property token_limit#
返回当前模型的最大令牌限制。
该方法从model_config_dict或模型的默认令牌限制中获取最大令牌限制。
- Returns:
给定模型的最大token限制。
- Return type:
int
- 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)[来源]#
基类:
BaseModelBackendModelScope 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/myaccesstokenurl (可选[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:
- 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)[来源]#
基类:
BaseModelBackendMoonshot 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:
- 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那样的额外模型配置。
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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)[来源]#
基类:
BaseModelBackendNVIDIA 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:
- 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)[来源]#
基类:
BaseModelBackendOllama 服务接口。
- 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)
参考文献
- check_model_config()[来源]#
检查模型配置是否包含任何与Ollama API不匹配的参数。
- Raises:
ValueError - 如果模型配置字典包含任何OpenAI API不支持的意外参数。
- property stream: bool#
返回模型是否处于流模式,该模式下每次会发送部分结果。
- Returns:
模型是否处于流模式。
- Return type:
布尔值
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- class camel.models.OpenAIAudioModels(api_key: str | None = None, url: str | None = None, timeout: float | None = None)[来源]#
-
提供对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)
- property stream: bool#
返回模型是否处于流模式,该模式下每次会发送部分结果。
- Returns:
模型是否处于流模式。
- Return type:
布尔值
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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:
- 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:
- 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:
- 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)[来源]#
基类:
BaseModelBackendQwen 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:
- 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)[来源]#
基类:
BaseModelBackendReka 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:
- 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)[来源]#
基类:
BaseModelBackendSGLang服务接口。
- 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不支持的意外参数。
- property stream: bool#
返回模型是否处于流模式,该模式下每次会发送部分结果。
- Returns:
模型是否处于流模式。
- Return type:
布尔值
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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)[来源]#
基类:
BaseModelBackendSambaNova服务接口。
- 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:
- 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)[来源]#
基类:
BaseModelBackendSiliconFlow 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:
- 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用于单元测试的虚拟模型。
- model_type: UnifiedModelType = ModelType.STUB#
- property token_counter: BaseTokenCounter#
初始化模型后端的token计数器。
- Returns:
- 该标记计数器遵循模型的
标记化风格。
- Return type:
- 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:
- 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)[来源]#
基类:
BaseModelBackendvLLM 服务接口。
- 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:
- 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)[来源]#
-
火山引擎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:
- 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)[来源]#
基类:
BaseModelBackendYi 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:
- 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: