@@ -5,60 +5,73 @@ import { BedrockTokenUsage, FeedbackKind, TokenUsage, UnderscoreTokenUsage } fro
55
66export class LDAIConfigTracker {
77 private ldClient : LDClient ;
8- private variationId : Record < string , string > ;
8+ private configKey : string ;
9+ private variationId : string ;
910 private context : LDContext ;
1011
11- constructor ( ldClient : LDClient , variationId : string , context : LDContext ) {
12+ constructor ( ldClient : LDClient , configKey : string , variationId : string , context : LDContext ) {
1213 this . ldClient = ldClient ;
13- this . variationId = { variationId } ;
14+ this . configKey = configKey ;
15+ this . variationId = variationId ;
1416 this . context = context ;
1517 }
1618
19+ getTrackData ( ) {
20+ return {
21+ configKey : this . configKey ,
22+ variationId : this . variationId ,
23+ } ;
24+ }
25+
1726 trackDuration ( duration : number ) : void {
1827 this . ldClient . track ( '$ld:ai:duration:total' , this . context , this . variationId , duration ) ;
1928 }
2029
2130 trackTokens ( tokens : TokenUsage | UnderscoreTokenUsage | BedrockTokenUsage ) {
31+ console . log ( 'tracking LLM tokens' , tokens ) ;
2232 const tokenMetrics = usageToTokenMetrics ( tokens ) ;
33+ console . log ( 'token metrics' , tokenMetrics ) ;
2334 if ( tokenMetrics . total > 0 ) {
2435 this . ldClient . track (
2536 '$ld:ai:tokens:total' ,
2637 this . context ,
27- this . variationId ,
38+ this . getTrackData ( ) ,
2839 tokenMetrics . total ,
2940 ) ;
3041 }
3142 if ( tokenMetrics . input > 0 ) {
43+ console . log ( 'tracking input tokens' , tokenMetrics . input ) ;
3244 this . ldClient . track (
3345 '$ld:ai:tokens:input' ,
3446 this . context ,
35- this . variationId ,
47+ this . getTrackData ( ) ,
3648 tokenMetrics . input ,
3749 ) ;
3850 }
3951 if ( tokenMetrics . output > 0 ) {
52+ console . log ( 'tracking output tokens' , tokenMetrics . output ) ;
4053 this . ldClient . track (
4154 '$ld:ai:tokens:output' ,
4255 this . context ,
43- this . variationId ,
56+ this . getTrackData ( ) ,
4457 tokenMetrics . output ,
4558 ) ;
4659 }
4760 }
4861
4962 trackError ( error : number ) {
50- this . ldClient . track ( '$ld:ai:error' , this . context , this . variationId , error ) ;
63+ this . ldClient . track ( '$ld:ai:error' , this . context , this . getTrackData ( ) , error ) ;
5164 }
5265
5366 trackGeneration ( generation : number ) {
54- this . ldClient . track ( '$ld:ai:generation' , this . context , this . variationId , generation ) ;
67+ this . ldClient . track ( '$ld:ai:generation' , this . context , this . getTrackData ( ) , generation ) ;
5568 }
5669
5770 trackFeedback ( feedback : { kind : FeedbackKind } ) {
5871 if ( feedback . kind === FeedbackKind . Positive ) {
59- this . ldClient . track ( '$ld:ai:feedback:user:positive' , this . context , this . variationId , 1 ) ;
72+ this . ldClient . track ( '$ld:ai:feedback:user:positive' , this . context , this . getTrackData ( ) , 1 ) ;
6073 } else if ( feedback . kind === FeedbackKind . Negative ) {
61- this . ldClient . track ( '$ld:ai:feedback:user:negative' , this . context , this . variationId , 1 ) ;
74+ this . ldClient . track ( '$ld:ai:feedback:user:negative' , this . context , this . getTrackData ( ) , 1 ) ;
6275 }
6376 }
6477}
0 commit comments