Principiante 11 minGiuridico

Giurista: analizzare un contratto senza fuite

Risposta diretta

Per analizzare un contratto senza che lasci il tuo computer, rendi disponibile un modello tramite Ollama (Qwen 3.5 9B o Mistral Small 24B), estrai il testo dal PDF e imponi una regola: ogni punto segnalato deve citare il passaggio parola per parola. Uno script verifica poi che la citazione sia presente nel contratto. Aumenta la finestra di contesto di Ollama, impostata per default a 4.000 token con meno di 24 GB di memoria video.

Un contratto contiene informazioni che né il segreto professionale né un accordo di riservatezza permettono di affidare a qualsiasi servizio online. Una pipeline locale legge il PDF, segnala le clausole da esaminare e cita i passaggi, senza che alcun dato esca dal computer. Questa guida realizza la pipeline, aggiunge la verifica automatica delle citazioni e spiega chiaramente cosa lo strumento non sa fare.

Di Mohamed Meguedmi·Agg. 2026-09-30·Testato su Windows, macOS e Linux

#Perché un contratto non deve passare attraverso una chat online

Un contratto contiene nomi, prezzi, condizioni negoziate e talvolta dati personali. Caricarlo su un servizio di IA ospitato significa inviare queste informazioni a un soggetto terzo, in un quadro definito dalle sue condizioni d'uso e non dal tuo impegno di riservatezza. Per gli avvocati, la questione è deontologica: la guida «La deontologia e l'IA», adottata dal Conseil national des barreaux nel marzo 2026, ricorda tra i requisiti della professione la tutela del segreto professionale e il rispetto del RGPD. I commentatori della guida osservano che il segreto vieta qualsiasi divulgazione di informazioni riservate relative alle pratiche o ai clienti, anche durante l'uso di strumenti di intelligenza artificiale.

Per i giuristi d'azienda, il vincolo è contrattuale: un accordo di riservatezza firmato con un partner non prevede quasi mai che le sue clausole siano sottoposte a un fornitore di IA. Le offerte professionali dei fornitori di software offrono garanzie di non riutilizzo dei dati, ma queste vanno verificate nel contratto che hai firmato, non in uno slogan. L'analisi locale elimina la questione: il testo del contratto non lascia la tua postazione, quindi non c'è né un subfornitore da dichiarare né un trasferimento da giustificare.

!
Locale non vuol dire affidabile
L'esecuzione in locale risolve il problema della riservatezza, non quello dell'esattezza. Uno studio di Stanford pubblicato nel 2024 su strumenti commerciali statunitensi di ricerca giuridica ha rilevato risposte errate in oltre il 17% dei casi anche per i migliori tra questi strumenti. Questi strumenti non sono lettori di contratti, ma l'ordine di grandezza ricorda che un modello che scrive con sicurezza può sbagliare. Da qui la regola di questa guida: ogni affermazione del modello deve essere supportata da un passaggio verificabile.

#Una chat sui PDF per uso interno senza scrivere codice

Il kit IA Locale

Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

Una parte dei lettori cerca semplicemente di interrogare contratti depositati in una cartella, senza che nulla esca dal sistema informativo. Esistono due vie. La prima, senza programmazione, consiste nell'installare un'interfaccia come Open WebUI o AnythingLLM su un server interno, collegata a Ollama: si caricano i PDF, si pongono domande e lo strumento ritrova i passaggi utili. Queste guide sono disponibili sul sito. La seconda, descritta di seguito, è un breve script che offre un controllo totale sul prompt e sulla verifica delle citazioni.

Lo script è adatto all'analisi di un contratto alla volta, con domande precise. L'interfaccia con ricerca documentale è adatta a un corpus di diverse decine di contratti, in cui si vogliono trovare, ad esempio, tutti i contratti contenenti una clausola di rinnovo tacito. In questo secondo caso, la qualità dipende dalla suddivisione dei documenti e dalla ricerca, non solo dal modello.

