{"id":62,"date":"2026-05-25T21:30:00","date_gmt":"2026-05-25T21:30:00","guid":{"rendered":"https:\/\/rpi.temporiti.net\/wordpress\/?p=62"},"modified":"2026-05-30T14:34:58","modified_gmt":"2026-05-30T12:34:58","slug":"groq-llama-70b","status":"publish","type":"post","link":"https:\/\/rpi.temporiti.net\/wordpress\/?p=62","title":{"rendered":"Llama 3.3 70B su Groq per generare script bash e documentare changelog di release"},"content":{"rendered":"<p>Llama 3.3 70B servito sulle LPU di Groq \u00e8 il modello che apro quando ho bisogno di una risposta lunga in pochi secondi. Le LPU spingono il 70B oltre i 250-300 token al secondo nelle finestre buone, e per me significa poter pensare a voce alta nel terminale senza aspettare. Lo tengo come &#8220;scrittore lungo&#8221; del toolkit: stesura di script bash con commenti seri, changelog di release a partire dal <code>git log<\/code>, sezioni di README ricavate dai sorgenti.<\/p>\n<p>Il modello \u00e8 Llama 3.3 70B Instruct, distribuito da Meta sotto Llama 3 Community License. Non \u00e8 strettamente Apache 2.0, ma i pesi sono pubblici e la licenza permette uso commerciale fino a soglie molto alte, irrilevanti per uso individuale di homelab. Su contesti da 30-40k token \u00e8 la combinazione pi\u00f9 equilibrata che ho tra qualit\u00e0 del ragionamento e latenza.<\/p>\n<h2>Configurazione di opencode<\/h2>\n<p>La chiave la creo su <code>console.groq.com\/keys<\/code>, gratuita e senza carta, la salvo in <code>~\/.config\/claude-credentials\/credentials.env<\/code> come <code>GROQ_API_KEY<\/code> e la lascio caricare dalla shell. Nel file <code>~\/.config\/opencode\/opencode.json<\/code> registro il provider come OpenAI-compatible:<\/p>\n<pre><code class=\"language-json\">\n{\n  \"provider\": {\n    \"groq\": {\n      \"npm\": \"@ai-sdk\/openai-compatible\",\n      \"options\": {\n        \"apiKey\": \"{env:GROQ_API_KEY}\",\n        \"baseURL\": \"https:\/\/api.groq.com\/openai\/v1\"\n      },\n      \"models\": {\n        \"llama-3.3-70b-versatile\": { \"name\": \"Llama 3.3 70B Versatile\" }\n      }\n    }\n  }\n}\n<\/code><\/pre>\n<p>Per aprirlo dentro la TUI con il working directory gi\u00e0 montato:<\/p>\n<pre><code class=\"language-bash\">\nopencode . --model groq\/llama-3.3-70b-versatile\n<\/code><\/pre>\n<p>La cartella che passo come argomento \u00e8 di solito <code>~\/Documenti\/progetti\/<nome>\/<\/code>, con dentro il sorgente o il <code>CHANGELOG.md<\/code> esistente.<\/p>\n<h2>Un esempio di sessione reale<\/h2>\n<p>Luned\u00ec sera alle 21:15 dovevo chiudere la release di un piccolo tool di archiviazione foto. Avevo 38 commit dalla tag precedente, messaggi misti italiano-inglese, alcuni &#8220;fix vari&#8221; poco descrittivi. Ho aperto opencode nella repo e ho preparato il contesto con:<\/p>\n<pre><code class=\"language-bash\">\ngit log --oneline v0.4.0..HEAD &gt; \/tmp\/log.txt\ngit diff v0.4.0..HEAD --stat &gt; \/tmp\/stat.txt\n<\/code><\/pre>\n<p>Poi dentro la TUI il prompt:<\/p>\n<blockquote>\n<p>leggi \/tmp\/log.txt e \/tmp\/stat.txt. Produci CHANGELOG.md in formato Keep a Changelog (Added, Changed, Fixed). Inglese, niente parole filler, raggruppa i commit che toccano lo stesso file. Aggiungi una nota di migrazione se vedi rinomine di chiave nel file di configurazione.<\/p>\n<\/blockquote>\n<p>La risposta \u00e8 arrivata in circa quattro secondi. Aveva raggruppato i 38 commit in undici voci pulite, distinte per sezione, con una nota di migrazione corretta su una rinomina di chiave YAML che io stesso avevo dimenticato. Ho dovuto correggere una sola voce in cui aveva interpretato un commit di test come feature.<\/p>\n<h2>Cosa fa bene<\/h2>\n<p>Output lunghi e strutturati prodotti in pochi secondi: script bash di 200 righe con commenti decenti, changelog ben raggruppati, README narrativi a partire da <code>--help<\/code> e file <code>main<\/code>. Tiene bene il filo su contesti da 30-40k token. La latenza Groq trasforma una stesura da &#8220;vado a prendere un caff\u00e8&#8221; a &#8220;mentre prendo un sorso d&#8217;acqua \u00e8 gi\u00e0 qui&#8221;.<\/p>\n<h2>Cosa fa meno bene<\/h2>\n<p>Su ragionamento step-by-step di tipo logico-matematico Qwen3 32B sullo stesso provider lo batte. Sull&#8217;analisi di trade-off architetturali tende a essere riassuntivo invece che critico. Non \u00e8 il modello giusto quando voglio una posizione netta su un dilemma di design.<\/p>\n<h2>Privacy e termini del provider<\/h2>\n<p>Groq, nella Services Agreement Sezione 4.2 aggiornata al 15 ottobre 2025, dichiara esplicitamente che &#8220;Groq is not permitted to use Inputs or Outputs for training or fine-tuning&#8221;. I log vengono conservati al massimo 30 giorni per troubleshooting e abuse monitoring. L&#8217;infrastruttura \u00e8 GCP US, quindi residency statunitense. Sulla console esiste un toggle ZDR (Zero Data Retention) sotto Data Controls, ma l&#8217;eligibility per il free tier non \u00e8 chiara dalla documentazione pubblica, va verificata caso per caso.<\/p>\n<p>I modelli serviti sono misti: Llama 3.x e Qwen 3 sono open weights, Whisper open source, mentre Groq Compound \u00e8 proprietario. Llama 3.3 70B che uso qui \u00e8 open weights sotto Llama 3 Community License, pesi disponibili su Hugging Face.<\/p>\n<h2>Cosa non gli mando<\/h2>\n<p>Mai prompt che contengano nomi reali di clienti, credenziali, IP interni o stralci di file di configurazione con secret. Prima di inviare un log lo passo in un filtro che redatta IP privati e hostname in placeholder. Per contenuti che restano sotto il mio controllo, fallback a <code>qwen2.5-coder:14b<\/code> su Ollama in locale: stessa famiglia, niente rete.<\/p>\n<h2>In pratica<\/h2>\n<p>Nel mio mix Llama 3.3 70B su Groq \u00e8 il &#8220;produttore di prosa tecnica&#8221;. Per task brevi e veloci scelgo Llama 3.1 8B Instant, sempre su Groq, perch\u00e9 risponde in mezzo secondo. Per ragionamento step-by-step su codice piccolo passo a Qwen3 32B. Per documentazione molto lunga con tanti file dentro lo stesso contesto vado su Qwen3 235B su Cerebras. Il 70B sta nel mezzo come default solido quando voglio output lungo ma non aspettare.<\/p>\n<hr>\n<blockquote>\n<p>Immagine generata con Cloudflare Workers AI \/ FLUX.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Llama 3.3 70B servito sulle LPU di Groq \u00e8 il modello che apro quando ho bisogno di una risposta lunga in pochi secondi. Le LPU spingono il 70B oltre i 250-300 token al secondo nelle finestre buone, e per me significa poter pensare a voce alta nel terminale senza aspettare. Lo tengo come &#8220;scrittore lungo&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":63,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-62","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-locale"],"_links":{"self":[{"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":11,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":367,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions\/367"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/63"}],"wp:attachment":[{"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpi.temporiti.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}