Skip to main content

BaseMessage

class 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

def make_user_message(
    cls,
    role_name: str,
    content: str,
    meta_dict: Optional[Dict[str, str]] = None,
    video_bytes: Optional[bytes] = None,
    image_list: Optional[List[Union[Image.Image, str]]] = None,
    image_detail: Union[OpenAIVisionDetailType, str] = OpenAIVisionDetailType.AUTO,
    video_detail: Union[OpenAIVisionDetailType, str] = OpenAIVisionDetailType.LOW
):
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

def make_assistant_message(
    cls,
    role_name: str,
    content: str,
    meta_dict: Optional[Dict[str, str]] = None,
    video_bytes: Optional[bytes] = None,
    image_list: Optional[List[Union[Image.Image, str]]] = None,
    image_detail: Union[OpenAIVisionDetailType, str] = OpenAIVisionDetailType.AUTO,
    video_detail: Union[OpenAIVisionDetailType, str] = OpenAIVisionDetailType.LOW
):
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

def make_system_message(
    cls,
    content: str,
    role_name: str = 'System',
    meta_dict: Optional[Dict[str, str]] = None
):
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

def create_new_instance(self, content: str):
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

def __add__(self, other: Any):
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

def __mul__(self, other: Any):
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

def __len__(self):
Returns: int: The length of the content.

contains

def __contains__(self, item: str):
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

def extract_text_and_code_prompts(self):
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

def from_sharegpt(
    cls,
    message: ShareGPTMessage,
    function_format: Optional[FunctionCallFormatter[Any, Any]] = None,
    role_mapping = None
):
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

def to_sharegpt(self, function_format: Optional[FunctionCallFormatter] = None):
Convert BaseMessage to ShareGPT message Parameters:
  • function_format (FunctionCallFormatter): Function call formatter to use. Defaults to Hermes.

to_openai_message

def to_openai_message(self, role_at_backend: OpenAIBackendRole):
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

def to_openai_system_message(self):
Returns: OpenAISystemMessage: The converted :obj:OpenAISystemMessage object.

to_openai_user_message

def to_openai_user_message(self):
Returns: OpenAIUserMessage: The converted :obj:OpenAIUserMessage object.

to_openai_assistant_message

def to_openai_assistant_message(self):
Returns: OpenAIAssistantMessage: The converted :obj:OpenAIAssistantMessage object.

to_dict

def to_dict(self):
Returns: dict: The converted dictionary.