Initial vLLM agent strategy

This commit is contained in:
2026-07-21 16:04:18 +08:00
commit d17bb21bbb
48 changed files with 3006 additions and 0 deletions

24
app/scheduler/planner.py Normal file
View 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