Blog

IA e Avvocati (7): utilizzare un LLM locale con Ollama

IA e Avvocati (7): utilizzare un LLM locale con Ollama

Intelligenza artificiale e Avvocati

7. IA e Avvocati: utilizzare un LLM locale con Ollama

Introduzione

In questo settimo passo della guida all’implementazione di un semplice sistema RAG di prova per studi legali, ci concentriamo sull’utilizzo pratico di un LLM locale (modello linguistico di grandi dimensioni) attraverso Ollama, scegliendo come esempio il modello LLaMA 3.1 8B.

L’obiettivo è dimostrare come un modello linguistico moderno possa essere utilizzato su macchina locale, garantendo sicurezza, indipendenza dal cloud e conformità normativa.

Dopo aver esplorato nel post precedente come installare Ollama e predisporre l’ambiente di lavoro su Windows, ora ci dedichiamo all’impiego reale di un LLM in uno scenario operativo.

Dopo aver predisposto l’ambiente tecnico e configurato Ollama, è fondamentale capire come interagire con un modello linguistico di ultima generazione, per poi sperimentare le sue potenzialità direttamente su documenti e tematiche giuridiche.

Questo passaggio costituisce un ponte tra la preparazione teorico-tecnica e l’uso concreto per applicazioni legali quotidiane, come la redazione assistita di pareri, l’analisi di testi normativi o la sintesi automatica di provvedimenti.


Avvio del modello LLaMA 3.1 8B con Ollama su Windows

Nel post precedente abbiamo visto come creare l’ambiente Windows necessario per utilizzare un LLM in locale con Ollama.

Comando per l’esecuzione (tramite terminale):

ollama run llama3.1:8b

Questo comando consente di:

  • Scaricare automaticamente il modello (se non è già presente in locale)
  • Eseguire il modello in modalità interattiva tramite terminale
  • Avviare una sessione di prompt dove porre domande direttamente al modello in linguaggio naturale

Definizione di prompt

Prompt è il termine che indica la domanda, l’istruzione o il testo che si fornisce a un modello linguistico (LLM) per ottenere una risposta o un’elaborazione specifica.

In pratica, è il modo in cui “si parla” all’intelligenza artificiale, formulando richieste in linguaggio naturale o strutturato per guidare la generazione di contenuti.

Esempio di interazione con LLM locale:

> ollama run llama3.1:8b
>>> Quali sono i principi fondamentali della Costituzione italiana?

Premendo Invio il prompt sarà inviato al modello linguistico, che elaborerà la sua risposta.

Ecco un esempio di risposta (e dei limiti del modello):

La Costituzione Italiana è un documento di rilievo e importanza per il Paese. Essa stabilisce come vengono distribuite le competenze tra lo stato centrale ed enti locali, regola la rappresentanza parlamentare e stabilisce i principi fondamentali della Repubblica italiana.

I principi fondamentali sono l'unità, l'indivisibilità, la sovranità, la libertà, l'eguaglianza sociale.

Il modello LLaMA 3.1 8B è multilingue e si comporta bene anche in italiano. È particolarmente utile per:

  • Creare riassunti automatici di provvedimenti
  • Offrire spiegazioni comprensibili di articoli di legge o istituti giuridici
  • Sviluppare bozze di pareri o relazioni partendo da contenuti normativi o giurisprudenziali
  • Generare esempi pratici da utilizzare nella didattica o nella formazione interna

Pur essendo uno strumento potente, è sempre necessario validare le risposte fornite dal modello con la propria competenza professionale.

In una serie di post successiva sarà affrontato nel dettaglio il tema del legal prompting. Viene fornito intanto uno schema pratico per la formulazione di prompt efficaci.

Schema pratico per formulare domande efficaci

(Metodo R-CAFAR)

R – Ruolo

Definisci preliminarmente il ruolo che l’IA deve assumere o il punto di vista da adottare.

Esempio: “Sei un avvocato esperto in diritto civile italiano.

C – Contesto

Specifica la materia giuridica e la tipologia della questione.

Esempio: “Diritto delle locazioni – locazione abitativa – redazione di una diffida per morosità.

A – Attori e Fatti

Indica chi è coinvolto e quali sono i fatti rilevanti.

Esempio: “Conduttore moroso da tre mesi (gennaio, febbraio, marzo 2025), contratto registrato a Roma.

F – Finalità

Definisci l’obiettivo della richiesta.

Esempio: “Richiedo una bozza di diffida.

A – Aggiornamento

Specifica la necessità di riferimenti normativi o giurisprudenziali aggiornati.

Esempio: “Normativa aggiornata al 2025.

R – Richieste specifiche

