1
- import "dotenv/config" ;
2
1
import OpenAI from "openai" ;
3
-
2
+ import { GWT_CONFIG } from "@idealeap/gwt" ;
4
3
// only for openai-node ^4.0.0
5
4
export type messagesType = OpenAI . Chat . CreateChatCompletionRequestMessage [ ] ;
6
5
export type messageType = OpenAI . Chat . CreateChatCompletionRequestMessage ;
@@ -68,6 +67,12 @@ export class LLM {
68
67
choice_num ?: number | 1 ;
69
68
stop ?: string | null | string [ ] ;
70
69
cache ?: boolean ;
70
+ roleToColor = {
71
+ system : "red" ,
72
+ user : "green" ,
73
+ assistant : "blue" ,
74
+ function : "magenta" ,
75
+ } ;
71
76
72
77
constructor ( params : createLLMSchema ) {
73
78
const {
@@ -93,22 +98,15 @@ export class LLM {
93
98
HELICONE_AUTH_API_KEY = undefined ,
94
99
OPENAI_API_KEY = undefined ,
95
100
} : createLLMSchema ) : llmType {
96
- if ( ! process . env . OPENAI_API_KEY && ! OPENAI_API_KEY ) {
101
+ if ( ! GWT_CONFIG . OPENAI_API_KEY && ! OPENAI_API_KEY ) {
97
102
this . missingEnvironmentVariable (
98
103
"OPENAI_API_KEY Missing! 😅 It's not free!" ,
99
104
) ;
100
105
}
101
- const openAIApiKey = OPENAI_API_KEY || process . env . OPENAI_API_KEY ;
106
+ const openAIApiKey = OPENAI_API_KEY || GWT_CONFIG . OPENAI_API_KEY ;
102
107
const config =
103
- process . env . HELICONE_AUTH_API_KEY || HELICONE_AUTH_API_KEY
104
- ? {
105
- baseURL : "https://oai.hconeai.com/v1" ,
106
- defaultHeaders : {
107
- "Helicone-Auth" : `Bearer ${
108
- HELICONE_AUTH_API_KEY || process . env . HELICONE_AUTH_API_KEY
109
- } `,
110
- } ,
111
- }
108
+ GWT_CONFIG . HELICONE_AUTH_API_KEY || HELICONE_AUTH_API_KEY
109
+ ? GWT_CONFIG . OPEN_PATH
112
110
: { } ;
113
111
return new OpenAI ( {
114
112
...config ,
@@ -262,81 +260,78 @@ export class LLM {
262
260
} ) ;
263
261
}
264
262
265
- printMessage ( resMessages ?: resMessagesType , reqMessages ?: messagesType ) {
266
- const roleToColor = {
267
- system : "red" ,
268
- user : "green" ,
269
- assistant : "blue" ,
270
- function : "magenta" ,
271
- } ;
272
- ! ! reqMessages && prettyPrintReqMessage ( reqMessages ) ;
273
- ! ! resMessages && prettyPrintResMessage ( resMessages ) ;
274
- ! reqMessages && ! resMessages && prettyPrintReqMessage ( this . messages ) ;
275
- function prettyPrintReqMessage ( messages : messagesType ) {
276
- for ( const message of messages ) {
277
- if ( message . role === "system" ) {
278
- console . log (
279
- `%c system ${ message . name ? "(" + message . name + ")" : "" } : ${
280
- message . content
281
- } \n`,
282
- `color: ${ roleToColor [ message . role ] } ` ,
283
- ) ;
284
- } else if ( message . role === "user" ) {
285
- console . log (
286
- `%c user: ${ message . content } \n` ,
287
- `color: ${ roleToColor [ message . role ] } ` ,
288
- ) ;
289
- } else if ( message . role === "assistant" && message . function_call ) {
290
- console . log (
291
- `%c assistant: ${ JSON . stringify ( message . function_call ) } \n` ,
292
- `color: ${ roleToColor [ message . role ] } ` ,
293
- ) ;
294
- } else if ( message . role === "assistant" && ! message . function_call ) {
295
- console . log (
296
- `%c assistant: ${ message . content } \n` ,
297
- `color: ${ roleToColor [ message . role ] } ` ,
298
- ) ;
299
- } else if ( message . role === "function" ) {
300
- console . log (
301
- `%c function (${
302
- message . name // response message has not `name`
303
- } ): ${ message . content } \n`,
304
- `color: ${ roleToColor [ message . role ] } ` ,
305
- ) ;
306
- }
263
+ log ( ...args : string [ ] ) {
264
+ console . log ( args ) ;
265
+ }
266
+ prettyPrintReqMessage ( messages : messagesType ) {
267
+ for ( const message of messages ) {
268
+ if ( message . role === "system" ) {
269
+ this . log (
270
+ `%c system ${ message . name ? "(" + message . name + ")" : "" } : ${
271
+ message . content
272
+ } \n`,
273
+ `color: ${ this . roleToColor [ message . role ] } ` ,
274
+ ) ;
275
+ } else if ( message . role === "user" ) {
276
+ this . log (
277
+ `%c user: ${ message . content } \n` ,
278
+ `color: ${ this . roleToColor [ message . role ] } ` ,
279
+ ) ;
280
+ } else if ( message . role === "assistant" && message . function_call ) {
281
+ this . log (
282
+ `%c assistant: ${ JSON . stringify ( message . function_call ) } \n` ,
283
+ `color: ${ this . roleToColor [ message . role ] } ` ,
284
+ ) ;
285
+ } else if ( message . role === "assistant" && ! message . function_call ) {
286
+ this . log (
287
+ `%c assistant: ${ message . content } \n` ,
288
+ `color: ${ this . roleToColor [ message . role ] } ` ,
289
+ ) ;
290
+ } else if ( message . role === "function" ) {
291
+ this . log (
292
+ `%c function (${
293
+ message . name // response message has not `name`
294
+ } ): ${ message . content } \n`,
295
+ `color: ${ this . roleToColor [ message . role ] } ` ,
296
+ ) ;
307
297
}
308
298
}
309
-
310
- function prettyPrintResMessage ( messages : resMessagesType ) {
311
- for ( const message_ of messages ) {
312
- const message = message_ . message ;
313
- if ( message . role === "system" ) {
314
- console . log (
315
- `%c system: ${ message . content } \n` ,
316
- `color: ${ roleToColor [ message . role ] } ` ,
317
- ) ;
318
- } else if ( message . role === "user" ) {
319
- console . log (
320
- `%c user: ${ message . content } \n` ,
321
- `color: ${ roleToColor [ message . role ] } ` ,
322
- ) ;
323
- } else if ( message . role === "assistant" && message . function_call ) {
324
- console . log (
325
- `%c assistant: ${ JSON . stringify ( message . function_call ) } \n` ,
326
- `color: ${ roleToColor [ message . role ] } ` ,
327
- ) ;
328
- } else if ( message . role === "assistant" && ! message . function_call ) {
329
- console . log (
330
- `%c assistant: ${ message . content } \n` ,
331
- `color: ${ roleToColor [ message . role ] } ` ,
332
- ) ;
333
- } else if ( message . role === "function" ) {
334
- console . log (
335
- `%c function : ${ message . content } \n` ,
336
- `color: ${ roleToColor [ message . role ] } ` ,
337
- ) ;
338
- }
299
+ }
300
+ prettyPrintResMessage ( messages : resMessagesType ) {
301
+ for ( const message_ of messages ) {
302
+ const message = message_ . message ;
303
+ if ( message . role === "system" ) {
304
+ this . log (
305
+ `%c system: ${ message . content } \n` ,
306
+ `color: ${ this . roleToColor [ message . role ] } ` ,
307
+ ) ;
308
+ } else if ( message . role === "user" ) {
309
+ this . log (
310
+ `%c user: ${ message . content } \n` ,
311
+ `color: ${ this . roleToColor [ message . role ] } ` ,
312
+ ) ;
313
+ } else if ( message . role === "assistant" && message . function_call ) {
314
+ this . log (
315
+ `%c assistant: ${ JSON . stringify ( message . function_call ) } \n` ,
316
+ `color: ${ this . roleToColor [ message . role ] } ` ,
317
+ ) ;
318
+ } else if ( message . role === "assistant" && ! message . function_call ) {
319
+ this . log (
320
+ `%c assistant: ${ message . content } \n` ,
321
+ `color: ${ this . roleToColor [ message . role ] } ` ,
322
+ ) ;
323
+ } else if ( message . role === "function" ) {
324
+ this . log (
325
+ `%c function : ${ message . content } \n` ,
326
+ `color: ${ this . roleToColor [ message . role ] } ` ,
327
+ ) ;
339
328
}
340
329
}
341
330
}
331
+
332
+ printMessage ( resMessages ?: resMessagesType , reqMessages ?: messagesType ) {
333
+ ! ! reqMessages && this . prettyPrintReqMessage ( reqMessages ) ;
334
+ ! ! resMessages && this . prettyPrintResMessage ( resMessages ) ;
335
+ ! reqMessages && ! resMessages && this . prettyPrintReqMessage ( this . messages ) ;
336
+ }
342
337
}
0 commit comments