LLM Team UI v1.0 — full-stack local AI orchestration platform
Features: - 20 team modes (brainstorm, debate, consensus, red team, etc.) - 3 autonomous pipelines (research, model eval, knowledge extraction) - AutoResearch Lab with ratchet engine (Karpathy-inspired) - Multi-provider support (Ollama, OpenRouter, OpenAI, Anthropic) - Admin panel (providers, models, timeouts, OpenRouter browser) - History panel with copy/iterate/re-pipe workflow - Context budget system (smart truncation, safe_query, overflow recovery) - PostgreSQL persistence (team_runs, pipeline_runs, lab_experiments, lab_trials) - Pure Python + embedded HTML/CSS/JS, no external JS dependencies - Inline SVG score charts in Lab monitor - SSE streaming for real-time output - Systemd service with auto-restart Stack: Flask + Ollama + PostgreSQL + Bun-compatible Hardware: RTX A4000 (16GB) + 128GB RAM Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
1711d33337
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.env
|
||||
*.log
|
||||
14
llm-team-ui.service
Normal file
14
llm-team-ui.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=LLM Team UI - Multi-model team web interface
|
||||
After=network.target ollama.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/root
|
||||
ExecStart=/usr/bin/python3 /root/llm_team_ui.py
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
33
llm_team_config.json
Normal file
33
llm_team_config.json
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"providers": {
|
||||
"ollama": {
|
||||
"enabled": true,
|
||||
"base_url": "http://localhost:11434",
|
||||
"timeout": 300
|
||||
},
|
||||
"openrouter": {
|
||||
"enabled": false,
|
||||
"base_url": "https://openrouter.ai/api/v1",
|
||||
"api_key": "",
|
||||
"timeout": 120
|
||||
},
|
||||
"openai": {
|
||||
"enabled": false,
|
||||
"base_url": "https://api.openai.com/v1",
|
||||
"api_key": "",
|
||||
"timeout": 120
|
||||
},
|
||||
"anthropic": {
|
||||
"enabled": false,
|
||||
"base_url": "https://api.anthropic.com/v1",
|
||||
"api_key": "",
|
||||
"timeout": 120
|
||||
}
|
||||
},
|
||||
"disabled_models": [],
|
||||
"cloud_models": [],
|
||||
"timeouts": {
|
||||
"global": 300,
|
||||
"per_model": {}
|
||||
}
|
||||
}
|
||||
3472
llm_team_ui.py
Normal file
3472
llm_team_ui.py
Normal file
File diff suppressed because it is too large
Load Diff
54
schema.sql
Normal file
54
schema.sql
Normal file
@ -0,0 +1,54 @@
|
||||
-- LLM Team UI Database Schema
|
||||
-- Run against PostgreSQL: psql -d knowledge_base -f schema.sql
|
||||
|
||||
CREATE TABLE IF NOT EXISTS team_runs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
mode TEXT NOT NULL,
|
||||
prompt TEXT NOT NULL,
|
||||
config JSONB,
|
||||
responses JSONB NOT NULL DEFAULT '[]',
|
||||
models_used TEXT[],
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pipeline_runs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
pipeline TEXT NOT NULL,
|
||||
topic TEXT NOT NULL,
|
||||
status TEXT DEFAULT 'running',
|
||||
steps JSONB DEFAULT '[]',
|
||||
result JSONB,
|
||||
models_used TEXT[],
|
||||
duration_ms INTEGER,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
completed_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lab_experiments (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
status TEXT DEFAULT 'idle',
|
||||
objective TEXT,
|
||||
metric TEXT DEFAULT 'quality',
|
||||
eval_cases JSONB DEFAULT '[]',
|
||||
mutable_config JSONB DEFAULT '{}',
|
||||
best_config JSONB,
|
||||
best_score FLOAT DEFAULT 0,
|
||||
total_trials INTEGER DEFAULT 0,
|
||||
improvements INTEGER DEFAULT 0,
|
||||
models_pool TEXT[],
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lab_trials (
|
||||
id SERIAL PRIMARY KEY,
|
||||
experiment_id INTEGER REFERENCES lab_experiments(id) ON DELETE CASCADE,
|
||||
trial_num INTEGER,
|
||||
config_diff TEXT,
|
||||
config_snapshot JSONB,
|
||||
scores JSONB,
|
||||
avg_score FLOAT,
|
||||
improved BOOLEAN DEFAULT FALSE,
|
||||
duration_ms INTEGER,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
Loading…
x
Reference in New Issue
Block a user