camel.messages 包

本页内容

camel.messages 包#

子模块#

camel.messages.base 模块#

class camel.messages.base.BaseMessage(role_name: str, role_type: 角色类型, meta_dict: Dict[str, Any] | None, content: str, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: Literal['auto', 'low', 'high'] = 'auto', video_detail: Literal['auto', 'low', 'high'] = 'low', parsed: BaseModel | dict | None = None)[来源]#

基类:object

CAMEL聊天系统中使用的消息对象基类。

Parameters:
  • role_name (str) - 用户或助手角色的名称。

  • role_type (RoleType) – 角色类型,可以是RoleType. ASSISTANTRoleType.USER

  • meta_dict (Optional[Dict[str, str]]) – 消息的附加元数据字典

  • content (str) – 消息的内容。

  • video_bytes (可选[bytes]) – 可选的消息关联视频字节。(默认: None)

  • image_list (Optional[List[Image.Image]]) – 可选的PIL图像对象列表,与消息相关联。(默认值: None)

  • image_detail (Literal["auto", "low", "high"]) – 与消息关联的图像的细节级别。(默认: auto)

  • video_detail (Literal["auto", "low", "high"]) – 与消息关联的视频的细节级别。(默认: low)

  • parsed – Optional[Union[Type[BaseModel], dict]]: 可选对象,从内容中解析得到。(默认值: None)

content: str#
create_new_instance(content: str) BaseMessage[来源]#

创建一个带有更新内容的BaseMessage新实例。

Parameters:

内容 (str) – 新的内容值。

Returns:

BaseMessage的新实例。

Return type:

BaseMessage

extract_text_and_code_prompts() Tuple[List[TextPrompt], List[CodePrompt]][来源]#

从消息内容中提取文本和代码提示。

Returns:

一个包含

从内容中提取的文本提示列表和代码提示列表的元组。

Return type:

元组[列表[TextPrompt], 列表[CodePrompt]]

classmethod from_sharegpt(message: ShareGPTMessage, function_format: FunctionCallFormatter[Any, Any] | None = None, role_mapping=None) BaseMessage[来源]#

将ShareGPT消息转换为BaseMessage或FunctionCallingMessage。 注意在CAMEL中工具调用和响应的角色为'assistant'

