🚧 Pagina in costruzione
Questa pagina è ancora in lavorazione. Il contenuto è incompleto e non revisionato.
Utilizzo¶
Il modello di default è gpt-4o-mini
e quindi per il primo utilizzo di llm
è necessario impostare un'API Key per OpenAI, con il comando:
Nota
Non è obbligatorio usare gpt-4o-mini
come modello di default, ma è consigliato per iniziare, perché in linea con la documentazione e le guide di llm
.
Lanciare un prompt¶
Un prompt è una richiesta, un messaggio, che si invia a un modello LLM per ottenere una risposta. È il modo per "comunicare" con l'intelligenza artificiale.
Per lanciarlo basta scriverlo nella shell, dopo llm
, come in questo esempio:
Guida al Prompt Engineering
Il Prompt engineering è una disciplina relativamente nuova che consente di sviluppare e ottimizzare i prompt per utilizzare in modo efficiente i modelli linguistici (LM) per un'ampia varietà di applicazioni e argomenti di ricerca. Per approfondire puoi iniziare da questa guida dedicata.
Se vuoi usare un altro modello, prima guarda la lista dei modelli disponibili sulla tua macchina con llm models list
. Avrai in output una lista come questa:
Available models:
Anthropic Messages: anthropic/claude-3-7-sonnet-latest (aliases: claude-3.7-sonnet, claude-3.7-sonnet-latest)
Anthropic Messages: anthropic/claude-3-haiku-20240307 (aliases: claude-3-haiku)
GeminiPro: gemini-2.0-flash-thinking-exp-01-21
gpt4all: all-MiniLM-L6-v2-f16 - SBert, 43.76MB download, needs 1GB RAM
gpt4all: qwen2-1_5b-instruct-q4_0 - Qwen2-1.5B-Instruct, 894.10MB download, needs 3GB RAM
LLMGroq: groq/meta-llama/llama-4-scout-17b-16e-instruct
LLMGroq: groq/whisper-large-v3
OpenAI Chat: gpt-4.1 (aliases: 4.1)
Perplexity: r1-1776
Perplexity: sonar-reasoning-pro
Se vuoi usare ad esempio gemini-2.0-flash-thinking-exp-01-21
, puoi farlo l'opzione -m
seguito dal nome del modello:
Opzioni dei modelli¶
I modelli LLM hanno diverse opzioni che puoi configurare per personalizzare le risposte. Una delle più comuni è la temperatura, che controlla la casualità delle risposte generate.
Per visualizzare le opzioni disponibili per i modelli installati, puoi usare il comando:
E ad esempio per il modello gemini-2.0-flash-exp
sono queste:
GeminiPro: gemini-2.0-flash-exp
Options:
code_execution: boolean
temperature: float
max_output_tokens: int
top_p: float
top_k: int
json_object: boolean
google_search: boolean
Attachment types:
application/ogg, application/pdf, audio/aac, audio/aiff,
audio/flac, audio/mp3, audio/mpeg, audio/ogg, audio/wav,
image/heic, image/heif, image/jpeg, image/png, image/webp,
text/csv, text/plain, video/3gpp, video/avi, video/mov, video/mp4,
video/mpeg, video/mpg, video/quicktime, video/webm, video/wmv,
video/x-flv
Features:
- streaming
- schemas
- async
Keys:
key: gemini
env_var: LLM_GEMINI_KEY
Questo modello di intelligenza artificiale supporta diverse opzioni che permettono di personalizzare il comportamento della generazione di testo. Eccone alcune:
code_execution
: se attivato (true
), permette al modello di eseguire codice incluso nel prompt. Utile per test, calcoli o demo tecniche.temperature
(float): controlla la creatività della risposta (per approfondire).max_output_tokens
(int): imposta il numero massimo di token (parole/parole spezzate) generabili in output. Il limite massimo è 8192 token.json_object
(boolean): se attivo, il modello prova a generare direttamente un oggetto JSON come output.google_search
(boolean): abilita la consultazione di Google per arricchire la risposta con informazioni aggiornate (se supportato dall'interfaccia).
Il modello può accettare in input file di tipo:
- audio (es. mp3, wav)
- immagine (es. jpeg, png)
- video (es. mp4, webm)
- documenti (es. pdf, csv, txt)
Inoltre ha queste funzionalità:
- streaming: ricevi l'output man mano che viene generato
- schemas: supporta output strutturati secondo schemi
- async: supporta richieste asincrone
Per impostare ad esempio la temperatura, si dovrà usare l'opzione -o
seguito da temperature
e dal suo valore. Ad esempio:
llm -o temperature 0.1 "Suggerisci tre titoli per un articolo che spiega perché il software libero è importante nelle scuole."
Conteggio dei token utilizzati¶
Se si aggiunge al comando l'opzione -u
si ha restituito in output anche il conteggio dei token utilizzati per il prompt e per la risposta. Ad esempio:
llm "5 nomi di ristoranti italiani" -u
1. **La Tavola del Nonno:** (Classico e accogliente, "La tavola del nonno" evoca ricordi di famiglia e cucina tradizionale.)
2. **Osteria Acquolina:** (Un po' più rustico e invitante, "Acquolina" significa letteralmente "l'acquolina in bocca," promettendo sapori deliziosi.)
...
Token usage: 5 input, 209 output, {"candidatesTokenCount": 209, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 5}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 209}]}
Oppure si possono leggere i log
dei comandi lanciati, ed in output si avrà anche il conteggio dei token:
L'output sarà in yaml
e simile a questo (qui sotto soltano uno degli elementi del log):
- model: gemini-2.0-flash-exp
datetime: '2025-06-02T14:12:15'
conversation: 01jwrfrtayx55e4k1c3230smab
prompt: 5 nomi di ristoranti italiani
prompt_fragments: []
system_fragments: []
usage:
input: 5
output: 209
details:
candidatesTokenCount: 209
promptTokensDetails:
- modality: TEXT
tokenCount: 5
candidatesTokensDetails:
- modality: TEXT
tokenCount: 209
Utility per il conteggio dei token
Simon Willison ha sviluppato anche ttok
, un'utility a riga di comando per contare i token di un testo o per troncare quel testo a un certo numero di token.
Leggere da stdin
¶
Questa è una delle funzionalità più interessanti di llm
nell'utilizzo a riga di comando: puoi leggere da stdin
e quindi passare il testo a llm
da un file o da un comando. Ad esempio, se hai un file input.txt
con del testo, puoi fare:
Oppure un esempio ispirato a una famosa vignetta di xkcd, che evidenzia come per certi comandi (come tar
) non sia sempre semplice ricordarsi le opzioni corrette da usare.

Allora si può "passare" l'output di man tar
1 a llm
per chiedere come si usa il comando tar
per estrarre il file appunti.tar.gz
:
man tar | llm "come si usa il comando tar per estrarre il file appunti.tar.gz.
Scrivi soltanto il comando e commenta le opzioni"
Con man tar
si ottiene l'output del manuale di tar
, che contiene le istruzioni su come usare il comando. Passando questo output a llm
, si può ottenere una risposta chiara e concisa su come eseguire l'operazione richiesta.
E l'output sarà qualcosa del genere (e la bomba non esploderà 😉):
tar -xzf appunti.tar.gz
* `-x`: Indica l'operazione di estrazione (extract).
* `-z`: Indica che il file è compresso con gzip e che quindi deve essere decompresso durante l'estrazione.
* `-f`: Specifica che il successivo argomento è il nome del file archivio da estrarre (`appunti.tar.gz`).
Nota
La gran parte dei modelli sarebbero stati in grado di rispondere a questa domanda, senza bisogno di leggere il manuale di tar
, ma è un esempio interessante per mostrare come si può usare llm
per leggere da stdin
e ottenere risposte utili.
-
man
è un comando per visualizzare i manuali dei comandi Unix/Linux. ↩