Quale approccio per quale necessità
EsigenzaApproccioAspetto da tenere presente
Leggere un contratto da 10 a 25 pagineScript diretto, contratto intero nel contestoLunghezza del contesto da notare in Ollama
Interrogare da 20 a 500 contrattiInterfaccia RAG (Open WebUI, AnythingLLM)Qualità della suddivisione in segmenti e della ricerca
Confrontare con un contratto modelloScript con due testi nel promptContesto doppio: verificare la memoria
Contratto scansionatoOCR prima di tuttoIl rumore nel testo altera le citazioni

#Lo stack minimo: modello, lettore PDF, script

Bastano tre elementi. Ollama rende disponibile il modello. Un lettore PDF come pdfplumber o PyMuPDF estrae il testo. Uno script Python di una quarantina di righe collega il tutto. Per il modello, due punti di riferimento nella libreria Ollama: Qwen 3.5 con 9 miliardi di parametri pesa 6,6 GB e dichiara 256.000 token di contesto; Mistral Small con 24 miliardi pesa 14 GB, con 32.000 token dichiarati. Il primo entra nella memoria di una scheda da 8 a 12 GB, il secondo richiede 16 GB o più. Provali entrambi su tre dei tuoi contratti: la comprensione del francese giuridico varia da un contratto all'altro.

Il contesto è il punto che può trarti in inganno. Ollama imposta per default la finestra in base alla memoria video: con meno di 24 GB, è di 4.000 token, molto inferiore alla lunghezza di un contratto. Un contratto di 20 pagine contiene diverse migliaia di parole, ossia circa quindicimila token o più a seconda dell'impaginazione: un ordine di grandezza da misurare sui tuoi documenti. Senza modificare le impostazioni, l'inizio del contratto viene troncato senza alcun avviso e il modello risponde basandosi solo su una parte del documento. La guida sulla finestra di contesto spiega il meccanismo.

#Installare gli strumenti

Modello e librerie
ollama pull qwen3.5:9b   # ou mistral-small si vous avez 16 Go de VRAM
pip install pdfplumber requests

Verifica poi che il PDF contenga testo selezionabile: se pdfplumber restituisce una stringa vuota, il file è una scansione e occorre ricorrere all’OCR. Non generare mai testo a partire da un OCR di scarsa qualità senza segnalarlo all’utente, perché le citazioni del modello non potranno essere verificate.

#Il prompt di sistema di un assistente per una prima ricognizione

Il prompt definisce il ruolo, i divieti e il formato. Il punto centrale è l'obbligo di citare: un modello che deve ricopiare il passaggio su cui si basa inventa meno, e puoi verificare la citazione tramite codice. Il prompt qui sotto richiede un output strutturato per facilitare questa verifica.

system_prompt.txt
Tu assistes un juriste pour un premier repérage rapide dans un contrat
commercial de droit français.

RÈGLES
- Tu ne donnes jamais d'avis juridique. Tu signales des points à examiner.
- Pour chaque point, recopie MOT POUR MOT le passage du contrat concerné.
- Si le contrat ne traite pas un sujet demandé, écris explicitement : non traité.
- Ne suppose jamais l'intention des parties. Ne complète pas un passage manquant.

FORMAT : un JSON, liste d'objets {"point": ..., "citation": ..., "pourquoi": ...}

#Lo script completo, con verifica delle citazioni

Lo script legge il PDF, interroga il modello con un contesto ampliato e impone un formato JSON tramite uno schema, come consentito dall'API di Ollama nel campo format. Verifica poi che ogni citazione sia realmente presente nel testo del contratto, dopo aver normalizzato gli spazi. Una citazione non trovata viene contrassegnata separatamente: è il segno di un'invenzione o di una parafrasi da controllare.

analyse_contrat.py
import json, re, sys, requests, pdfplumber

SYSTEM = open('system_prompt.txt', encoding='utf-8').read()
SCHEMA = {'type': 'array', 'items': {'type': 'object',
  'properties': {'point': {'type': 'string'}, 'citation': {'type': 'string'},
                 'pourquoi': {'type': 'string'}},
  'required': ['point', 'citation', 'pourquoi']}}

def lire_pdf(chemin):
    with pdfplumber.open(chemin) as pdf:
        return '\n'.join(p.extract_text() or '' for p in pdf.pages)

def norm(s):
    return re.sub(r'\s+', ' ', s).strip().lower()

