ant: improve encapsulation
- Replace string literals with package constants for message roles and content types.
- Create UserStringMessage helper function to simplify user message creation
- Replace manual Content creation with ant.StringContent()
Co-Authored-By: sketch <hello@sketch.dev>
diff --git a/ant/ant.go b/ant/ant.go
index 8759883..944abcc 100644
--- a/ant/ant.go
+++ b/ant/ant.go
@@ -504,7 +504,7 @@
func (c *Convo) SendUserTextMessage(s string, otherContents ...Content) (*MessageResponse, error) {
contents := slices.Clone(otherContents)
if s != "" {
- contents = append(contents, Content{Type: ContentTypeText, Text: s})
+ contents = append(contents, StringContent(s))
}
msg := Message{
Role: MessageRoleUser,
@@ -517,7 +517,7 @@
system := []SystemContent{}
if c.SystemPrompt != "" {
var d SystemContent
- d = SystemContent{Type: "text", Text: c.SystemPrompt}
+ d = SystemContent{Type: ContentTypeText, Text: c.SystemPrompt}
if c.PromptCaching {
d.CacheControl = json.RawMessage(`{"type":"ephemeral"}`)
}
@@ -1022,3 +1022,11 @@
}
return err
}
+
+// UserStringMessage creates a user message with a single text content item.
+func UserStringMessage(text string) Message {
+ return Message{
+ Role: MessageRoleUser,
+ Content: []Content{StringContent(text)},
+ }
+}