Skip to main content

BaseMessage

Base class for message objects used in CAMEL chat system. Parameters:
  • role_name (str): The name of the user or assistant role.
  • role_type (RoleType): The type of role, either :obj:RoleType. ASSISTANT or :obj:RoleType.USER.
  • meta_dict (Optional[Dict[str, Any]]): Additional metadata dictionary for the message.
  • content (str): The content of the message.
  • video_bytes (Optional[bytes]): Optional bytes of a video associated with the message. (default: :obj:None)
  • image_list (Optional[List[Union[Image.Image, str]]]): Optional list of PIL Image objects or image URLs (strings) associated with the message. (default: :obj:None)
  • image_detail (Literal["auto", "low", "high"]): Detail level of the images associated with the message. (default: :obj:auto)
  • video_detail (Literal["auto", "low", "high"]): Detail level of the videos associated with the message. (default: :obj:auto)
  • parsed (Optional[Union[Type[BaseModel], dict]]): Optional object which is parsed from the content. (default: :obj:None)
  • reasoning_content (Optional[str]): Optional reasoning trace associated with the message. (default: :obj:None)

make_user_message

Create a new user message. Parameters:
  • role_name (str): The name of the user role.
  • content (str): The content of the message.
  • meta_dict (Optional[Dict[str, str]]): Additional metadata dictionary for the message.
  • video_bytes (Optional[bytes]): Optional bytes of a video associated with the message.
  • image_list (Optional[List[Union[Image.Image, str]]]): Optional list of PIL Image objects or image URLs (strings) associated with the message.
  • image_detail (Union[OpenAIVisionDetailType, str]): Detail level of the images associated with the message.
  • video_detail (Union[OpenAIVisionDetailType, str]): Detail level of the videos associated with the message.
Returns: BaseMessage: The new user message.

make_assistant_message

Create a new assistant message. Parameters:
  • role_name (str): The name of the assistant role.
  • content (str): The content of the message.
  • meta_dict (Optional[Dict[str, str]]): Additional metadata dictionary for the message.
  • video_bytes (Optional[bytes]): Optional bytes of a video associated with the message.
  • image_list (Optional[List[Union[Image.Image, str]]]): Optional list of PIL Image objects or image URLs (strings) associated with the message.
  • image_detail (Union[OpenAIVisionDetailType, str]): Detail level of the images associated with the message.
  • video_detail (Union[OpenAIVisionDetailType, str]): Detail level of the videos associated with the message.
Returns: BaseMessage: The new assistant message.

make_system_message

Create a new system message. Parameters:
  • content (str): The content of the system message.
  • role_name (str): The name of the system role. (default: :obj:"System")
  • meta_dict (Optional[Dict[str, str]]): Additional metadata dictionary for the message.
Returns: BaseMessage: The new system message.

create_new_instance

Create a new instance of the :obj:BaseMessage with updated content. Parameters:
  • content (str): The new content value.
Returns: BaseMessage: The new instance of :obj:BaseMessage.

add

Addition operator override for :obj:BaseMessage. Parameters:
  • other (Any): The value to be added with.
Returns: Union[BaseMessage, Any]: The result of the addition.

mul

Multiplication operator override for :obj:BaseMessage. Parameters:
  • other (Any): The value to be multiplied with.
Returns: Union[BaseMessage, Any]: The result of the multiplication.

len

Returns: int: The length of the content.

contains

Contains operator override for :obj:BaseMessage. Parameters:
  • item (str): The item to check for containment.
Returns: bool: :obj:True if the item is contained in the content, :obj:False otherwise.

extract_text_and_code_prompts

Returns: Tuple[List[TextPrompt], List[CodePrompt]]: A tuple containing a list of text prompts and a list of code prompts extracted from the content.

from_sharegpt

Convert ShareGPT message to BaseMessage or FunctionCallingMessage. Note tool calls and responses have an ‘assistant’ role in CAMEL Parameters:
  • message (ShareGPTMessage): ShareGPT message to convert.
  • function_format (FunctionCallFormatter, optional): Function call formatter to use. (default: :obj:HermesFunctionFormatter().
  • role_mapping (Dict[str, List[str, RoleType]], optional): Role mapping to use. Defaults to a CAMEL specific mapping.
Returns: BaseMessage: Converted message.

to_sharegpt

Convert BaseMessage to ShareGPT message Parameters:
  • function_format (FunctionCallFormatter): Function call formatter to use. Defaults to Hermes.

to_openai_message

Converts the message to an :obj:OpenAIMessage object. Parameters:
  • role_at_backend (OpenAIBackendRole): The role of the message in OpenAI chat system.
Returns: OpenAIMessage: The converted :obj:OpenAIMessage object.

to_openai_system_message

Returns: OpenAISystemMessage: The converted :obj:OpenAISystemMessage object.

to_openai_user_message

Returns: OpenAIUserMessage: The converted :obj:OpenAIUserMessage object.

to_openai_assistant_message

Returns: OpenAIAssistantMessage: The converted :obj:OpenAIAssistantMessage object.

to_dict

Returns: dict: The converted dictionary.