@@ -131,12 +131,19 @@ export async function generateText({
131
131
stopSequences ?: string [ ] ;
132
132
customSystemPrompt ?: string ;
133
133
} ) : Promise < string > {
134
+
135
+ logger . debug ( "Generating text" )
136
+ logger . debug ( context )
137
+
134
138
const text = await runtime . useModel ( modelClass , {
135
139
runtime,
136
140
context,
137
141
stopSequences,
138
142
} ) ;
139
143
144
+ logger . debug ( "Generated text" )
145
+ logger . debug ( text )
146
+
140
147
return text ;
141
148
}
142
149
@@ -257,7 +264,7 @@ export async function generateTrueOrFalse({
257
264
export const generateObject = async ( {
258
265
runtime,
259
266
context,
260
- modelClass = ModelClass . TEXT_SMALL ,
267
+ modelClass = ModelClass . TEXT_LARGE ,
261
268
stopSequences,
262
269
} : GenerateObjectOptions ) : Promise < any > => {
263
270
if ( ! context ) {
@@ -266,16 +273,37 @@ export const generateObject = async ({
266
273
throw new Error ( errorMessage ) ;
267
274
}
268
275
269
- const { object } = await runtime . useModel ( modelClass , {
276
+ const obj = await runtime . useModel ( modelClass , {
270
277
runtime,
271
278
context,
272
279
modelClass,
273
280
stopSequences,
274
281
object : true ,
275
282
} ) ;
276
283
277
- logger . debug ( `Received Object response from ${ modelClass } model.` ) ;
278
- return object ;
284
+ let jsonString = obj ;
285
+
286
+ // try to find a first and last bracket
287
+ const firstBracket = obj . indexOf ( "{" ) ;
288
+ const lastBracket = obj . lastIndexOf ( "}" ) ;
289
+ if ( firstBracket !== - 1 && lastBracket !== - 1 && firstBracket < lastBracket ) {
290
+ jsonString = obj . slice ( firstBracket , lastBracket + 1 ) ;
291
+ }
292
+
293
+ if ( jsonString . length === 0 ) {
294
+ logger . error ( "Failed to extract JSON string from model response" ) ;
295
+ return null ;
296
+ }
297
+
298
+ // parse the json string
299
+ try {
300
+ const json = JSON . parse ( jsonString ) ;
301
+ return json ;
302
+ } catch ( error ) {
303
+ logger . error ( "Failed to parse JSON string" ) ;
304
+ logger . error ( jsonString ) ;
305
+ return null ;
306
+ }
279
307
} ;
280
308
281
309
export async function generateObjectArray ( {
0 commit comments