pub enum Message {
System {
content: MessageContent,
cache_control: Option<CacheControl>,
},
Developer {
content: MessageContent,
cache_control: Option<CacheControl>,
},
User {
content: MessageContent,
},
Assistant {
content: MessageContent,
tool_calls: Option<Vec<ToolCall>>,
cache_control: Option<CacheControl>,
reasoning_content: Option<String>,
},
Tool {
content: MessageContent,
tool_call_id: String,
is_error: bool,
},
}Expand description
消息 —— 对话中的单条消息
使用 enum 而非 flat struct,让非法状态不可表示:
- 只有 Assistant 可以携带 tool_calls
- 只有 Tool 必须携带 tool_call_id
- 编译时就能发现角色与字段的错误组合
Variants§
System
Developer
User
Fields
§
content: MessageContentAssistant
Fields
§
content: MessageContent文本内容(可能为空,如 LLM 仅发起 tool call)
§
cache_control: Option<CacheControl>缓存控制标记
Tool
Implementations§
Source§impl Message
impl Message
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more