def demander(question, contrat, modele='qwen3.5:9b'):
    r = requests.post('http://localhost:11434/api/chat', json={
      'model': modele, 'stream': False, 'format': SCHEMA,
      'messages': [{'role': 'system', 'content': SYSTEM},
                   {'role': 'user', 'content': 'CONTRAT :\n' + contrat + '\n\nQUESTION : ' + question}],
      'options': {'temperature': 0.1, 'num_ctx': 24576}})
    return json.loads(r.json()['message']['content'])

if __name__ == '__main__':
    texte = lire_pdf(sys.argv[1])
    if len(texte.strip()) < 500:
        sys.exit('PDF sans texte exploitable : passer par un OCR.')
    base = norm(texte)
    for p in demander('Liste les clauses à risque pour le signataire.', texte):
        ok = norm(p['citation']) in base
        print(('[OK]  ' if ok else '[CITATION INTROUVABLE]  ') + p['point'])
        print('      ' + p['citation'][:200])
→
Perché una verifica meccanica
Il modello può riscrivere leggermente una citazione, modificare un numero o unire due frasi. Un controllo parola per parola non dimostra che il punto sollevato sia rilevante, ma elimina la categoria di errore più pericolosa: una clausola che non esiste. Rileggi sempre il passaggio nel PDF prima di trarne una conseguenza.

#Le domande che evidenziano i rischi

Poni domande precise anziché una richiesta generale, un tema alla volta. Ogni risposta deve citare il contratto o dichiarare che il tema non è trattato. Ecco un elenco iniziale da adattare alla tua pratica professionale.

Non-concurrence
« Il contratto contiene una clausola di non concorrenza? Citala indicando la durata, l'ambito geografico e il compenso economico previsto. »
Responsabilità
« Qual è la limitazione di responsabilità? È reciproca? Quali danni sono esclusi? »
Risoluzione del contratto
«Quali sono le condizioni di recesso? Il preavviso è lo stesso per entrambe le parti?»
Rinnovo
« È previsto un rinnovo tacito? Qual è il termine per opporsi e in quale forma? »
Penali
« Elenca le penali per ritardo, risoluzione o inadempimento. Sono reciproche? »
Normativa applicabile
« Qual è la legge applicabile? Qual è la giurisdizione indicata? »
Diritti di proprietà intellettuale
« Come viene gestita la proprietà degli elaborati da consegnare: cessione, licenza, durata, territorio? »
Dati personali
« Il contratto prevede un trattamento di dati personali? Ci sono clausole sul trattamento dei dati per conto terzi? »

#Confrontare un contratto con il tuo modello abituale

Se disponi di un modello validato, come le condizioni generali del tuo studio o della tua azienda, il confronto è più utile di una lettura isolata: mostra ciò che si discosta dal tuo riferimento. Il modello vede due testi, il che raddoppia lo spazio occupato nel contesto: verifica che la finestra richiesta a Ollama sia sufficiente, altrimenti confronta clausola per clausola.

Prompt di confronto
Compare le CONTRAT proposé au MODÈLE de référence.
Liste les écarts en trois catégories :
1. Plus favorables au signataire que le modèle
2. Moins favorables au signataire que le modèle
3. Clauses présentes dans le modèle et absentes du contrat

Pour chaque écart, recopie mot pour mot les deux passages.

MODÈLE :
<<<
[texte du modèle]
>>>

CONTRAT :
<<<
[texte du contrat]
>>>

#Mettere alla prova lo strumento sui tuoi contratti prima di fidarti

