| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| from dataclasses import dataclass |
| from typing import Dict, Optional |
|
|
| from camel.messages import BaseMessage |
| from camel.typing import RoleType |
|
|
|
|
| @dataclass |
| class ChatMessage(BaseMessage): |
| r"""Base class for chat messages used in CAMEL chat system. |
| |
| Args: |
| 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, str]]): Additional metadata dictionary |
| for the message. |
| role (str): The role of the message in OpenAI chat system. |
| content (str): The content of the message. (default: :obj:`""`) |
| """ |
| role_name: str |
| role_type: RoleType |
| meta_dict: Optional[Dict[str, str]] |
| role: str |
| content: str = "" |
|
|
| def set_user_role_at_backend(self: BaseMessage): |
| return self.__class__( |
| role_name=self.role_name, |
| role_type=self.role_type, |
| meta_dict=self.meta_dict, |
| role="user", |
| content=self.content, |
| ) |
|
|
|
|
| @dataclass |
| class AssistantChatMessage(ChatMessage): |
| r"""Class for chat messages from the assistant role used in CAMEL chat |
| system. |
| |
| Attributes: |
| role_name (str): The name of the assistant role. |
| role_type (RoleType): The type of role, always |
| :obj:`RoleType.ASSISTANT`. |
| meta_dict (Optional[Dict[str, str]]): Additional metadata dictionary |
| for the message. |
| role (str): The role of the message in OpenAI chat system. |
| (default: :obj:`"assistant"`) |
| content (str): The content of the message. (default: :obj:`""`) |
| """ |
| role_name: str |
| role_type: RoleType = RoleType.ASSISTANT |
| meta_dict: Optional[Dict[str, str]] = None |
| role: str = "user" |
| content: str = "" |
|
|
|
|
| @dataclass |
| class UserChatMessage(ChatMessage): |
| r"""Class for chat messages from the user role used in CAMEL chat system. |
| |
| Args: |
| role_name (str): The name of the user role. |
| role_type (RoleType): The type of role, always :obj:`RoleType.USER`. |
| meta_dict (Optional[Dict[str, str]]): Additional metadata dictionary |
| for the message. |
| role (str): The role of the message in OpenAI chat system. |
| (default: :obj:`"user"`) |
| content (str): The content of the message. (default: :obj:`""`) |
| """ |
| role_name: str |
| role_type: RoleType = RoleType.USER |
| meta_dict: Optional[Dict[str, str]] = None |
| role: str = "user" |
| content: str = "" |
|
|