Feature/Add GET endpoint to query loaded LoRA adapters (#12229)
This commit is contained in:
@@ -1168,6 +1168,8 @@ async def available_models():
|
||||
"""Show available models. OpenAI-compatible endpoint."""
|
||||
served_model_names = [_global_state.tokenizer_manager.served_model_name]
|
||||
model_cards = []
|
||||
|
||||
# Add base model
|
||||
for served_model_name in served_model_names:
|
||||
model_cards.append(
|
||||
ModelCard(
|
||||
@@ -1176,6 +1178,20 @@ async def available_models():
|
||||
max_model_len=_global_state.tokenizer_manager.model_config.context_len,
|
||||
)
|
||||
)
|
||||
|
||||
# Add loaded LoRA adapters
|
||||
if _global_state.tokenizer_manager.server_args.enable_lora:
|
||||
lora_registry = _global_state.tokenizer_manager.lora_registry
|
||||
for _, lora_ref in lora_registry.get_all_adapters().items():
|
||||
model_cards.append(
|
||||
ModelCard(
|
||||
id=lora_ref.lora_name,
|
||||
root=lora_ref.lora_path,
|
||||
parent=served_model_names[0],
|
||||
max_model_len=None,
|
||||
)
|
||||
)
|
||||
|
||||
return ModelList(data=model_cards)
|
||||
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ class ModelCard(BaseModel):
|
||||
created: int = Field(default_factory=lambda: int(time.time()))
|
||||
owned_by: str = "sglang"
|
||||
root: Optional[str] = None
|
||||
parent: Optional[str] = None
|
||||
max_model_len: Optional[int] = None
|
||||
|
||||
|
||||
|
||||
@@ -205,3 +205,12 @@ class LoRARegistry:
|
||||
Returns the total number of LoRA adapters currently registered.
|
||||
"""
|
||||
return len(self._registry)
|
||||
|
||||
def get_all_adapters(self) -> Dict[str, LoRARef]:
|
||||
"""
|
||||
Returns a dictionary of all registered LoRA adapters.
|
||||
|
||||
Returns:
|
||||
Dict[str, LoRARef]: A dictionary mapping LoRA names to LoRARef objects.
|
||||
"""
|
||||
return dict(self._registry)
|
||||
|
||||
Reference in New Issue
Block a user