message.go
59 lines1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package assistant
// Message roles
const (
RoleSystem = "system"
RoleUser = "user"
RoleAssistant = "assistant"
RoleTool = "tool"
)
// Message represents a chat message.
type Message struct {
Role string // "system", "user", "assistant", or "tool"
Content string // Message text content
ToolCalls []ToolCall // Tool calls (assistant messages only)
ToolCallID string // ID of the tool call this is a result for (tool messages only)
}
// NewSystemMessage creates a system message.
func NewSystemMessage(content string) Message {
return Message{
Role: RoleSystem,
Content: content,
}
}
// NewUserMessage creates a user message.
func NewUserMessage(content string) Message {
return Message{
Role: RoleUser,
Content: content,
}
}
// NewAssistantMessage creates an assistant message.
func NewAssistantMessage(content string) Message {
return Message{
Role: RoleAssistant,
Content: content,
}
}
// NewAssistantToolCallMessage creates an assistant message with tool calls.
func NewAssistantToolCallMessage(content string, toolCalls []ToolCall) Message {
return Message{
Role: RoleAssistant,
Content: content,
ToolCalls: toolCalls,
}
}
// NewToolResultMessage creates a tool result message.
func NewToolResultMessage(toolCallID, result string) Message {
return Message{
Role: RoleTool,
Content: result,
ToolCallID: toolCallID,
}
}