From cf3117e45850b289266eb7b17d8cd8348a1bb296 Mon Sep 17 00:00:00 2001 From: karti Date: Wed, 12 Aug 2026 21:52:33 -0700 Subject: [PATCH] Record verified Prime Intellect API facts, and log a real pricing bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The token was found on cloud-1 after all, in a Claude memory note. Verifying its claims against the live API turned up a defect in code already shipped. **prices.onDemand is the total for the whole node, not per-GPU.** Confirmed: datacrunch lists 1x A100 at 1.79 and 2x A100 at 3.58, and gpuMemory scales the same way (640 for 8x 80GB). packages/prime/src/map.ts stores both as if they were per-GPU, so an 8-GPU node reads eight times too expensive. It would have silently poisoned inventory search, the max-price filter and every margin comparison against bought capacity — and nobody would have noticed, because the numbers still look plausible. Logged rather than fixed, per the instruction to hold; it needs a regression test built from the real 1x/2x pair. **Inference is a different host.** api.primeintellect.ai is compute and pods; inference is api.pinference.ai/api/v1, OpenAI-compatible. PIG's config knows only the first, so A4 and A13 need both. **Piggy's default model** is nvidia/nemotron-3-nano-30b-a3b, and the important detail is that it is a hybrid reasoning model which thinks aloud by default and truncates under a tight max_tokens. `reasoning_effort: "none"` gives ~1s terse output for tool use and extraction, which is what Piggy does nearly all of the time. One claim did NOT reproduce: the note warns of Cloudflare 403ing non-browser user-agents, but PIG's own UA and curl's both returned 200. Recorded as history in case a 403 ever appears. Also logged: the key is a broad, never-expiring credential sitting in plaintext in a memory markdown file. PIG's sync should hold a separate narrower key scoped to availability reads. Co-Authored-By: Claude Opus 5 (1M context) --- docs/build-plan.md | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/docs/build-plan.md b/docs/build-plan.md index 52f7a53..1ae2f4a 100644 --- a/docs/build-plan.md +++ b/docs/build-plan.md @@ -146,14 +146,43 @@ carry real data than after. --- +## Prime Intellect API — verified facts + +Confirmed against the live API, not assumed. These change how A4, A13 and the +inventory sync must be built. + +**Two different hosts.** `api.primeintellect.ai` is the compute/pods API +(availability, pods, billing). Inference is `api.pinference.ai/api/v1`, which +is OpenAI-compatible (`/chat/completions`, `/models`, and an Anthropic-style +`/messages`). PIG's config needs both, separately — `PRIME_API_BASE` today +points only at the first. + +**⚠️ `prices.onDemand` is the TOTAL FOR THE NODE, not per-GPU.** Verified: +datacrunch lists 1× A100 at 1.79 and 2× A100 at 3.58. `gpuMemory` is likewise +a node total (640 for 8× 80GB). The current mapper stores both as if per-GPU, +so an 8-GPU node reads eight times too expensive — see the logged bug. Divide +by `gpuCount` at the boundary and keep the node total alongside it. + +**Piggy's default model:** `nvidia/nemotron-3-nano-30b-a3b` ($0.05/$0.20 per +Mtok). It is a *hybrid reasoning* model that thinks aloud by default and will +ramble or truncate under a tight `max_tokens`. Pass **`reasoning_effort: +"none"`** for tool use, routing, extraction and classification — roughly one +second, terse output. Leave reasoning on only for genuine math or logic, where +it arrives in a separate `reasoning_content` field while `content` stays clean. + +**Billing** is pay-as-you-go against a shared balance, not a per-model +whitelist. Check with `GET /api/v1/billing/wallet`. + +**The user-agent concern did not reproduce** — both a browser UA and PIG's own +returned 200. Worth remembering it was once an issue if a 403 ever appears. + ## Open questions -- **Where is the Prime Intellect API token?** Searched cloud-1's `~/.prime`, - `~/.config/prime`, `/opt` and `/etc` and found nothing. Needed for A13 (model - selection against PI inference) and to switch inventory sync on. Scope it to - `Availability → Read` for sync; model access needs its own key. -- **Which Nemotron model** should Piggy default to, and is it served from PI - inference or from your own spark-1 box? The adapter should treat the endpoint - as configuration either way. +- **Which inference host for on-prem?** Piggy's endpoint must be configuration, + since a customer deployment should reach their own inference rather than + Prime Intellect's. The model *name* should be admin-selectable (A13); the + *host* belongs in environment configuration. - **Who may import?** Suggested default: team leads and platform admins only, never a plain member. Easy to loosen, unpleasant to tighten after the fact. +- **Which key does PIG get?** The existing key is broad and never expires. PIG's + sync should hold a separate, narrower one — see the logged task.