Initial vLLM agent strategy
This commit is contained in:
87
app/storage/schema.py
Normal file
87
app/storage/schema.py
Normal file
@@ -0,0 +1,87 @@
|
||||
SCHEMA_SQL = """
|
||||
CREATE TABLE IF NOT EXISTS candidates (
|
||||
model_id TEXT PRIMARY KEY,
|
||||
source TEXT NOT NULL DEFAULT 'HUGGING_FACE',
|
||||
origin TEXT NOT NULL,
|
||||
priority INTEGER NOT NULL,
|
||||
is_bounty INTEGER NOT NULL DEFAULT 0,
|
||||
is_promote INTEGER NOT NULL DEFAULT 0,
|
||||
known_downloaded_by_others INTEGER NOT NULL DEFAULT 0,
|
||||
self_download_allowed INTEGER NOT NULL DEFAULT 0,
|
||||
max_model_len INTEGER NOT NULL DEFAULT 1024,
|
||||
target_gpu_aliases TEXT,
|
||||
notes TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tasks (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
model_id TEXT NOT NULL,
|
||||
gpu_alias TEXT NOT NULL,
|
||||
gpu_type TEXT NOT NULL,
|
||||
engine TEXT NOT NULL DEFAULT 'vllm',
|
||||
priority INTEGER NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
attempt_count INTEGER NOT NULL DEFAULT 0,
|
||||
submit_count INTEGER NOT NULL DEFAULT 0,
|
||||
last_error_code TEXT,
|
||||
last_error_message TEXT,
|
||||
next_attempt_at TEXT,
|
||||
submitted_at TEXT,
|
||||
completed_at TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
UNIQUE(model_id, gpu_type, engine)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS downloads (
|
||||
model_id TEXT PRIMARY KEY,
|
||||
source TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'unknown',
|
||||
owner TEXT NOT NULL DEFAULT 'unknown',
|
||||
active_self_slot INTEGER NOT NULL DEFAULT 0,
|
||||
download_code TEXT,
|
||||
download_message TEXT,
|
||||
waiting_since TEXT,
|
||||
last_polled_at TEXT,
|
||||
next_poll_at TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS submission_attempts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER NOT NULL,
|
||||
model_id TEXT NOT NULL,
|
||||
gpu_type TEXT NOT NULL,
|
||||
strategy_id TEXT,
|
||||
payload_strategy_field TEXT,
|
||||
response_code TEXT,
|
||||
response_message TEXT,
|
||||
result TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS seed_imports (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
file_path TEXT NOT NULL,
|
||||
file_hash TEXT,
|
||||
imported_count INTEGER NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tasks_sched
|
||||
ON tasks(status, priority, next_attempt_at, created_at);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tasks_model
|
||||
ON tasks(model_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_downloads_poll
|
||||
ON downloads(status, next_poll_at);
|
||||
"""
|
||||
|
||||
|
||||
def init_schema(conn):
|
||||
conn.executescript(SCHEMA_SQL)
|
||||
conn.commit()
|
||||
Reference in New Issue
Block a user