@@ -174,30 +174,40 @@ spice chat --model <model> --cloud
174174 rtcontext .RequireModelsFlavor (cmd )
175175 }
176176
177+ httpEndpoint , err := cmd .Flags ().GetString ("http-endpoint" )
178+ if err != nil {
179+ slog .Error ("could not get http-endpoint flag" , "error" , err )
180+ os .Exit (1 )
181+ }
182+ if httpEndpoint != "" {
183+ rtcontext .SetHttpEndpoint (httpEndpoint )
184+ }
185+
177186 model , err := cmd .Flags ().GetString (modelKeyFlag )
178187 if err != nil {
179188 slog .Error ("could not get model flag" , "error" , err )
180189 os .Exit (1 )
181190 }
182- if model == "" {
183- models , err := api .GetDataSingle [api.ModelResponse ](rtcontext , "/v1/models?status=true" )
184- if err != nil {
185- slog .Error ("could not list models" , "error" , err )
186- os .Exit (1 )
187- }
188191
189- if len (models .Data ) == 0 {
190- slog .Error ("No models found" )
191- os .Exit (1 )
192- }
192+ models , err := api .GetDataSingle [api.ModelResponse ](rtcontext , "/v1/models?status=true" )
193+ if err != nil {
194+ slog .Error ("could not list models" , "error" , err )
195+ os .Exit (1 )
196+ }
193197
194- availableModels := []string {}
195- for _ , model := range models .Data {
196- if model .Status == "Ready" {
197- availableModels = append (availableModels , model .Id )
198- }
198+ if len (models .Data ) == 0 {
199+ slog .Error ("No models found" )
200+ os .Exit (1 )
201+ }
202+
203+ availableModels := []string {}
204+ for _ , model := range models .Data {
205+ if model .Status == "Ready" {
206+ availableModels = append (availableModels , model .Id )
199207 }
208+ }
200209
210+ if model == "" {
201211 if len (availableModels ) == 0 {
202212 slog .Error ("No models are ready" )
203213 os .Exit (1 )
@@ -221,15 +231,20 @@ spice chat --model <model> --cloud
221231
222232 cmd .Printf ("Using model: %s\n " , selectedModel )
223233 model = selectedModel
224- }
234+ } else {
235+ modelIsAvailable := false
236+ for _ , availableModel := range availableModels {
237+ if availableModel == model {
238+ modelIsAvailable = true
239+ break
240+ }
241+ }
225242
226- httpEndpoint , err := cmd .Flags ().GetString ("http-endpoint" )
227- if err != nil {
228- slog .Error ("could not get http-endpoint flag" , "error" , err )
229- os .Exit (1 )
230- }
231- if httpEndpoint != "" {
232- rtcontext .SetHttpEndpoint (httpEndpoint )
243+ if ! modelIsAvailable {
244+ slog .Error ("Requested model is not available" , "model" , model )
245+ slog .Info ("Available models" , "models" , strings .Join (availableModels , ", " ))
246+ os .Exit (1 )
247+ }
233248 }
234249
235250 var messages = []Message {}
0 commit comments