@@ -98,6 +98,7 @@ func (m *Manager) routeHandlers() map[string]http.HandlerFunc {
98
98
"GET " + inference .ModelsPrefix + "/{name...}" : m .handleGetModel ,
99
99
"DELETE " + inference .ModelsPrefix + "/{name...}" : m .handleDeleteModel ,
100
100
"POST " + inference .ModelsPrefix + "/{nameAndAction...}" : m .handleModelAction ,
101
+ "DELETE " + inference .ModelsPrefix + "/prune" : m .handlePrune ,
101
102
"GET " + inference .InferencePrefix + "/{backend}/v1/models" : m .handleOpenAIGetModels ,
102
103
"GET " + inference .InferencePrefix + "/{backend}/v1/models/{name...}" : m .handleOpenAIGetModel ,
103
104
"GET " + inference .InferencePrefix + "/v1/models" : m .handleOpenAIGetModels ,
@@ -400,6 +401,20 @@ func (m *Manager) handlePushModel(w http.ResponseWriter, r *http.Request, model
400
401
}
401
402
}
402
403
404
+ // handlePrune handles DELETE <inference-prefix>/models/prune requests.
405
+ func (m * Manager ) handlePrune (w http.ResponseWriter , _ * http.Request ) {
406
+ if m .distributionClient == nil {
407
+ http .Error (w , "model distribution service unavailable" , http .StatusServiceUnavailable )
408
+ return
409
+ }
410
+
411
+ if err := m .distributionClient .ResetStore (); err != nil {
412
+ m .log .Warnf ("Failed to prune models: %v" , err )
413
+ http .Error (w , err .Error (), http .StatusInternalServerError )
414
+ return
415
+ }
416
+ }
417
+
403
418
// GetDiskUsage returns the disk usage of the model store.
404
419
func (m * Manager ) GetDiskUsage () (float64 , error , int ) {
405
420
if m .distributionClient == nil {
0 commit comments