@@ -129,17 +129,23 @@ def _load_models(self):
129129 self ._embedding_model = OpenAIEmbedding (model_name )
130130 else :
131131 from .embeddings .sentence_transformer_embedding import SentenceTransformerEmbedding
132- # No idle timeout - server manages lifecycle
133- self ._embedding_model = SentenceTransformerEmbedding (model_name , lazy_load = False , idle_timeout = 0 )
132+ # Use configured idle timeout (default 30 min) to release VRAM
133+ idle_timeout = self .config .get_model_idle_timeout ()
134+ self ._embedding_model = SentenceTransformerEmbedding (
135+ model_name ,
136+ lazy_load = False ,
137+ idle_timeout = idle_timeout
138+ )
134139
135140 # Load reranker if enabled
136141 if self .config .is_reranker_enabled ():
137142 print (f"Loading reranker model: { self .config .get_reranker_model ()} " , file = sys .stderr )
138143 from .reranker .cross_encoder_reranker import CrossEncoderReranker
144+ idle_timeout = self .config .get_model_idle_timeout ()
139145 self ._reranker = CrossEncoderReranker (
140146 self .config .get_reranker_model (),
141147 lazy_load = False ,
142- idle_timeout = 0
148+ idle_timeout = idle_timeout
143149 )
144150
145151 self ._models_loaded = True
@@ -242,6 +248,23 @@ async def embedding_dimension(request: DimensionRequest):
242248 dim = self ._embedding_model .get_embedding_dimension ()
243249 return {"dimension" : dim }
244250
251+ @app .post ("/clear_cache" )
252+ async def clear_cache (request : DimensionRequest ):
253+ """Clear memory cache (CUDA) without unloading models."""
254+ self ._update_heartbeat (request .client_id )
255+
256+ with self ._models_lock :
257+ if self ._embedding_model :
258+ if hasattr (self ._embedding_model , "clear_cache" ):
259+ self ._embedding_model .clear_cache ()
260+
261+ # Also clear reranker cache if loaded
262+ if self ._reranker :
263+ if hasattr (self ._reranker , "clear_cache" ):
264+ self ._reranker .clear_cache ()
265+
266+ return {"status" : "ok" }
267+
245268 @app .post ("/rerank" )
246269 async def rerank (request : RerankRequest ):
247270 """Rerank documents."""
0 commit comments