@@ -25,6 +25,8 @@ import {
2525 AggregateResult ,
2626 AggregateText ,
2727 AggregateType ,
28+ GenerativeConfigRuntime ,
29+ GenerativeMetadata ,
2830 PropertiesMetrics ,
2931} from '../index.js' ;
3032import { referenceFromObjects } from '../references/utils.js' ;
@@ -207,19 +209,43 @@ export class Deserialize {
207209 } ;
208210 }
209211
210- public generate < T > ( reply : SearchReply ) : GenerativeReturn < T > {
212+ public generate < T , C extends GenerativeConfigRuntime | undefined > (
213+ reply : SearchReply
214+ ) : GenerativeReturn < T , C > {
211215 return {
212216 objects : reply . results . map ( ( result ) => {
213217 return {
214- generated : result . metadata ?. generativePresent ? result . metadata ?. generative : undefined ,
218+ generated : result . metadata ?. generativePresent
219+ ? result . metadata ?. generative
220+ : result . generative
221+ ? result . generative . values [ 0 ] . result
222+ : undefined ,
223+ generative : result . generative
224+ ? {
225+ text : result . generative . values [ 0 ] . result ,
226+ debug : result . generative . values [ 0 ] . debug ,
227+ metadata : result . generative . values [ 0 ] . metadata as GenerativeMetadata < C > ,
228+ }
229+ : undefined ,
215230 metadata : Deserialize . metadata ( result . metadata ) ,
216231 properties : this . properties ( result . properties ) ,
217232 references : this . references ( result . properties ) ,
218233 uuid : Deserialize . uuid ( result . metadata ) ,
219234 vectors : Deserialize . vectors ( result . metadata ) ,
220235 } as any ;
221236 } ) ,
222- generated : reply . generativeGroupedResult ,
237+ generated :
238+ reply . generativeGroupedResult !== ''
239+ ? reply . generativeGroupedResult
240+ : reply . generativeGroupedResults
241+ ? reply . generativeGroupedResults . values [ 0 ] . result
242+ : undefined ,
243+ generative : reply . generativeGroupedResults
244+ ? {
245+ text : reply . generativeGroupedResults ?. values [ 0 ] . result ,
246+ metadata : reply . generativeGroupedResults ?. values [ 0 ] . metadata as GenerativeMetadata < C > ,
247+ }
248+ : undefined ,
223249 } ;
224250 }
225251
@@ -252,9 +278,9 @@ export class Deserialize {
252278 } ;
253279 }
254280
255- public generateGroupBy < T > ( reply : SearchReply ) : GenerativeGroupByReturn < T > {
281+ public generateGroupBy < T > ( reply : SearchReply ) : GenerativeGroupByReturn < T , any > {
256282 const objects : GroupByObject < T > [ ] = [ ] ;
257- const groups : Record < string , GenerativeGroupByResult < T > > = { } ;
283+ const groups : Record < string , GenerativeGroupByResult < T , any > > = { } ;
258284 reply . groupByResults . forEach ( ( result ) => {
259285 const objs = result . objects . map ( ( object ) => {
260286 return {
0 commit comments