Parameters:
  • message (ShareGPTMessage) – 要转换的ShareGPT消息。

  • function_format (FunctionCallFormatter, 可选参数) – 要使用的函数调用格式化器。(默认值: HermesFunctionFormatter().

  • role_mapping (Dict[str, List[str, RoleType]], optional) – 要使用的角色映射。默认为CAMEL特定的映射。

Returns:

已转换的消息。

Return type:

BaseMessage

image_detail: Literal['auto', 'low', 'high'] = 'auto'#
image_list: List[Image] | None = None#
classmethod make_assistant_message(role_name: str, content: str, meta_dict: Dict[str, str] | None = None, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.AUTO, video_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.LOW) BaseMessage[来源]#

创建一条新的助手消息。

Parameters:
  • role_name (str) - 助手角色的名称。

  • content (str) – 消息的内容。

  • meta_dict (Optional[Dict[str, str]]) – 消息的额外元数据字典。

  • video_bytes (可选[bytes]) - 可选的消息关联视频字节数据。

  • image_list (可选[列表[Image.Image]]) – 可选的与消息关联的PIL图像对象列表。

  • image_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的图像的细节级别。

  • video_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的视频的细节级别。

Returns:

新的助手消息。

Return type:

BaseMessage

classmethod make_user_message(role_name: str, content: str, meta_dict: Dict[str, str] | None = None, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.AUTO, video_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.LOW) BaseMessage[来源]#

创建一条新的用户消息。

Parameters:
  • role_name (str) – 用户角色的名称。

  • content (str) – 消息的内容。

  • meta_dict (Optional[Dict[str, str]]) – 消息的额外元数据字典。

  • video_bytes (可选[bytes]) - 可选的消息关联视频字节数据。

  • image_list (可选[列表[Image.Image]]) – 可选的PIL图像对象列表,与消息相关联。

  • image_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的图像的细节级别。

  • video_detail (Union[OpenAIVisionDetailType, str]) – 与该消息关联的视频的详细级别。

Returns:

新用户消息。

Return type:

BaseMessage

meta_dict: Dict[str, Any] | None#
parsed: BaseModel | dict | None = None#
role_name: str#
role_type: 角色类型#
to_dict() Dict[来源]#

将消息转换为字典。

Returns:

转换后的字典。

Return type:

字典

to_openai_assistant_message() ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIAssistantMessage对象。

Returns:

转换后的OpenAIAssistantMessage

对象。

Return type:

OpenAIAssistantMessage

to_openai_message(role_at_backend: OpenAIBackendRole) ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam[来源]#

将消息转换为OpenAIMessage对象。

Parameters:

role_at_backend (OpenAIBackendRole) – 该消息在OpenAI聊天系统中的角色。

Returns:

转换后的 OpenAIMessage 对象。

Return type:

OpenAIMessage

to_openai_system_message() ChatCompletionSystemMessageParam[来源]#

将消息转换为OpenAISystemMessage对象。

Returns:

转换后的OpenAISystemMessage

对象。

Return type:

OpenAISystemMessage

to_openai_user_message() ChatCompletionUserMessageParam[来源]#

将消息转换为OpenAIUserMessage对象。

Returns:

转换后的 OpenAIUserMessage 对象。

Return type:

OpenAIUserMessage

to_sharegpt(function_format: FunctionCallFormatter | None = None) ShareGPTMessage[来源]#

将BaseMessage转换为ShareGPT消息

Parameters:

function_format (FunctionCallFormatter) – 要使用的函数调用格式化器。默认为Hermes。

video_bytes: bytes | None = None#
video_detail: Literal['auto', 'low', 'high'] = 'low'#

camel.messages.func_message 模块#

class camel.messages.func_message.FunctionCallingMessage(role_name: str, role_type: 角色类型, meta_dict: Dict[str, Any] | None, content: str, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: Literal['auto', 'low', 'high'] = 'auto', video_detail: Literal['auto', 'low', 'high'] = 'low', parsed: BaseModel | dict | None = None, func_name: str | None = None, args: Dict | None = None, result: Any | None = None, tool_call_id: str | None = None)[来源]#

基类: BaseMessage

用于特定功能相关消息的消息对象类。

Parameters:
  • func_name (可选[str]) – 所使用的函数名称。 (默认值: None)

  • args (可选[Dict]) – 传递给函数的参数字典。(默认值: None)

  • result (可选[任意类型]) - 函数执行的结果。 (默认值: None)

  • tool_call_id (可选[str]) - 工具调用的ID(如果存在)。 (默认值: None)

args: Dict | None = None#
func_name: str | None = None#
result: Any | None = None#
to_openai_assistant_message() ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIAssistantMessage对象。

Returns:

转换后的OpenAIAssistantMessage

对象。

Return type:

OpenAIAssistantMessage

to_openai_message(role_at_backend: OpenAIBackendRole) ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam[来源]#

将消息转换为OpenAIMessage对象。

Parameters:

role_at_backend (OpenAIBackendRole) – 该消息在OpenAI聊天系统中的角色。

Returns:

转换后的 OpenAIMessage 对象。

Return type:

OpenAIMessage

to_openai_tool_message() ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIToolMessageParam对象, 其中角色为"tool"。

Returns:

转换后的

OpenAIToolMessageParam 对象,其角色为"tool"。

Return type:

OpenAIToolMessageParam

to_sharegpt(function_format: FunctionCallFormatter[工具调用, ToolResponse] | None = None) ShareGPTMessage[来源]#

将FunctionCallingMessage转换为ShareGPT消息。

Parameters:
  • (FunctionCallFormatter[ToolCall (function_format) – 可选): 要使用的函数格式化器。默认为None。

  • ToolResponse] – 可选): 要使用的函数格式化器。默认为None。

:param : optional): 要使用的函数格式化器。默认为 None。

tool_call_id: str | None = None#

模块内容#

class camel.messages.AlpacaItem(*, instruction: str, input: str, output: str)[来源]#

基类:BaseModel

表示Alpaca格式中的一条指令-响应条目。

适用于输入字段为空或已填充的两种情况。 提供使用类方法from_string()从字符串格式进行解析的功能。

Parameters:
  • instruction (str) - 指令/问题/提示

  • input (str) - 输入上下文或示例(如果没有请留空字符串)

  • output (str) - 对指令的响应/回答

classmethod from_string(text: str) AlpacaItem[来源]#

从格式化字符串创建一个AlpacaItem。

Parameters:

文本

