Skip to content

Commit ad26e1c

Browse files
authored
[#105] Moved to use Providers instead of just model
1 parent e7c5fff commit ad26e1c

File tree

7 files changed

+863
-253
lines changed

7 files changed

+863
-253
lines changed

errutils/errutils.go

+17
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package errutils
22

33
import (
44
"errors"
5+
"fmt"
56
"strings"
67
"sync"
78

@@ -72,3 +73,19 @@ func NewMultiErr(err error) (multiErr *MultiError) {
7273
}
7374
return
7475
}
76+
77+
// CustomError is a struct that holds a template for creating custom errors.
78+
// The template is a string that can contain format verbs.
79+
type CustomError struct {
80+
template string
81+
}
82+
83+
// Err creates a new error using the template and the parameters.
84+
func (e *CustomError) Err(params ...any) error {
85+
return fmt.Errorf(e.template, params...)
86+
}
87+
88+
// NewCustomError creates a new CustomError with the given template.
89+
func NewCustomError(template string) *CustomError {
90+
return &CustomError{template: template}
91+
}

genai/exchange.go

+29-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package genai
22

33
import (
44
"bytes"
5+
"fmt"
56
"net/url"
67

78
"oss.nandlabs.io/golly/codec"
@@ -152,17 +153,42 @@ func (e *exchangeImpl) AddTxtMsg(text string, actor Actor) (message *Message, er
152153
return
153154
}
154155

156+
// AddMsgFrmTemplate adds a new text message to the exchnage
157+
func (e *exchangeImpl) AddMsgFrmTemplate(templateId string, parameters map[string]any, actor Actor) (message *Message, err error) {
158+
template := GetPromptTemplate(templateId)
159+
if template == nil {
160+
err = fmt.Errorf("template %s not found", templateId)
161+
return
162+
}
163+
buf := new(bytes.Buffer)
164+
err = template.WriteTo(buf, parameters)
165+
if err != nil {
166+
return
167+
}
168+
message = &Message{
169+
rwer: buf,
170+
mimeType: ioutils.MimeTextPlain,
171+
msgActor: actor,
172+
}
173+
e.messages = append(e.messages, message)
174+
return
175+
}
176+
155177
// AddJsonMsg adds a new JSON message to the exchnage
156178
func (e *exchangeImpl) AddJsonMsg(data interface{}, actor Actor) (message *Message, err error) {
157179
var c codec.Codec
180+
c, err = codec.GetDefault(ioutils.MimeApplicationJSON)
181+
if err != nil {
182+
return
183+
}
158184
message = &Message{
159185
rwer: new(bytes.Buffer),
160186
mimeType: ioutils.MimeApplicationJSON,
161187
msgActor: actor,
162188
}
163-
c, err = codec.GetDefault(ioutils.MimeApplicationJSON)
164-
if err == nil {
165-
err = c.Write(data, message.rwer)
189+
err = c.Write(data, message.rwer)
190+
if err != nil {
191+
return
166192
}
167193
e.messages = append(e.messages, message)
168194
return

genai/model.go

-200
This file was deleted.

0 commit comments

Comments
 (0)