OpenSwitch migration report
issue-digest · OpenAI / Anthropic → NVIDIA Nemotron on Nebius Token Factory
97%lower LLM cost (est. per 1K calls)
2/2 passedlive smoke tests written by OpenSwitch (repo had none)
1call sites migrated
$0.07spent by the agent to do it
Per call site
| Function | Before | Now runs on | Score | $ per 1K calls (red before, green after) |
|---|---|---|---|---|
complete | gpt-4o | Nano 30B fast | 8.3 | $1.8446 $0.0583 |
Every config, measured
Checklist score (0-10, share of pass/fail checks met) on inputs built from the app's own prompts; green = passes (100% functional, mean within 0.75 of the best config and ≥ 7.5, no output below 5.0); outlined = chosen (cheapest passing).
| Function | Nano 30B fast | Nano 30B think | Super 120B fast | Super 120B think | Ultra 550B fast | Ultra 550B think |
|---|---|---|---|---|---|---|
complete | 8.3 $0.0583 | 8.6 $0.1365 | 8.1 $0.1862 | 6.7 $0.4527 | 8.1 $0.6150 | 8.6 $1.3145 |
Tests
- Iteration 1: 2/2 passed: wrote live smoke tests (repo had none)
Which Nemotron did what
| Role | Model | Calls | Tokens | Cost |
|---|---|---|---|---|
| judge | Ultra 550B | 36 | 31,393 | $0.0352 |
| candidate | Ultra 550B | 12 | 5,831 | $0.0116 |
| rewriter | Ultra 550B | 1 | 3,080 | $0.0055 |
| test-writer | Ultra 550B | 1 | 2,818 | $0.0054 |
| planner | Ultra 550B | 1 | 2,460 | $0.0044 |
| candidate | Super 120B | 12 | 6,231 | $0.0038 |
| researcher | Super 120B | 3 | 10,904 | $0.0036 |
| eval-writer | Super 120B | 1 | 3,034 | $0.0023 |
| candidate | Nano 30B | 12 | 7,087 | $0.0012 |
Failure cases we found
complete· Nano 30B fast · score 5: The output adds an assignee not present in the input, the Problem sentence exceeds 40 words, the Details section includes code and stack trace not present in the issue, and the Next step describes two actions instead ofcomplete· Nano 30B fast · score 8: All checks pass: the output contains exactly four ## headings in the correct order; the Problem section is a single sentence of 18 words; the Details section accurately notes that no error was reported and quotes the impcomplete· Nano 30B fast · score 8: Problem section contains 17 words, exceeding the 40-word limit by a small margin but the instruction says 'at most 40 words' and this is within that; however the instruction also says 'one sentence' and the Problem secticomplete· Nano 30B fast · score 8:
- Baseline cost is an estimate: source-model token counts are approximated with Nemotron's tokenizer, and for o-series models hidden reasoning is approximated with Nemotron Ultra's thinking length.
- The reference answers come from Nemotron 3 Ultra with thinking, not from the original provider (no OpenAI/Anthropic key is needed or used); the repo's own tests are the independent check.
- Each function was evaluated on 6 generated inputs; rare inputs can still behave differently, so keep monitoring after merging.
Sources (live Tavily research)
- gpt-4o: $2.5 / $10.0 per 1M · https://pricepertoken.com/pricing-page/model/openai-gpt-4o
- Endpoint URL is https://api.studio.nebius.com/v1/ · source
- Authentication uses Authorization: Bearer <NEBIUS_API_KEY> · source
- Supported parameters include max_tokens, temperature, top_p, top_k, n, stream, stream_options, stop, presence_penalty, frequency_penalty, logit_bias, logprobs, top_logprobs, user, and extra_body · source
- JSON output can be enabled via response_format: { type: "json_object" } or response_format: { type: "json_schema", json_schema: <schema> } · source
- Nemotron thinking can be disabled by setting extra_body.chat_template_kwargs.enable_thinking: false · source
- For Nemotron models, when enable_thinking is false, force_nonempty_content may be needed to avoid empty content due to parser behavior · source
- Anthropic-specific parameters like thinking are not supported; use chat_template_kwargs instead for reasoning control · source
- The OpenAI-compatible API forwards chat_template_kwargs to vLLM for Nemotron models when properly configured · source