Dettaglia gli elementi da includere nella risposta, come riferimenti normativi, sintesi, bozze, e prevedi una fase di verifica per garantire accuratezza e completezza.

Esempio: “Fornisci riferimenti normativi, bozza sintetica e verifica la coerenza normativa e la completezza della bozza.

Esempio di domanda

Sei un avvocato esperto in diritto civile italiano. In materia di locazioni abitative, con aggiornamento al 2025, considera il caso di un conduttore moroso da tre mesi (gennaio, febbraio, marzo 2025) con contratto registrato a Roma. Puoi fornirmi una bozza sintetica di diffida con riferimenti normativi aggiornati? Verifica inoltre la coerenza e la completezza della bozza

🧩 Schema da ricordare

R – Ruolo

C – Contesto
A – Attori e Fatti
F – Finalità
A – Aggiornamento
R – Richieste specifiche


Test avanzato via script Python

Per utilizzare il modello LLaMA 3.1 8B tramite script Python, sfruttando l’API locale esposta da Ollama, si può ricorrere a una semplice richiesta HTTP.

Questo è particolarmente utile per chi intende integrare il modello linguistico in flussi di lavoro più automatizzati o in progetti Python di maggiore complessità.

Apriamo il progetto Python creato in precedenza con VS Code, installiamo le librerie necessarie, incolliamo il codice che segue, e avviamo poi lo script.

Installazione librerie
Per installare le librerie necessarie, apri Visual Studio Code e segui questi passaggi:

  1. Apri la cartella del progetto che contiene il tuo file Python.
  2. Apri il terminale interno di VS Code dal menu Visualizza, poi Terminale.
  3. Attiva l’ambiente virtuale prima di procedere con l’installazione (come indicato qui).
  4. Copia il comando qui sotto, incollalo nel terminale e premi Invio.
  5. Attendi che l’installazione venga completata.
pip install requests

Esempio di script commentato:

import requests   # importa la libreria per effettuare richieste HTTP
import json        # importa la libreria per gestire dati JSON

# Invia una richiesta POST all'API locale di Ollama, specificando il modello e il prompt
response = requests.post("http://localhost:11434/api/generate", json={
    "model": "llama3.1:8b",
    "prompt": "Quali sono i principi fondamentali della Costituzione italiana?"
}, stream=True)  # abilita lo streaming della risposta

# Legge la risposta riga per riga (stream JSON)
for line in response.iter_lines():
    if line:  # se la riga non è vuota
        data = json.loads(line.decode('utf-8'))  # decodifica e carica il JSON
        if "response" in data:
            print(data["response"], end="", flush=True)  # stampa il testo generato

Questo frammento invia un prompt giuridico al modello LLaMA 3.1 8B in esecuzione e restituisce la risposta generata riga per riga, in modo corretto per la modalità streaming di Ollama. È possibile adattarlo per:

  • Elaborare in batch un elenco di quesiti
  • Integrare il modello in una semplice interfaccia web
  • Collegarlo a documenti testuali già preprocessati
  • Automatizzare una sezione FAQ per Clienti su aree specifiche di diritto

💡 Assicurati che LLaMA 3.1 8B sia attivo in background (Ollama) prima di lanciare lo script, per evitare errori di connessione.


Utilizzi pratici di un LLM locale per studi legali

I Large Language Models (LLM) rappresentano oggi uno strumento innovativo e potente per automatizzare e supportare molte attività tradizionalmente complesse e dispendiose negli studi legali, migliorando efficienza, qualità e accessibilità dei servizi legali.

1. Generazione di sintesi automatiche di sentenze e atti giudiziari

Gli LLM possono analizzare rapidamente testi lunghi e complessi come sentenze, ordinanze o atti giudiziari, producendo sintesi chiare e comprensibili. Questo consente agli Avvocati di risparmiare tempo prezioso nella fase di studio e preparazione, focalizzandosi sugli aspetti più rilevanti del caso. L’integrazione con sistemi RAG permette di arricchire queste sintesi con riferimenti precisi a documenti e fonti specifiche dello studio, aumentando l’accuratezza e la pertinenza.

2. Spiegazioni didattiche di concetti giuridici complessi

Gli LLM sono in grado di tradurre il linguaggio tecnico-legale in spiegazioni più accessibili, utili sia per la formazione interna dello studio sia per migliorare la comunicazione con i Clienti, spesso non esperti di diritto. Questa funzione favorisce una maggiore comprensione e trasparenza, facilitando l’orientamento del Cliente e la sua partecipazione consapevole al processo legale.

3. Supporto preliminare alla redazione di atti e pareri

Attraverso la generazione automatica di bozze di documenti legali, come pareri, contratti o memorie, gli LLM possono accelerare la fase iniziale della redazione, fornendo una base strutturata da perfezionare e personalizzare. Questo riduce il carico di lavoro ripetitivo e permette agli Avvocati di dedicarsi maggiormente all’analisi critica e alla strategia legale.

