9
9
"strings"
10
10
"sync"
11
11
12
+ openai2 "github.com/gptscript-ai/chat-completion-client"
12
13
"github.com/gptscript-ai/gptscript/pkg/cache"
13
14
"github.com/gptscript-ai/gptscript/pkg/credentials"
14
15
"github.com/gptscript-ai/gptscript/pkg/engine"
@@ -62,7 +63,7 @@ func (c *Client) Call(ctx context.Context, messageRequest types.CompletionReques
62
63
return client .Call (ctx , messageRequest , env , status )
63
64
}
64
65
65
- func (c * Client ) ListModels (ctx context.Context , providers ... string ) (result []string , _ error ) {
66
+ func (c * Client ) ListModels (ctx context.Context , providers ... string ) (result []openai2. Model , _ error ) {
66
67
for _ , provider := range providers {
67
68
client , err := c .load (ctx , provider )
68
69
if err != nil {
@@ -72,12 +73,16 @@ func (c *Client) ListModels(ctx context.Context, providers ...string) (result []
72
73
if err != nil {
73
74
return nil , err
74
75
}
75
- for _ , model := range models {
76
- result = append ( result , model + " from " + provider )
76
+ for i := range models {
77
+ models [ i ]. ID = fmt . Sprintf ( "%s from %s" , models [ i ]. ID , provider )
77
78
}
79
+
80
+ result = append (result , models ... )
78
81
}
79
82
80
- sort .Strings (result )
83
+ sort .Slice (result , func (i , j int ) bool {
84
+ return result [i ].ID < result [j ].ID
85
+ })
81
86
return
82
87
}
83
88
0 commit comments