BaseMessage 消息基类¶
介绍¶
在TFRobot整个系统中,所有的消息在此基类的基础上进行扩展。比如:
- 用户消息
- 系统消息
- LLM(Assistant)消息
- 工具消息(工具返回)
结构¶
消息基类结构定义如下:
class BaseMessage(TFBaseModel, Generic[StrSubclass]):
# The message content may be in bytes format for attachments, images, or videos. sometimes it may be a string.
# and sometimes it may be a dict for contact, file, or url, or a list of dicts for multiple contacts, files, or urls
content: Union[StrSubclass, AnyUrl, Path, BaseUser, list["BaseMessage"]]
# Additional kwargs will be saved as metadata in some memory stores or in tool/function return info(msg_meta).
additional_kwargs: Attributes = Field(default_factory=dict)
create_ts: Optional[int] = Field(default_factory=lambda: int(time.time() * 1000)) # message creation timestamp
function_call: Optional[FunctionCall] = None
"""Function call info, if applicable"""
function_res: Optional[Union[str, ToolReturn]] = None
"""Function call return value, if applicable"""
tool_calls: Optional[list[ToolCall]] = None
"""Tool calls info, returned by OpenAI, its a list of ToolCall"""
tool_reses: Optional[list[Union[str, ToolReturn]]] = None
"""Tool calls return value, if applicable"""
creator: Optional[BaseUser] = None
group: Optional[BaseGroup] = None
role: Optional[Literal["system", "user", "assistant", "function", "tool"]] = "user"
__register_key__: ClassVar[str] = "MESSAGE"
model_config: ClassVar[ConfigDict] = ConfigDict(strict=True, arbitrary_types_allowed=True)