@@ -8,25 +8,23 @@ export interface GlobalOpts {
88 APIKey ?: string
99 BaseURL ?: string
1010 DefaultModel ?: string
11+ Env ?: string [ ]
1112}
1213
13- function globalOptsToArgs ( opts ?: GlobalOpts ) : string [ ] {
14- const args : string [ ] = [ ]
14+ function globalOptsToEnv ( env : NodeJS . ProcessEnv , opts ?: GlobalOpts ) {
1515 if ( ! opts ) {
16- return args
16+ return
1717 }
1818
1919 if ( opts . APIKey ) {
20- args . push ( "--openai-api-key" , opts . APIKey )
20+ env [ "OPENAI_API_KEY" ] = opts . APIKey
2121 }
2222 if ( opts . BaseURL ) {
23- args . push ( "--openai-base-url" , opts . BaseURL )
23+ env [ "OPENAI_BASE_URL" ] = opts . BaseURL
2424 }
2525 if ( opts . DefaultModel ) {
26- args . push ( "--default-model" , opts . DefaultModel )
26+ env [ "GPTSCRIPT_DEFAULT_MODEL" ] = opts . DefaultModel
2727 }
28-
29- return args
3028}
3129
3230export interface RunOpts {
@@ -83,10 +81,23 @@ export class GPTScript {
8381 GPTScript . serverURL = "http://" + u . hostname + ":" + String ( ( s . address ( ) as net . AddressInfo ) . port )
8482 srv . close ( )
8583
86- const args = globalOptsToArgs ( opts )
87- args . push ( "--listen-address" , GPTScript . serverURL . replace ( "http://" , "" ) , "sdkserver" )
88- GPTScript . serverProcess = child_process . spawn ( getCmdPath ( ) , args , {
89- env : process . env ,
84+ let env = process . env
85+ if ( opts && opts . Env ) {
86+ env = { }
87+ for ( const v of opts . Env ) {
88+ const equalIndex = v . indexOf ( "=" )
89+ if ( equalIndex === - 1 ) {
90+ env [ v ] = ""
91+ } else {
92+ env [ v . substring ( 0 , equalIndex ) ] = v . substring ( equalIndex + 1 )
93+ }
94+ }
95+ }
96+
97+ globalOptsToEnv ( env , opts )
98+
99+ GPTScript . serverProcess = child_process . spawn ( getCmdPath ( ) , [ "--listen-address" , GPTScript . serverURL . replace ( "http://" , "" ) , "sdkserver" ] , {
100+ env : env ,
90101 stdio : [ "pipe" ]
91102 } )
92103
0 commit comments