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)[来源]#
基类:
objectCAMEL聊天系统中使用的消息对象基类。
- Parameters:
role_name (str) - 用户或助手角色的名称。
role_type (RoleType) – 角色类型,可以是
RoleType. ASSISTANT或RoleType.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:
- extract_text_and_code_prompts() Tuple[List[TextPrompt], List[CodePrompt]][来源]#
从消息内容中提取文本和代码提示。
- Returns:
- 一个包含
从内容中提取的文本提示列表和代码提示列表的元组。
- Return type:
元组[列表[TextPrompt], 列表[CodePrompt]]
将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:
- 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:
- 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:
- meta_dict: Dict[str, Any] | None#
- parsed: BaseModel | dict | None = None#
- role_name: str#
- 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
将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
将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:
- Raises:
ValueError - 文本不符合预期格式或缺少部分内容
- input: str#
- instruction: str#
- model_config: ClassVar[ConfigDict] = {}#
模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。
- output: str#
- 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)[来源]#
基类:
objectCAMEL聊天系统中使用的消息对象基类。
- Parameters:
role_name (str) - 用户或助手角色的名称。
role_type (RoleType) – 角色类型,可以是
RoleType. ASSISTANT或RoleType.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:
- extract_text_and_code_prompts() Tuple[List[TextPrompt], List[CodePrompt]][来源]#
从消息内容中提取文本和代码提示。
- Returns:
- 一个包含
从内容中提取的文本提示列表和代码提示列表的元组。
- Return type:
元组[列表[TextPrompt], 列表[CodePrompt]]
将ShareGPT消息转换为BaseMessage或FunctionCallingMessage。 注意在CAMEL中工具调用和响应的角色为'assistant'
- Parameters:
message (ShareGPTMessage) – 要转换的ShareGPT消息。
function_format (FunctionCallFormatter, optional) – 要使用的函数调用格式化器。(默认:
HermesFunctionFormatter().role_mapping (Dict[str, List[str, RoleType]], optional) – 要使用的角色映射。默认为CAMEL特定的映射。
- Returns:
已转换的消息。
- Return type:
- 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:
- 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:
- meta_dict: Dict[str, Any] | None#
- parsed: BaseModel | dict | None = None#
- role_name: str#
- 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
将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]函数调用格式的抽象基类
- 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#
- 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
将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:
- camel.messages.OpenAISystemMessage#
- camel.messages.OpenAIToolMessageParam#
- camel.messages.OpenAIUserMessage#
基础类:
RootModelShareGPT格式的完整对话,包含验证
模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。
- !!! abstract “Usage Documentation”
[model_dump](../concepts/serialization.md#modelmodel_dump)
生成模型的字典表示,可选择指定要包含或排除的字段。
- Parameters:
mode – to_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:
模型的字典表示。
验证对话是否遵循逻辑消息顺序
基类:
BaseModelShareGPT格式中的单条消息,带有增强验证
模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。