45 lines
950 B
Go
45 lines
950 B
Go
package types
|
|
|
|
import "time"
|
|
|
|
type Role string
|
|
|
|
const (
|
|
RoleUser Role = "user"
|
|
RoleAssistant Role = "assistant"
|
|
RoleSystem Role = "system"
|
|
RoleTool Role = "tool"
|
|
)
|
|
|
|
type Message struct {
|
|
ID string `json:"id"`
|
|
Role Role `json:"role"`
|
|
Content string `json:"content"`
|
|
ToolCall *ToolCall `json:"toolCall,omitempty"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
}
|
|
|
|
type ToolCall struct {
|
|
Name string `json:"name"`
|
|
Arguments string `json:"arguments"`
|
|
Result string `json:"result,omitempty"`
|
|
}
|
|
|
|
type Conversation struct {
|
|
ID string `json:"id"`
|
|
Messages []Message `json:"messages"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
type Mood string
|
|
|
|
const (
|
|
MoodNeutral Mood = "neutral"
|
|
MoodCurious Mood = "curious"
|
|
MoodPlayful Mood = "playful"
|
|
MoodThoughtful Mood = "thoughtful"
|
|
MoodAnnoyed Mood = "annoyed"
|
|
MoodTired Mood = "tired"
|
|
)
|