Skip to content
DangTAnhPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

NVPI — Gateway NVIDIA Playground miễn phí cho Claude Code

License: MIT Go

Gateway local biến NVIDIA Playground thành API chuẩn OpenAI/Claude/Responses — không cần API key, không tốn phí, thiết kế xoay quanh Claude Code làm client chính. hCaptcha one-shot được mint tự động bằng headless Chrome pool.

Model mặc định: minimaxai/minimax-m3 (1M context).

Kiến trúc

Claude Code / OpenAI SDK ──► NVPI gateway (:8080, CLIProxyAPI embedded)
                              │  translators: OpenAI ↔ Claude ↔ Responses
                              │
                    ┌─────────▼──────────┐
                    │  Captcha token pool │  prewarm FIFO, TTL thích ứng 60–115s,
                    │  batch mint ×N      │  retry budget riêng, reaper + backoff
                    └─────────┬──────────┘
                              │ hcaptcha.execute trên sticky tab
                   ┌──────────▼───────────┐
                   │ Elastic Chrome group  │  1 → chromes-max khi burst,
                   │ (chromedp)            │  thu hồi idle > chrome-idle-recycle
                   └──────────┬───────────┘
                              ▼
              POST api.ngc.nvidia.com/v2/predict/... (anonymous)

Mỗi request chỉ tiêu 1 token one-shot (nv-captcha-token) — không cookie, không Authorization.

Quick start

# Cần Chrome đã cài trên máy (chromedp tự tìm; CHROME_PATH để chỉ đường dẫn)
go run ./cmd/serve -auto -default-model=minimaxai/minimax-m3

Kết nối Claude Code:

export ANTHROPIC_BASE_URL=http://127.0.0.1:8080
export ANTHROPIC_AUTH_TOKEN=dummy   # gateway không kiểm tra key inbound
claude

-default-model rewrite các model claude-* mà NVIDIA không có về model đăng ký — không có flag này thì request model lạ bị 400 nghiêm ngặt.

Hoặc gọi thẳng:

curl http://127.0.0.1:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"minimaxai/minimax-m3","messages":[{"role":"user","content":"Hi"}],"stream":true}'

Endpoint

Đường Nội dung
POST /v1/chat/completions, /v1/responses, /v1/messages 3 format API, translator tích hợp sẵn
GET / Web dashboard (nhúng trong binary): pool/chromes/limits tự poll 5s, bảng model, ô thử chat
GET /api/status Số liệu thật JSON: fills/takes/expired/stale_leases/ttl, chromes live/max, limits
GET /api/models Registry hiện hành kèm contextLength + capability
GET /healthz, GET /hello, GET /api/hello Liveness + số liệu pool/chrome

Cấu hình

Flag Mặc định Ý nghĩa
-addr 127.0.0.1:8080 Bind loopback vì gateway không auth; Docker/compose truyền :8080 tường minh
-auto off Bật Chrome pool prewarm (không bật thì mỗi request phải tự gửi nv-captcha-token)
-pool-size 6 Số token ready giữ trong buffer
-pool-workers 3 Worker mint song song (mỗi worker mượn 1 Chrome)
-pool-batch 6 Token mint mỗi lần mượn Chrome (nhiều widget ẩn trên cùng sticky tab)
-chromes-max 2 Trần Chrome elastic; 1 = cố định. Mặc định thấp để 1 batch phủ burst — ít Chrome, ít RAM
-chrome-idle-recycle 10m Đóng Chrome idle quá hạn (giữ floor 1); đối xứng sticky-tab staleness
-max-inflight 8 Trần stream đồng thời — đủ cho burst parallel tool-call của Claude Code
-inflight-wait 500ms Chờ slot inflight trước khi 503
-coalesce-ms 16 Gộp SSE delta liên tiếp (token đầu luôn flush ngay — TTFT)
-warm-timeout 3m Chờ ≥1 token trước khi serve
-pool-ttl 90s Tuổi tối đa token buffer (tự trôi 60–115s theo tỉ lệ stale)
-captcha-wait 30s Chờ token khi pool cạn rồi mới 503
-captcha-playground rỗng = auto Rỗng: bench cửa sổ trượt 5 trang sống mỗi lần start (-captcha-select-budget 4m), champion lưu ~/.nvpi/playground-state.json; NVIDIA retire model → tự đổi trang mint, không hardcode. Gắn URL để ghim cứng. Bỏ qua khi -captcha-harness bật (mặc định) — mint không phụ thuộc trang model sống
-captcha-harness true Mint trên trang harness tối giản thay vì trang Next.js đầy đủ: cùng origin build.nvidia.com, sitekey scrape bằng HTTP thuần lúc start — RAM/chrome ~50MB thay vì ~150–350MB, warm ~2s thay vì 6–10s, mint batch 6 token ~2s. Scrape fail → tự fallback về đường cũ (kèm playground selection)
-default-model rỗng Rewrite model lạ (VD claude-*) về model đăng ký
-refresh-registry true Refresh catalog NVIDIA lúc start (merge, không thay thế — probe fail tạm thời không làm mất model)
-chrome-proxy CHROME_PROXY Proxy cho cả Chrome lẫn upstream (vd socks5://host:port)

Docker

docker compose up --build -d     # -auto -addr :8080, shm 2GB cho Chrome

Công cụ phụ

Lệnh Dùng để
cmd/captchabatch Bench mint batch trên group elastic
cmd/hangbench Bench độ trễ/khung treo pool
cmd/streambench Bench SSE coalescing
cmd/getsitkey In sitekey hCaptcha bằng cách nghe network traffic
cmd/probehard Probe registry hardcode theo sự tồn tại của trang /playground — liệt kê model retire để prune
cmd/cacheprobe, cmd/captchaopt So chiến lược extract/probe

License

MIT © 2026 6Kmfi6HP

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages