Initial vLLM agent strategy
This commit is contained in:
24
app/scheduler/planner.py
Normal file
24
app/scheduler/planner.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from app.domain.gpu import expand_gpu_aliases, parse_aliases
|
||||
from app.domain.model_type import engine_for_model
|
||||
from app.storage.repositories import Repository
|
||||
from app.scheduler.budget import Budget
|
||||
|
||||
|
||||
class Planner:
|
||||
def __init__(self, repo: Repository, budget: Budget, default_aliases: list[str]):
|
||||
self.repo = repo
|
||||
self.budget = budget
|
||||
self.default_aliases = default_aliases
|
||||
|
||||
def materialize_tasks(self) -> int:
|
||||
created = 0
|
||||
for candidate in self.repo.list_candidates():
|
||||
if engine_for_model(candidate["model_id"]) != "vllm":
|
||||
continue
|
||||
aliases = parse_aliases(candidate["target_gpu_aliases"], self.default_aliases)
|
||||
for gpu_alias, gpu_type in expand_gpu_aliases(aliases):
|
||||
if not self.budget.can_create_task():
|
||||
return created
|
||||
if self.repo.insert_task_if_absent(candidate["model_id"], gpu_alias, gpu_type, candidate["priority"]):
|
||||
created += 1
|
||||
return created
|
||||
Reference in New Issue
Block a user