4. Verifica automatica di incongruenze e anomalie nei documenti

Gli strumenti basati su LLM possono essere utilizzati per il controllo qualità dei documenti legali, identificando incongruenze testuali, clausole mancanti o errori formali. Questa funzione è particolarmente utile per studi di dimensioni medio-piccole che non dispongono di team dedicati esclusivamente al controllo documentale, migliorando l’affidabilità e la sicurezza delle pratiche.

5. Accesso semplificato e democratizzazione del diritto

L’adozione degli LLM favorisce anche la creazione di chatbot e assistenti virtuali che offrono un primo orientamento giuridico generale ai cittadini, facilitando l’accesso al diritto e ai servizi legali, soprattutto per chi non ha competenze specifiche o risorse economiche per consulenze immediate, senza ovviamente sostituire il professionista.

6. Ottimizzazione della ricerca giuridica e della gestione documentale

Integrati con sistemi RAG e tecniche di prompt engineering, gli LLM potenziano la ricerca giuridica interna, permettendo di interrogare grandi archivi documentali e normative in modo conversazionale e contestualizzato. Ciò consente di individuare rapidamente precedenti, norme rilevanti e dottrina applicabile, migliorando la qualità delle analisi e delle strategie legali.

Impatto anche per studi di piccole dimensioni

Anche studi legali di dimensioni ridotte possono beneficiare di queste tecnologie, grazie alla disponibilità crescente di soluzioni open source e strumenti accessibili che non richiedono grandi investimenti infrastrutturali o team IT dedicati.

L’uso mirato e contestualizzato degli LLM consente di aumentare la produttività, ridurre i tempi di lavoro e migliorare la qualità del servizio offerto ai Clienti, livellando il campo competitivo con studi più grandi.

Considerazioni finali

L’integrazione di un LLM locale negli studi legali apre la strada a una trasformazione profonda della professione, combinando automazione, supporto decisionale e maggiore accessibilità.

Tuttavia, è fondamentale accompagnare questa innovazione con una gestione attenta dei rischi, assicurando in particolare la tutela della privacy, la qualità dei dati e la validazione professionale delle risposte generate, per garantire un uso responsabile e conforme alle normative vigenti.


Limiti di LLaMA 3.1 8B (e di altri modelli “generalisti”) nell’ambito legale italiano

1. Conoscenza giuridica limitata e generalista

LLaMA 3.1 8B è un modello linguistico di grandi dimensioni addestrato su un vasto corpus multilingue e generalista, che include testi in varie lingue e ambiti. Tuttavia, non è stato addestrato specificamente su fonti giuridiche italiane aggiornate, né su banche dati normative o giurisprudenziali italiane.

Di conseguenza, le risposte fornite dal modello possono risultare superficiali, incomplete o imprecise quando si tratta di diritto italiano, soprattutto per norme, prassi e interpretazioni più recenti o specifiche del nostro ordinamento.

2. Mancanza di aggiornamento normativo e giurisprudenziale in tempo reale

Il modello si basa su dati di training con una data di taglio (cut-off) e non può accedere a informazioni aggiornate in tempo reale, né a banche dati giuridiche o a Internet. Questo è un limite critico in ambito legale, dove le normative e la giurisprudenza evolvono costantemente.

Pertanto, le risposte possono non riflettere le ultime modifiche legislative o gli orientamenti giurisprudenziali più recenti.

3. Complessità e specificità del linguaggio giuridico italiano

Il diritto italiano utilizza un linguaggio tecnico, spesso complesso e con sfumature interpretative che richiedono una profonda conoscenza giuridica e contestuale.

LLaMA 3.1, pur essendo multilingue e capace di gestire l’italiano, non sempre coglie appieno queste sfumature, rischiando di fornire risposte generiche o non pienamente aderenti al contesto normativo italiano.

4. Necessità di validazione professionale

Data la natura generalista e i limiti sopra indicati, le risposte generate da LLaMA 3.1 8B devono sempre essere verificate e interpretate da un Avvocato o esperto legale prima di essere utilizzate in ambito professionale o decisionale.

Il modello non può sostituire l’analisi giuridica critica, l’interpretazione normativa e la valutazione del contesto specifico che solo un professionista può fornire.

5. Assenza di personalizzazione e integrazione con documenti specifici

Senza un sistema di tipo RAG (Retrieval-Augmented Generation) che integri il modello con i documenti, le sentenze e le normative specifiche dello studio legale, LLaMA 3.1 8B non può “conoscere” o utilizzare direttamente il patrimonio documentale specifico.

