@@ -2,6 +2,7 @@ package genai
2
2
3
3
import (
4
4
"bytes"
5
+ "fmt"
5
6
"net/url"
6
7
7
8
"oss.nandlabs.io/golly/codec"
@@ -152,17 +153,42 @@ func (e *exchangeImpl) AddTxtMsg(text string, actor Actor) (message *Message, er
152
153
return
153
154
}
154
155
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
+
155
177
// AddJsonMsg adds a new JSON message to the exchnage
156
178
func (e * exchangeImpl ) AddJsonMsg (data interface {}, actor Actor ) (message * Message , err error ) {
157
179
var c codec.Codec
180
+ c , err = codec .GetDefault (ioutils .MimeApplicationJSON )
181
+ if err != nil {
182
+ return
183
+ }
158
184
message = & Message {
159
185
rwer : new (bytes.Buffer ),
160
186
mimeType : ioutils .MimeApplicationJSON ,
161
187
msgActor : actor ,
162
188
}
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
166
192
}
167
193
e .messages = append (e .messages , message )
168
194
return
0 commit comments