SambaNova come fallback automatico quando Groq è rate-limited

SambaNova Cloud è il secondo provider OpenAI-compatibile che tengo sempre pronto, quello su cui ripiego quando Groq mi sbatte contro i rate limit. Sui modelli open-weights che girano su entrambi (Llama 3.x, DeepSeek, Qwen) le risposte si equivalgono, e quanto a velocità SambaNova non sfigura per niente.

Per quello che ci faccio io, cioè smanettare da solo in homelab, il free tier basta e avanza. Non è il mio provider principale, ma di sessioni me ne ha salvate parecchie: quelle volte in cui Groq ti mette in coda sul tetto delle 30 richieste al minuto proprio mentre sei nel pieno del lavoro. Tutto quello che gli do in pasto è open weights: Llama 3.3 70B con la Llama 3 Community License di Meta, DeepSeek sotto MIT, Qwen 3 sotto Apache 2.0 di Alibaba.

Configurazione di opencode

La chiave me la genero su cloud.sambanova.ai, basta una mail e non costa nulla, poi la parcheggio in ~/.config/claude-credentials/credentials.env sotto la voce SAMBANOVA_API_KEY. A quel punto registro il provider dentro ~/.config/opencode/opencode.json:


{
  "provider": {
    "sambanova": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "apiKey": "{env:SAMBANOVA_API_KEY}",
        "baseURL": "https://api.sambanova.ai/v1"
      },
      "models": {
        "Meta-Llama-3.3-70B-Instruct": { "name": "Llama 3.3 70B (SambaNova)" }
      }
    }
  }
}

Per far partire la TUI già agganciata al modello giusto:


opencode . --model sambanova/Meta-Llama-3.3-70B-Instruct

Per il ripiego automatico da terminale mi sono scritto quattro righe di bash: prima tentano Groq, e se si beccano un HTTP 429 rilanciano la stessa identica richiesta JSON verso SambaNova. Niente di sofisticato, davvero: un curl con --fail, un controllo sull’exit code e, se la prima chiamata va a vuoto, una seconda sull’altro endpoint. A cambiare sono soltanto baseURL e model.

Un esempio di sessione reale

Ieri sera, saranno state le 22:30, stavo mettendo le mani a un piccolo script per tirare fuori qualche statistica da una pila di file CSV di log. Per limare il parser avevo già sparato a Groq una ventina di richieste nel giro di pochi minuti, e puntuale è arrivata la coda sul rate limit, HTTP 429. Ho aperto opencode su SambaNova e gli ho chiesto:

leggi parser.py. Identifica le aree dove la complessità è inutile. Suggerisci tre rifattorizzazioni con stima del payoff (basso/medio/alto). Tieni l’interfaccia CLI invariata.

Risposta in una manciata di secondi, quattro scarsi. Tre indicazioni nette: rimpiazzare una catena di if/elif con un dizionario di funzioni (payoff medio), tirare fuori la lettura del file dal ciclo principale per alleggerire l’IO (payoff alto) e fondere due funzioni di normalizzazione che in pratica facevano lo stesso lavoro (payoff basso). Ho applicato i primi due, i test di regressione sono passati e su un file da 200 MB il tempo di esecuzione è crollato del 40%.

Cosa fa bene

Il pregio numero uno è esserci quando gli altri sono al completo. La latenza sui modelli open-weights condivisi regge benissimo il confronto, e siccome SambaNova parla lo stesso dialetto OpenAI-compatibile di tutti gli altri mi basta cambiare il baseURL per riciclare pari pari il codice del client. Su Llama 3.3 70B, in particolare, la qualità delle risposte mi ha convinto.

Cosa fa meno bene

I nei ci sono, inutile nasconderli. La policy del free tier è documentata in modo più nebuloso che altrove, e il catalogo dei modelli serviti è più magro di quello di Groq. L’inferenza va bene, ma sui modelli più piccoli non tiene il passo delle LPU di Groq. Insomma, è un fallback solido, non un titolare.

Privacy e termini del provider

Qui qualche zona grigia c’è, ed è giusto metterla in chiaro. Sul free tier la policy di training non è scritta nero su bianco: il marketing enterprise sbandiera il “no training”, ma per il piano gratuito una garanzia altrettanto netta non l’ho trovata. Qualche log tecnico viene comunque raccolto via web server, le solite cose, token, latenza, IP. Nei termini di servizio si legge che i “Customer Data” non finiscono ad addestrare nulla, a differenza dei “Service Usage Data”: dove passi esattamente il confine tra le due categorie, però, te lo devi leggere caso per caso.

I dati stanno negli Stati Uniti. Per chi si trova nello spazio economico europeo ci sono le Standard Contractual Clauses a fare da paracadute. E comunque i modelli sono open-weights, Llama, DeepSeek, Qwen: se mi serve me li scarico e me li rieseguo per conto mio, fuori dal provider.

La regola che mi sono dato è semplice: lo considero un provider statunitense con un free tier dalle regole non del tutto chiare. Per i lavori tecnici di tutti i giorni va benissimo come ripiego; per i contenuti sensibili, invece, non ci penso nemmeno.

Cosa non gli mando

Nomi veri di clienti, hostname interni, IP privati, pezzi di configurazione con dentro credenziali: niente di tutto questo prende la strada di SambaNova. Sui log di prova ci infilo dei placeholder prima di premere invio. Se una cosa ha bisogno di giurisdizione europea la giro a Mistral La Plateforme, che di default tiene i dati in UE ed è sotto CNIL. E quando il contenuto è davvero delicato taglio corto e resto in casa, su qwen2.5-coder:14b con Ollama in locale: stessa famiglia Qwen, ma gira sulla mia macchina e finisce lì.

In pratica

Tirando le somme, nel mio armamentario SambaNova fa la rete di sicurezza per quando Groq mi mette in panchina. Nel quotidiano resto su Groq diretto: Llama 3.3 70B Versatile per gli output lunghi, Llama 3.1 8B Instant per le cose veloci, Qwen3 32B quando voglio il ragionamento sul codice passo passo. Per i ragionamenti lunghi spalmati su tanti file salgo su Qwen3 235B via Cerebras, e per quello che deve restare in Europa c’è Mistral 7B su La Plateforme. SambaNova, in mezzo a tutto questo, è la ridondanza che non mi costa niente, e già solo per questo vale la pena tenerlo configurato.


Immagine generata con Cloudflare Workers AI / FLUX.