Become a member!

Ollama CLI: La Guida Definitiva per l'Uso Quotidiano (e per Sviluppatori)

Introduzione

Negli ultimi mesi, la mia attività di formazione si è intensificata notevolmente. Ho avuto il piacere di tenere decine di corsi su Intelligenza Artificiale, Large Language Models (LLM) locali e, soprattutto, su come integrare queste tecnologie rivoluzionarie nelle applicazioni enterprise, con un focus particolare sul mondo Delphi.

Durante i miei corsi, mi rendo spesso conto che molti sviluppatori non sanno nemmeno che sia possibile interagire con un LLM in modo professionale senza passare ogni volta da un’interfaccia web o da pesanti tool grafici. Quando mostro la potenza della riga di comando, lo stupore è sempre tanto: la maggior parte non immagina quanto possa essere più efficiente questo approccio. Ecco perché oggi voglio parlarvi di Ollama CLI.

Ollama non è solo un “motore” per far girare i modelli; è un ecosistema completo che, se usato correttamente dalla riga di comando, diventa un alleato potentissimo per la produttività quotidiana dello sviluppatore. In questo articolo vedremo come padroneggiare Ollama CLI passo dopo passo, con esempi pratici che potrai usare da subito nel tuo workflow. Per conoscere tutti i modi in cui è possibile integrare un motore di IA locale o remoto, potete controllare questo corso: https://bittimeprofessionals.com/formazione/llm/.

Perché la CLI (e perché Ollama)?

Mentre interfacce come Open WebUI sono fantastiche per il “chatting” casuale, la riga di comando offre vantaggi imbattibili per un professionista:

  1. Velocità: Nessun caricamento di asset grafici.
  2. Automazione: Possibilità di concatenare comandi (piping) e creare script.
  3. Integrazione: Facile da richiamare da linguaggi come Delphi o Python tramite TProcess o simili.
  4. Privacy: Tutto avviene sul tuo hardware, senza che un singolo byte esca dalla tua rete.

I Fondamentali: Gestione dei Modelli

Se hai già installato Ollama, sai che il comando base è ollama run. Ma c’è molto di più.

Scaricare e Listare i Modelli

Per prima cosa, vediamo cosa abbiamo a disposizione. In questa guida useremo il modello qwen3.5:4b-q4_K_M, che a marzo 2026 rappresenta lo stato dell’arte per l’AI locale su dispositivi con risorse contenute.

# Scarica il modello qwen3.5 quantizzato
ollama pull qwen3.5:4b-q4_K_M

# Lista i modelli installati localmente
ollama list

💡 Nota Tecnica (Marzo 2026): Perché Qwen 3.5 4B Q4_K_M? Il modello Qwen 3.5 4B, rilasciato ufficialmente il 2 marzo 2026, è diventato il punto di riferimento per l’uso locale grazie alla sua eccezionale “intelligence density”. La variante quantizzata Q4_K_M è considerata il “practical optimum” poiché mantiene quasi integra l’intelligenza del modello originale (KL Divergence ~0.01) richiedendo solo ~2.5GB - 3.6GB di VRAM.

Rispetto ai modelli di pari dimensioni della generazione precedente, il Qwen 3.5 4B segna un balzo incredibile:

  • Ragionamento e Coding: Raggiunge un punteggio di 55.8 su LiveCodeBench v6, superando modelli da 30B+ parametri del 2025 e dimostrando una capacità di coding vicina a quella di GPT-4o.
  • Finestra di Contesto: Supporta 262.144 token nativi (extensibile fino a 1M), permettendo di analizzare intere unit Delphi o grossi file di log in un’unica sessione.
  • Velocità: Su una comune RTX 4060 supera i 160 token al secondo, mentre su dispositivi mobile (iPhone 17 Pro) garantisce una fluidità di 30-50 tps.

Potete approfondire i dettagli tecnici nell’annuncio ufficiale sul blog di Qwen (qwen.ai).

Monitorare le Risorse