Questo limita la sua efficacia in applicazioni pratiche come la redazione assistita di pareri o la verifica di documenti, dove la conoscenza contestualizzata è fondamentale.

In sintesi

LLaMA 3.1 8B rappresenta uno strumento potente e versatile, ma nel contesto del diritto italiano presenta limiti significativi legati alla sua natura generalista e alla mancanza di dati specifici e aggiornati.

Per un uso efficace in ambito legale è indispensabile integrare il modello con sistemi di recupero e contestualizzazione dei documenti (RAG) e mantenere sempre un controllo professionale sulle risposte generate.


LLM locale e studi legali: conclusione

L’esecuzione di un LLM locale con Ollama costituisce un importante passo nella costruzione di un’infrastruttura legale potenziata dall’IA. Questo tipo di approccio consente di:

  • Mantenere il pieno controllo sui dati e la riservatezza dei documenti
  • Sperimentare l’uso dell’intelligenza artificiale senza dover ricorrere a soluzioni cloud esterne
  • Prepararsi all’integrazione di sistemi RAG più evoluti e automatizzati

Con strumenti semplici e open source, anche uno studio legale senza team IT può oggi testare modelli linguistici evoluti in modo locale, protetto e indipendente.

Questo approccio apre la strada a numerosi sviluppi futuri, come l’indicizzazione intelligente dei documenti, l’interrogazione conversazionale dei fascicoli o la generazione automatica di analisi e relazioni.

Nel prossimo articolo vedremo come preparare e pulire i documenti PDF in modo da renderli compatibili con un sistema RAG, sfruttando OCR e tecniche NLP.


Per un aiuto e per approfondire

Per un aiuto e per approfondire i temi dell’intelligenza artificiale nello studio legale, del legal tech e del legal design è online il GPT Iusreporter.tech (link esterno, richiede ChatGPT)

Per gli altri articoli pubblicati su questo blog sul tema:
Intelligenza artificiale e Avvocati


Scritto con l’aiuto di Iusreporter, il tuo assistente per la ricerca giuridica online 

Studio legale Avvocato Giuseppe Briganti

Pesaro – Urbino

Post aggiornato alla data di pubblicazione

📄 Disclaimer

Gli script Python e i contenuti di questo testo sono forniti esclusivamente a scopo informativo, didattico e sperimentale in ambienti di test controllati. Non costituiscono consulenza legale o tecnica e non sostituiscono il parere di un professionista qualificato.

L’autore declina ogni responsabilità per eventuali errori, omissioni, malfunzionamenti, danni diretti o indiretti, incidentali, consequenziali o di altro tipo derivanti dall’uso, dall’uso improprio o dall’impossibilità di utilizzo degli script o delle informazioni contenute nel presente testo. Gli script sono forniti “così come sono” (AS IS), senza garanzie esplicite o implicite, incluse, ma non limitate a, garanzie di commerciabilità, idoneità a uno scopo particolare o assenza di violazioni.

L’utilizzo degli strumenti è sotto la piena responsabilità dell’utente, che è tenuto a verificarne, in particolare:

  • la correttezza tecnica e funzionale,
  • la conformità alle normative vigenti, incluse, a titolo esemplificativo, l’AI Act, il GDPR, il Codice Deontologico Forense,
  • il rispetto delle licenze delle librerie e dei componenti e software di terze parti eventualmente utilizzati, inclusi quelli distribuiti con licenze open source.

Gli script non sono progettati né validati per l’uso in ambienti produttivi o per l’elaborazione di dati personali. Qualsiasi utilizzo in tali contesti è esclusiva responsabilità dell’utente, che deve adottare le opportune misure di sicurezza e valutare l’impatto normativo.

Gli script sono stati testati su Python 3.10 in ambiente Windows. Non è garantita la compatibilità con versioni diverse del linguaggio o con altri sistemi operativi. L’autore non fornisce assistenza tecnica, aggiornamenti periodici o correzione dei malfunzionamenti.

Tutti i contenuti di questo ebook, inclusi i testi e il codice sorgente, sono protetti dal diritto d’autore ai sensi della Legge 22 aprile 1941, n. 633 e successive modificazioni. È vietata la riproduzione, distribuzione, pubblicazione, comunicazione o modifica, totale o parziale, in qualsiasi forma, dei contenuti senza autorizzazione scritta dell’autore, salvo espressa indicazione contraria.

L’uso di questo testo e degli script in esso contenuti implica l’accettazione integrale del presente disclaimer. Se non si accettano tali condizioni, si prega di non utilizzare il materiale fornito.

Eventuali errori, osservazioni o segnalazioni possono essere comunicati all’autore, che si riserva di valutarli senza alcun obbligo di risposta o correzione.

Condividi

Leave a comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *