Skip to content

ProfineAI/gpunity_webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPUnity Web Demo

FastAPI backend + static web app for GPU workload scans and marketplace search.

Features

  • Supabase auth + repo/scan sync (optional); demo mode stores data locally
  • Add repos via public GitHub URL, folder upload, or zip upload
  • Codebase scanning: framework, workload profile, entrypoints, extracted params, risk analysis
  • Optional OpenAI enrichment + AI suggestions
  • Scan JSON viewer, copy, and download
  • Per-repo workload and scan overrides
  • GPU marketplace search with filters + ranking
  • Providers: Vast.ai and Runpod
  • GPUnity Agent page for repo analysis + GPU provisioning via Skypilot

Quick Start

Backend:

# one-time setup
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# run
touch .env
uvicorn backend.main:app --reload --port 8000

Frontend:

# update web/config.js then
source .venv/bin/activate
python3 -m http.server 5500 --bind 127.0.0.1 --directory web

Open:

  • http://127.0.0.1:5500/index.html (landing)
  • http://127.0.0.1:5500/app.html (workspace)
  • http://127.0.0.1:5500/agent.html (GPUnity Agent)

Config (minimum)

Backend .env:

  • OPENAI_API_KEY (optional)
  • ANTHROPIC_API_KEY (optional, enables agentic scanner)
  • ANTHROPIC_MODEL (optional, default claude-sonnet-4-20250514)
  • AGENTIC_MAX_ITERATIONS (optional, reduce agentic steps to avoid rate limits)
  • AGENTIC_MAX_TOKENS (optional, token cap per agentic call; default 4096)
  • GITHUB_TOKEN (optional, increases agentic scan GitHub API limits)
  • MAX_FILE_SIZE_MB
  • ALLOWED_ORIGINS
  • SKYPILOT_ENABLED (set to true to run sky launch)
  • SKYPILOT_CLOUD (default aws)
  • SKYPILOT_STOP_ACTION (stop or down)
  • SKYPILOT_LAUNCH_TIMEOUT (seconds, default 900)
  • SKYPILOT_KEEP_WORKDIR (set to true to keep extracted repo + YAML for debugging)
  • SKYPILOT_USE_JOBS (set to true to use sky jobs launch)
  • SKYPILOT_RETRY_UNTIL_UP (set to true to pass --retry-until-up for sky launch)
  • SKYPILOT_DETACH_RUN (set to false to keep sky launch attached; default true)
  • SKYPILOT_LOGS_NO_FOLLOW (set to false to allow log streaming; default true)
  • SKYPILOT_ALLOW_ONDEMAND_FALLBACK (set to true to use spot with on-demand fallback)
  • SKYPILOT_REGION / SKYPILOT_ZONE (optional pinning of location)
  • SKYPILOT_JOB_RESTARTS (set to a number to enable job recovery retries)
  • SKYPILOT_CATALOG_ENABLED (set to true to align recommendations with sky show-gpus)
  • SKYPILOT_PIP_TIMEOUT (pip timeout seconds for setup, default 120)
  • SKYPILOT_PIP_RETRIES (pip retries for setup, default 5)
  • SKYPILOT_PIP_INDEX_URL (optional pip index override)
  • SKYPILOT_PIP_EXTRA_INDEX_URL (optional pip extra index)
  • GPU_AGENT_ENABLED (set to false to disable the LangChain GPU planner)
  • GPU_AGENT_MAX_ATTEMPTS (search retries, default 4)
  • GPU_AGENT_MAX_QUESTIONS (clarifying questions cap, default 4)
  • GPU_AGENT_MODEL (override the OpenAI model for GPU planning)
  • GPU_AGENT_TEMPERATURE (LLM temperature, default 0.2)

Frontend web/config.js:

  • apiBaseUrl
  • supabaseUrl, supabaseAnonKey (optional)

Notes

  • Public GitHub repositories only.
  • AI scan requires an OpenAI API key on the backend.

Deploy

  • Render blueprint supported via render.yaml.
  • scripts/render_build.sh writes web/config.js during static build.
  • For Render production, keep ALLOWED_ORIGINS locked to your web domain.
  • Rate limiting is preconfigured in render.yaml with Redis storage; update limits via RATE_LIMIT_* env vars.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors