pub enum Message {
System(SystemMessage),
User(UserMessage),
Assistant(AssistantMessage),
Tool(ToolResultInfo),
Developer(String),
}Expand description
A message in a conversation with a language model.
Variants§
System(SystemMessage)
A system message providing context or instructions.
User(UserMessage)
A user message containing input from the human.
Assistant(AssistantMessage)
An assistant message containing the model’s response.
Tool(ToolResultInfo)
A tool result message from executing a tool call.
Developer(String)
A developer-specific message for advanced use cases.
Implementations§
Source§impl Message
impl Message
Sourcepub fn conversation_builder() -> MessageBuilder<Conversation>
pub fn conversation_builder() -> MessageBuilder<Conversation>
Start a new conversation with an empty message list.
Returns a MessageBuilder<Conversation>, allowing any number of
user/assistant calls without forcing an initial system or user message.
§Example
use aisdk::core::Message;
let mut msg = Message::conversation_builder();
for _ in 0..10 {
msg = msg.user("hello");
}
let messages = msg.build();Sourcepub fn builder() -> MessageBuilder
pub fn builder() -> MessageBuilder
Create a new message builder in the initial state.
Returns a MessageBuilder<Initial> that enforces type-safe order:
the first message must be either a system prompt or a user message.
After that, the builder transitions to Conversation state and allows
free mixing of user/assistant messages but not system prompts.
§Example
use aisdk::core::Message;
let msgs = Message::builder()
.system("You are helpful.")
.user("Hello!")
.assistant("Hi there.")
.build();Source§impl Message
impl Message
Sourcepub fn from_vercel_ui_message(ui_messages: &[VercelUIMessage]) -> Vec<Message>
pub fn from_vercel_ui_message(ui_messages: &[VercelUIMessage]) -> Vec<Message>
Converts a slice of Vercel UI messages to the aisdk::core::Message format.
This function extracts text content from UI message parts and maps roles to the
corresponding Message variants. Currently only “text” parts are supported; other part types
(e.g., files, tools) are ignored.
§Parameters
ui_messages: A slice ofVercelUIMessageto convert.
§Returns
A vector of Message instances.
§Notes
- Joins multiple text parts into a single string.
- TODO: Add support for file parts (e.g., map to URLs in content).
- TODO: Add support for tool parts (e.g., map to
Toolmessages).