Prima di integrare questo assistente in un flusso di lavoro, misura ciò che non riesce a individuare. Prendi cinque contratti che hai già riletto personalmente, includendone appositamente uno con una clausola che conosci bene, per esempio un rinnovo tacito poco evidente. Poni la stessa serie di domande, poi conta: le clausole effettivamente presenti che sono state individuate, i punti inutili segnalati e le citazioni introvabili.

  1. 01
    Scegliere cinque contratti noti
    Varia le tipologie: prestazione di servizi, fornitura, locazione commerciale, contratto di lavoro atipico. Un solo tipo di documento non dice nulla sulla robustezza generale.
  2. 02
    Annotare il proprio elenco
    Prima di avviare lo strumento, elenca per ogni contratto le clausole che ti aspetti di trovare. Questo elenco costituisce il tuo riferimento per verificare i risultati.
  3. 03
    Confrontare il richiamo e il rumore
    Conta le clausole attese che lo strumento ha individuato e il numero di punti segnalati erroneamente. Uno strumento che si lascia sfuggire una clausola su tre è un promemoria, non un filtro.
  4. 04
    Misurare il tempo di rilettura
    Misura il tempo necessario per rileggere i punti segnalati e le relative citazioni. Se questa rilettura dura quasi quanto la lettura completa, il vantaggio è modesto.
  5. 05
    Decidere l'uso
    Riserva lo strumento alle attività in cui aiuta davvero: una prima selezione, il confronto con un modello di contratto, l'individuazione di clausole specifiche. Non usarlo per i contratti di grande rilevanza, che vengono comunque letti integralmente.

#Limiti e protezioni

Non è un avvocato
Il modello non conosce la giurisprudenza recente né le sottigliezze di redazione che modificano il significato di una clausola. Fa una prima selezione; la decisione resta al giurista.
Invenzione di clausole
Un piccolo modello può descrivere una clausola non presente nel contratto. La citazione obbligatoria e la verifica tramite script riducono questo rischio senza eliminarlo.
Contratto lungo
Se il contenuto supera ciò che il contesto può accogliere, suddividilo in sezioni e poni domande su ciascuna parte, oppure passa a una ricerca documentale. La guida sulle strategie di suddivisione illustra le opzioni.
Scansioni
Un PDF immagine richiede un OCR. Il testo ottenuto da un OCR contiene errori che rendono la verifica delle citazioni incerta.
Registrazione
Non conservare i contratti né le risposte in file non protetti: la sicurezza della postazione e la cifratura del disco restano necessarie. La checklist sulla riservatezza elenca i punti da controllare.
FAQ
È possibile analizzare un contratto con un'IA senza inviare il documento su internet?+
Sì: Ollama rende disponibile un modello sulla tua macchina, un lettore PDF estrae il testo e uno script interroga il modello. Nulla lascia il computer. L'esecuzione locale risolve la questione della riservatezza, non quella dell'accuratezza: mantieni la regola di citare il passaggio e verifica ogni punto nel contratto prima di trarre conclusioni.
Come creare una chat sui PDF a uso interno senza far uscire i contratti dal sistema informativo?+
Installa Open WebUI o AnythingLLM su un server interno, collegandolo a Ollama, poi carica i PDF. La ricerca documentale trova i passaggi utili e il modello risponde citandoli. Proteggi l'accesso tramite autenticazione e limita l'accesso alla rete: i documenti rimangono sulla tua infrastruttura.
Quale modello locale usare per leggere contratti in francese?+
Due candidati ragionevoli: Qwen 3.5 9B (6,6 GB, 256 000 token annunciati) per una scheda da 8 a 12 GB, e Mistral Small 24B (14 GB, 32 000 token annunciati) a partire da 16 GB. Confrontali su tre dei tuoi contratti piuttosto che basarti su una classifica generale.
Un contratto di 30 pagine rientra nella finestra di contesto del modello?+
Spesso sì per un contratto da 20 a 30 pagine, a condizione di aumentare la finestra di contesto di Ollama, impostata per default a 4.000 token quando la memoria video è inferiore a 24 GB. Misura il numero effettivo di token del tuo documento. Se supera la capacità della memoria, suddividilo in sezioni.
Il modello può inventare una clausola che non esiste?+
Sì, soprattutto i piccoli modelli. La soluzione consiste nel richiedere una citazione parola per parola, poi nel verificare tramite script che compaia nel testo del contratto. Una citazione introvabile segnala un'invenzione. Rileggi sempre il passaggio nel PDF prima di trarne una conseguenza.
L'analisi con IA sostituisce la revisione di un avvocato?+
No. Funziona come primo filtro per individuare punti da esaminare, insieme ai relativi passaggi. Non conosce la giurisprudenza recente né il contesto della negoziazione. Un professionista del diritto rimane responsabile dell'analisi, soprattutto per questioni importanti o clausole inusuali.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.