2828const relativeToBinaryPath = "<me>"
2929
3030type GPTScript struct {
31- url string
32- globalEnv [] string
31+ url string
32+ globalOpts GlobalOptions
3333}
3434
3535func NewGPTScript (opts ... GlobalOptions ) (* GPTScript , error ) {
@@ -40,7 +40,7 @@ func NewGPTScript(opts ...GlobalOptions) (*GPTScript, error) {
4040
4141 disableServer := os .Getenv ("GPTSCRIPT_DISABLE_SERVER" ) == "true"
4242
43- if serverURL == "" && disableServer {
43+ if serverURL == "" {
4444 serverURL = os .Getenv ("GPTSCRIPT_URL" )
4545 }
4646
@@ -96,11 +96,8 @@ func NewGPTScript(opts ...GlobalOptions) (*GPTScript, error) {
9696 serverURL = strings .TrimSpace (serverURL )
9797 }
9898 g := & GPTScript {
99- url : "http://" + serverURL ,
100- }
101-
102- if disableServer {
103- g .globalEnv = opt .Env [:]
99+ url : "http://" + serverURL ,
100+ globalOpts : opt ,
104101 }
105102
106103 return g , nil
@@ -132,7 +129,7 @@ func (g *GPTScript) Close() {
132129}
133130
134131func (g * GPTScript ) Evaluate (ctx context.Context , opts Options , tools ... ToolDef ) (* Run , error ) {
135- opts .Env = append (g .globalEnv , opts .Env ... )
132+ opts .GlobalOptions = completeGlobalOptions (g .globalOpts , opts .GlobalOptions )
136133 return (& Run {
137134 url : g .url ,
138135 requestPath : "evaluate" ,
@@ -143,7 +140,7 @@ func (g *GPTScript) Evaluate(ctx context.Context, opts Options, tools ...ToolDef
143140}
144141
145142func (g * GPTScript ) Run (ctx context.Context , toolPath string , opts Options ) (* Run , error ) {
146- opts .Env = append (g .globalEnv , opts .Env ... )
143+ opts .GlobalOptions = completeGlobalOptions (g .globalOpts , opts .GlobalOptions )
147144 return (& Run {
148145 url : g .url ,
149146 requestPath : "run" ,
@@ -281,9 +278,28 @@ func (g *GPTScript) ListTools(ctx context.Context) (string, error) {
281278 return out , nil
282279}
283280
281+ type ListModelsOptions struct {
282+ Providers []string
283+ CredentialOverrides []string
284+ }
285+
284286// ListModels will list all the available models.
285- func (g * GPTScript ) ListModels (ctx context.Context ) ([]string , error ) {
286- out , err := g .runBasicCommand (ctx , "list-models" , nil )
287+ func (g * GPTScript ) ListModels (ctx context.Context , opts ... ListModelsOptions ) ([]string , error ) {
288+ var o ListModelsOptions
289+ for _ , opt := range opts {
290+ o .Providers = append (o .Providers , opt .Providers ... )
291+ o .CredentialOverrides = append (o .CredentialOverrides , opt .CredentialOverrides ... )
292+ }
293+
294+ if g .globalOpts .DefaultModelProvider != "" {
295+ o .Providers = append (o .Providers , g .globalOpts .DefaultModelProvider )
296+ }
297+
298+ out , err := g .runBasicCommand (ctx , "list-models" , map [string ]any {
299+ "providers" : o .Providers ,
300+ "env" : g .globalOpts .Env ,
301+ "credentialOverrides" : o .CredentialOverrides ,
302+ })
287303 if err != nil {
288304 return nil , err
289305 }
0 commit comments