字符串格式可为以下任意一种: 带输入的情况: ### 指令: {instruction} ### 输入: {input} ### 响应: {response}

不带输入的情况: ### 指令: {instruction} ### 响应: {response}

Returns:

解析后的实例

Return type:

AlpacaItem

Raises:

ValueError - 文本不符合预期格式或缺少部分内容

input: str#
instruction: str#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

classmethod no_section_markers(value: str) str[来源]#

确保字段不包含类似'###'这样的节标记

output: str#
to_string() str[来源]#

将AlpacaItem转换为它的字符串表示形式。

Returns:

带有分段标记的格式化字符串表示

Return type:

字符串

class camel.messages.BaseMessage(role_name: str, role_type: 角色类型, meta_dict: Dict[str, Any] | None, content: str, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: Literal['auto', 'low', 'high'] = 'auto', video_detail: Literal['auto', 'low', 'high'] = 'low', parsed: BaseModel | dict | None = None)[来源]#

基类:object

CAMEL聊天系统中使用的消息对象基类。

Parameters:
  • role_name (str) - 用户或助手角色的名称。

  • role_type (RoleType) – 角色类型,可以是RoleType. ASSISTANTRoleType.USER

  • meta_dict (Optional[Dict[str, str]]) – 消息的附加元数据字典

  • content (str) – 消息的内容。

  • video_bytes (可选[bytes]) – 可选的消息关联视频字节。(默认: None)

  • image_list (Optional[List[Image.Image]]) – 可选的PIL图像对象列表,与消息相关联。(默认值: None)

  • image_detail (Literal["auto", "low", "high"]) – 与消息关联的图像的细节级别。(默认: auto)

  • video_detail (Literal["auto", "low", "high"]) – 与消息关联的视频的细节级别。(默认: low)

  • parsed – Optional[Union[Type[BaseModel], dict]]: 可选对象,从内容中解析得到。(默认值: None)

content: str#
create_new_instance(content: str) BaseMessage[来源]#

创建一个带有更新内容的BaseMessage新实例。

Parameters:

内容 (str) – 新的内容值。

Returns:

BaseMessage的新实例。

Return type:

BaseMessage

extract_text_and_code_prompts() Tuple[List[TextPrompt], List[CodePrompt]][来源]#

从消息内容中提取文本和代码提示。

Returns:

一个包含

从内容中提取的文本提示列表和代码提示列表的元组。

Return type:

元组[列表[TextPrompt], 列表[CodePrompt]]

classmethod from_sharegpt(message: ShareGPTMessage, function_format: FunctionCallFormatter[Any, Any] | None = None, role_mapping=None) BaseMessage[来源]#

将ShareGPT消息转换为BaseMessage或FunctionCallingMessage。 注意在CAMEL中工具调用和响应的角色为'assistant'

Parameters:
Returns:

已转换的消息。

Return type:

BaseMessage

image_detail: Literal['auto', 'low', 'high'] = 'auto'#
image_list: List[Image] | None = None#
classmethod make_assistant_message(role_name: str, content: str, meta_dict: Dict[str, str] | None = None, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.AUTO, video_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.LOW) BaseMessage[来源]#

创建一条新的助手消息。

Parameters:
  • role_name (str) - 助手角色的名称。

  • content (str) – 消息的内容。

  • meta_dict (Optional[Dict[str, str]]) – 消息的额外元数据字典。

  • video_bytes (可选[bytes]) - 可选的消息关联视频字节数据。

  • image_list (可选[列表[Image.Image]]) – 可选的PIL图像对象列表,与消息相关联。

  • image_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的图像的细节级别。

  • video_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的视频的细节级别。

Returns:

新的助手消息。

Return type:

BaseMessage

classmethod make_user_message(role_name: str, content: str, meta_dict: Dict[str, str] | None = None, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.AUTO, video_detail: OpenAIVisionDetailType | str = OpenAIVisionDetailType.LOW) BaseMessage[来源]#

创建一条新的用户消息。

Parameters:
  • role_name (str) – 用户角色的名称。

  • content (str) – 消息的内容。

  • meta_dict (Optional[Dict[str, str]]) – 消息的额外元数据字典。

  • video_bytes (可选[bytes]) - 可选的消息关联视频字节数据。

  • image_list (可选[列表[Image.Image]]) – 可选的PIL图像对象列表,与消息相关联。

  • image_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的图像的细节级别。

  • video_detail (Union[OpenAIVisionDetailType, str]) - 与消息关联的视频的细节级别。

