Changeset 0.12.0 (#63)
This commit is contained in:
@@ -52,12 +52,36 @@ type Message struct {
|
||||
Role string `json:"role"` // user, assistant, system, tool
|
||||
Content string `json:"content"`
|
||||
|
||||
// Multimodal content parts (v0.12.0+). When set, providers use these
|
||||
// instead of Content for the user message. Content is still set as
|
||||
// a fallback and for message persistence (extracted text summary).
|
||||
ContentParts []ContentPart `json:"content_parts,omitempty"`
|
||||
|
||||
// Tool calling fields (assistant → tool_calls, tool → tool_call_id)
|
||||
ToolCalls []ToolCall `json:"tool_calls,omitempty"` // set when assistant requests tools
|
||||
ToolCallID string `json:"tool_call_id,omitempty"` // set for role="tool" result messages
|
||||
Name string `json:"name,omitempty"` // tool name for role="tool"
|
||||
}
|
||||
|
||||
// ContentPart is a single element in a multimodal message.
|
||||
// Providers convert these to their native wire format.
|
||||
type ContentPart struct {
|
||||
Type string `json:"type"` // "text", "image_url", "document"
|
||||
|
||||
// Text content (type="text")
|
||||
Text string `json:"text,omitempty"`
|
||||
|
||||
// Image content (type="image_url") — base64 data URI
|
||||
ImageURL *ImageURL `json:"image_url,omitempty"`
|
||||
}
|
||||
|
||||
// ImageURL holds image data for multimodal requests.
|
||||
// URL is a data URI: "data:image/jpeg;base64,..."
|
||||
type ImageURL struct {
|
||||
URL string `json:"url"`
|
||||
Detail string `json:"detail,omitempty"` // "auto", "low", "high"
|
||||
}
|
||||
|
||||
// ToolCall represents a function call requested by the LLM.
|
||||
type ToolCall struct {
|
||||
ID string `json:"id"`
|
||||
|
||||
Reference in New Issue
Block a user