Ollama gira come un server in background. Per vedere quali modelli sono attualmente “caricati” in RAM/VRAM:

ollama ps

Se il sistema rallenta, puoi “scaricare” forzatamente un modello:

ollama stop qwen3.5:4b-q4_K_M

Padronanza del comando run

Il comando run è quello che userai di più. Supporta diverse modalità operative.

Modalità Interattiva

È la classica chat. Digita ollama run qwen3.5:4b-q4_K_M e inizia a scrivere. Pro-tip: Usa /set verbose all’interno della chat per vedere la velocità di generazione (token al secondo).

Modalità “One-shot” (Il potere dei Pipe)

Questa è la parte che preferisco. Puoi passare del testo a Ollama direttamente da un file o da un altro comando:

# Chiedi un riassunto di un log file
type server_error.log | ollama run qwen3.5:4b-q4_K_M "Riassumi gli errori principali in questo log in italiano"

# Genera un commit message partendo dai file modificati (Git)
git diff | ollama run qwen3.5:4b-q4_K_M "Scrivi un messaggio di commit conciso per queste modifiche"

🐧 Nota di Compatibilità: Negli esempi uso il comando type, che è lo standard per visualizzare il contenuto di un file su Windows (sia in CMD che in PowerShell). Se lavori su Linux o macOS, sostituisci semplicemente type con cat.

Questo approccio è formidabile per script di automazione o per chi lavora molto nel terminale. Sebbene sia possibile richiamare processi esterni da Delphi, vedremo tra poco come l’integrazione “vera” nelle nostre applicazioni avvenga preferibilmente tramite le API REST di Ollama, che offrono un controllo molto più granulare e professionale.


Creare Modelli Personalizzati: Il Modelfile

Spesso abbiamo bisogno che l’AI si comporti in un modo specifico (es. “Agisci come un esperto architetto software Delphi”). Invece di scrivere ogni volta un lungo prompt, usiamo un Modelfile.

Esempio: Il tuo Assistente Delphi Senior

  1. Crea un file chiamato DelphiExpert.modelfile:
FROM qwen3.5:4b-q4_K_M

# Imposta la temperatura (0.2 per risposte più deterministiche e tecniche)
PARAMETER temperature 0.2

# Definisci il sistema di istruzioni
SYSTEM """
Sei un esperto sviluppatore Delphi con 20 anni di esperienza. 
Rispondi sempre in italiano. 
Usa i moderni pattern di programmazione (Generics, Anonymous Methods).
Prediligi l'uso di DMVCFramework per le API web.
"""
  1. Crea il modello:
ollama create delphi-expert -f DelphiExpert.modelfile
  1. Usalo:
ollama run delphi-expert "Come posso gestire i memory leak in una lista di oggetti?"

Questo metodo è fondamentale quando prepariamo AI specializzate per contesti aziendali.


Integrazione per Sviluppatori: CLI vs API

Sebbene questo articolo parli di CLI, è fondamentale capire l’architettura di Ollama: “sotto il cofano” esso gira come un server (un demone o servizio in background) che espone nativamente un’API REST sulla porta 11434. Quando digiti un comando nella CLI, non stai facendo altro che usare un client che comunica con questo server locale. Questo è il motivo per cui l’integrazione con Delphi (o qualsiasi altro linguaggio) è così immediata: il motore è già lì, pronto a ricevere chiamate HTTP.

curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:4b-q4_K_M",
  "prompt": "Perché Delphi è ancora attuale nel 2026?",
  "stream": false
}'

Nelle mie sessioni di formazione, mostro come mappare questa chiamata JSON su una classe Delphi usando REST.Client o la mia libreria RESTClient per rendere l’integrazione fluida e tipizzata.


Workflow Quotidiano: Alcuni Casi d’Uso Reali

Ecco come uso Ollama CLI nella mia giornata tipo:

1. Documentazione veloce

Se trovo una documentazione lunga in inglese, posso “passarla” a Ollama per estrarne i punti salienti. Ecco un esempio reale usando il modello qwen3.5:

curl -s https://raw.githubusercontent.com/danieleteti/delphimvcframework/master/README.md | ollama run qwen3.5:4b-q4_K_M "Crea un elenco puntato delle caratteristiche principali in italiano"

L’output ottenuto (estremamente preciso):

Ecco un elenco puntato delle caratteristiche principali del DelphiMVCFramework, estratte dai contesti del codice e dei collegamenti alla documentazione presenti nell’input:

  • Architettura MVC Full-Stack: Utilizza una struttura Modello-Vista-Controllore robusta, visibile attraverso la creazione di controller specifici (es. TMyController) separati dalla logica.
  • Engine Middleware Flessibile: Include un motore centrale (TMVCEngine) configurabile per gestire il flusso delle richieste e integrare middleware personalizzati.
  • Supporto a JSON-RPC e RESTful API: Fornisce funzionalità per l’interazione asincrona via JSON-RPC e supporta protocolli moderni come WebSocket e Server-Sent Events (SSE).
  • RQL: Integra un linguaggio di query specifico (Resource Query Language) ottimizzato per interazioni sicure con il database.
  • Gestione Configurazione dotEnv: Permette la definizione delle variabili d’ambiente tramite file .env per facilitare l’deployment e la gestione multi-ambiente.
  • Automatizzazione Documentazione: Include funzionalità per generare automaticamente documentazioni standard OpenAPI o Swagger per le API definite.
  • Sicurezza e Protocolli Moderni: Supporta protettori di sicurezza avanzati come TLS 1.3, autenticazione JWT (JSON Web Token) e gestione sicura delle sessioni.
  • License Apache 2.0: È un progetto open source affidabile, compatibile con la maggior parte degli standard di sviluppo software moderni.

2. Spiegazione di codice legacy

Hai ereditato una vecchia unit scritta decenni fa con funzioni scandalosamente lunghe e complicate?

type LegacyUnit.pas | ollama run delphi-expert "Analizza questa unit e spiegami la logica di calcolo delle tasse, evidenziando potenziali bug"

3. Generazione di Dati Fake (JSON)

Perfetto per testare le tue API Delphi o popolare database di test senza perdere tempo. Usando parametri come --think=false (disponibile per i modelli che supportano il “reasoning”) e istruzioni chiare nel prompt, possiamo ottenere un output pulito e pronto all’uso:

ollama run qwen3.5:4b-q4_K_M --think=false "Genera un array JSON con 5 oggetti rappresentanti utenti con nome, email e data di nascita casuale. NON AGGIUNGERE ALCUN TESTO PRIMA O DOPO, DEVI DARMI SOLO IL JSON" > users.json

Contenuto di users.json:

[
  {"nome":"Mario Rossi","email":"mario@example.com","dataNascita":"1985-03-12"},
  {"nome":"Giulia Bianchi","email":"giulia@example.it","dataNascita":"1992-07-24"},
  {"nome":"Luca Verdi","email":"luca@example.org","dataNascita":"1978-11-05"},
  {"nome":"Elena Neri","email":"elena@example.net","dataNascita":"2001-05-30"},
  {"nome":"Francesco Ricci","email":"francesco@example.co","dataNascita":"1960-09-18"}
]

Conclusioni

Ollama CLI non è solo un giocattolo per appassionati di terminale; è una vera e propria interfaccia di programmazione che abbassa drasticamente la barriera d’ingresso all’AI locale.

Se partecipi a uno dei miei prossimi corsi, vedrai come spingiamo questi strumenti al limite, collegandoli a database PostgreSQL o esponendoli attraverso API scritte in Delphi. La potenza di avere un cervello artificiale a portata di bash (o cmd.exe) è qualcosa che, una volta provata, diventa indispensabile.

E tu? Qual è il comando Ollama che usi di più? Fammelo sapere nei commenti!


Risorse Utili

DT

Comments

comments powered by Disqus