Returns:

新用户消息。

Return type:

BaseMessage

meta_dict: Dict[str, Any] | None#
parsed: BaseModel | dict | None = None#
role_name: str#
role_type: 角色类型#
to_dict() Dict[来源]#

将消息转换为字典。

Returns:

转换后的字典。

Return type:

字典

to_openai_assistant_message() ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIAssistantMessage对象。

Returns:

转换后的OpenAIAssistantMessage

对象。

Return type:

OpenAIAssistantMessage

to_openai_message(role_at_backend: OpenAIBackendRole) ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam[来源]#

将消息转换为OpenAIMessage对象。

Parameters:

role_at_backend (OpenAIBackendRole) – 该消息在OpenAI聊天系统中的角色。

Returns:

转换后的 OpenAIMessage 对象。

Return type:

OpenAIMessage

to_openai_system_message() ChatCompletionSystemMessageParam[来源]#

将消息转换为OpenAISystemMessage对象。

Returns:

转换后的OpenAISystemMessage

对象。

Return type:

OpenAISystemMessage

to_openai_user_message() ChatCompletionUserMessageParam[来源]#

将消息转换为OpenAIUserMessage对象。

Returns:

转换后的OpenAIUserMessage对象。

Return type:

OpenAIUserMessage

to_sharegpt(function_format: FunctionCallFormatter | None = None) ShareGPTMessage[来源]#

将BaseMessage转换为ShareGPT消息

Parameters:

function_format (FunctionCallFormatter) – 要使用的函数调用格式化器。默认为Hermes。

video_bytes: bytes | None = None#
video_detail: Literal['auto', 'low', 'high'] = 'low'#
class camel.messages.FunctionCallFormatter[来源]#

基类: ABC, Generic[CallT, ResponseT]

函数调用格式的抽象基类

abstract extract_tool_calls(message: str) List[CallT][来源]#

从消息字符串中提取函数调用信息

abstract extract_tool_response(message: str) ResponseT | None[来源]#

从消息字符串中提取函数响应信息

abstract format_tool_call(content: str, func_name: str, args: Dict[str, Any]) str[来源]#

将函数调用格式化为消息字符串

abstract format_tool_response(func_name: str, result: Any) str[来源]#

将函数响应格式化为消息字符串

class camel.messages.FunctionCallingMessage(role_name: str, role_type: 角色类型, meta_dict: Dict[str, Any] | None, content: str, video_bytes: bytes | None = None, image_list: List[Image] | None = None, image_detail: Literal['auto', 'low', 'high'] = 'auto', video_detail: Literal['auto', 'low', 'high'] = 'low', parsed: BaseModel | dict | None = None, func_name: str | None = None, args: Dict | None = None, result: Any | None = None, tool_call_id: str | None = None)[来源]#

基类: BaseMessage

用于特定功能相关消息的消息对象类。

Parameters:
  • func_name (可选[str]) – 所使用的函数名称。 (默认值: None)

  • args (可选[Dict]) – 传递给函数的参数字典。(默认值: None)

  • result (可选[任意类型]) – 函数执行的结果。 (默认值: None)

  • tool_call_id (Optional[str]) – 工具调用的ID,如果可用的话。 (默认值: None)

args: Dict | None = None#
content: str#
func_name: str | None = None#
meta_dict: Dict[str, Any] | None#
result: Any | None = None#
role_name: str#
role_type: 角色类型#
to_openai_assistant_message() ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIAssistantMessage对象。

Returns:

转换后的OpenAIAssistantMessage

对象。

Return type:

OpenAIAssistantMessage

to_openai_message(role_at_backend: OpenAIBackendRole) ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam[来源]#

将消息转换为OpenAIMessage对象。

Parameters:

role_at_backend (OpenAIBackendRole) – 该消息在OpenAI聊天系统中的角色。

Returns:

转换后的 OpenAIMessage 对象。

Return type:

OpenAIMessage

to_openai_tool_message() ChatCompletionToolMessageParam[来源]#

将消息转换为OpenAIToolMessageParam对象,其中角色为"tool"。

Returns:

转换后的

OpenAIToolMessageParam对象,其角色为"tool"。

Return type:

OpenAIToolMessageParam

to_sharegpt(function_format: FunctionCallFormatter[工具调用, 工具响应] | None = None) ShareGPTMessage[来源]#

将FunctionCallingMessage转换为ShareGPT消息。

Parameters:
  • (FunctionCallFormatter[ToolCall (function_format) – 可选): 要使用的函数格式化器。默认为None。

  • ToolResponse] – 可选): 要使用的函数格式化器。默认为None。

:param : optional): 要使用的函数格式化器。默认为 None。

tool_call_id: str | None = None#
class camel.messages.HermesFunctionFormatter[来源]#

基类: FunctionCallFormatter[HermesToolCall, HermesToolResponse]

带有验证的Hermes风格函数调用格式实现

extract_tool_calls(message: str) List[HermesToolCall][来源]#

从提供的消息字符串中提取所有工具调用。

Parameters:

message (str) – 包含潜在工具调用的输入消息字符串。

Returns:

解析后的HermesToolCall对象列表。

Return type:

列表[HermesToolCall]

extract_tool_response(message: str) HermesToolResponse | None[来源]#

从提供的消息字符串中提取单个工具响应。

Parameters:

message (str) – 包含潜在工具响应的输入消息字符串。

Returns:

一个解析后的HermesToolResponse对象,

如果没有找到有效响应则为None。

Return type:

可选[HermesToolResponse]

format_tool_call(content: str, func_name: str, args: Dict[str, Any]) str[来源]#

使用给定的内容、函数名称和参数格式化工具调用消息。

Parameters:
  • content (str) – 要包含在工具调用中的内容或消息。

  • func_name (str) - 被调用函数的名称。

  • args (Dict[str, Any]) – 要传递给函数的参数字典。

Returns:

表示Hermes中工具调用的格式化字符串

格式。

Return type:

字符串

format_tool_response(func_name: str, result: Any) str[来源]#

使用给定的函数名称和结果格式化工具响应消息。

Parameters:
  • func_name (str) – 返回结果的函数名称。

  • result (Any) – 要包含在工具响应中的结果。

Returns:

一个格式化字符串,表示Hermes中的工具响应

格式。

Return type:

字符串

camel.messages.OpenAISystemMessage#

ChatCompletionSystemMessageParam的别名

camel.messages.OpenAIToolMessageParam#

ChatCompletionToolMessageParam的别名

camel.messages.OpenAIUserMessage#

ChatCompletionUserMessageParam的别名

class camel.messages.ShareGPTConversation(root: RootModelRootType = PydanticUndefined)[来源]#

基础类: RootModel

ShareGPT格式的完整对话,包含验证

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

model_dump(**kwargs)[来源]#
!!! abstract “Usage Documentation”

[model_dump](../concepts/serialization.md#modelmodel_dump)

生成模型的字典表示,可选择指定要包含或排除的字段。

Parameters:
  • modeto_python 应该运行的模式。 如果模式是 'json',输出将仅包含 JSON 可序列化类型。 如果模式是 'python',输出可能包含非 JSON 可序列化的 Python 对象。

  • include – 输出中包含的一组字段。

  • exclude – 要从输出中排除的一组字段。

  • context – 传递给序列化器的额外上下文。

  • by_alias – 如果定义了字段的别名,是否在字典键中使用该别名。

  • exclude_unset - 是否排除未被显式设置的字段。

  • exclude_defaults – 是否排除设置为默认值的字段。

  • exclude_none – 是否排除值为None的字段。

  • round_trip – 如果为True,转储的值应可作为非幂等类型(如Json[T])的有效输入。

  • warnings - 如何处理序列化错误。False/"none"表示忽略错误,True/"warn"表示记录错误,"error"会引发一个[PydanticSerializationError][pydantic_core.PydanticSerializationError]。

  • fallback – 当遇到未知值时调用的函数。如果未提供,则会引发[PydanticSerializationError][pydantic_core.PydanticSerializationError]错误。

  • serialize_as_any - 是否对具有鸭子类型序列化行为的字段进行序列化。

Returns:

模型的字典表示。

root: List[ShareGPTMessage]#
validate_conversation_flow() ShareGPTConversation[来源]#

验证对话是否遵循逻辑消息顺序

class camel.messages.ShareGPTMessage(*, from_: Literal['human', 'gpt', 'system', 'tool'], value: str)[来源]#

基类:BaseModel

ShareGPT格式中的单条消息,带有增强验证

from_: Literal['human', 'gpt', 'system', 'tool']#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'examples': [{'from': 'human', 'value': "What's the weather like today?"}]}, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

value: str#