Vai al contenuto

Creare agenti AI di intelligenza artificiale/Assistente legale

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Creazione dell'agente

[modifica | modifica sorgente]

Volendo creare un agente AI che faccia da assistente legale rispondendo a domande sul file documento_legale.txt, bisogna innnanzitutto creare un notebook Google Colab in cui installare la libreria litellm:

!pip install litellm

Poi caricare nel filesystem di Colab il file documento_legale.txt con il seguente codice:

from google.colab import files
uploaded = files.upload()

Poi bisogna importare l'API KEY dell'LLM prescelto, cliccando sull'immagine della chiave nella barra laterale di sinistra di Colab e abilitandola:

import os
from google.colab import userdata
api_key = userdata.get('GOOGLE_API_KEY')
os.environ['GOOGLE_API_KEY'] = api_key

Poi bisogna creare una funzione python per richiamare Google Gemini e ottenere la risposta tramite prompt programmatici e caricare il documento_legale convertito in formato txt da pdf:

import requests
from litellm import completion

# 1. Carica documento legale
with open("documento_legale.txt", "r", encoding="utf-8") as f:
    testo = f.read()

def generate_response(messages: str) -> str:
    """Call LLM to get response"""
    response = completion(
        model="gemini/gemini-2.0-flash",
        messages=messages,
        max_tokens=1024
    )
    return response.choices[0].message.content

Si crea un messaggio di sistema per l'agente in modo da impartire le istruzioni all'agente che deve essere un assistente legale che risponda sul documento legale fornito:

agent_rules = [{
    "role": "system",
    "content": (
        f"Sei un assistente legale che risponde SOLO sulla base del seguente documento legale fornito:\n\n {testo}.\n\n"
        f"Non inventare nulla e se non trovi una risposta precisa nel documento legale, chiedi di fare una domanda relativa al documento legale fornito.\n"

    )
}]

Si costruisce un ciclo di 5 iterazioni in cui l'utente inserisce la domanda relativa al documento legale per l'agente, si passano al prompt programmatico di sistema agent_rules e domanda, in tal modo si ottiene risposta dall'agente:

iterations = 0
max_iterations = 5

while iterations < max_iterations:

    domanda = input("Inserisci domanda relativa al documento: ")
    user_input=[{"role": "user", "content": f"Domanda: {domanda}"}]

    prompt = agent_rules + user_input

    print("\n🤖 Agent thinking...")
    response = generate_response(prompt)
    print("\n📬 Agent response:\n", response)


    iterations += 1

Documento legale fornito e inventato

[modifica | modifica sorgente]
CONTRATTO DI PRESTAZIONE DI SERVIZI
Tra:
   • Società Alfa S.r.l., con sede legale in Milano, Via Roma 10, C.F./P.IVA 12345678901, di seguito denominata "Fornitore";
e
   • Cliente Beta S.p.A., con sede legale in Torino, Corso Italia 25, C.F./P.IVA 98765432109, di seguito denominata "Cliente";
si conviene e si stipula quanto segue:
Articolo 1 – Oggetto del contratto
Il Fornitore si impegna a prestare al Cliente servizi di consulenza informatica, consistenti nello sviluppo e nella manutenzione di applicazioni software, secondo le specifiche concordate tra le parti.
Articolo 2 – Durata
Il presente contratto ha durata di 12 (dodici) mesi a decorrere dalla data di sottoscrizione. Alla scadenza, esso potrà essere rinnovato previo accordo scritto tra le parti.
Articolo 3 – Corrispettivo
Il Cliente si impegna a corrispondere al Fornitore l’importo di euro 2.000 (duemila) al mese, oltre IVA, mediante bonifico bancario entro 30 giorni dalla ricezione della fattura.
Articolo 4 – Obblighi del Fornitore
Il Fornitore si impegna a:
   1. Eseguire i servizi con diligenza professionale.
   2. Garantire la riservatezza dei dati e delle informazioni del Cliente.
   3. Fornire report mensili sullo stato di avanzamento delle attività.
Articolo 5 – Obblighi del Cliente
Il Cliente si impegna a:
   1. Fornire al Fornitore tutte le informazioni necessarie per l’esecuzione del servizio.
   2. Consentire al personale del Fornitore l’accesso ai sistemi informatici aziendali, nei limiti necessari.
   3. Rispettare le scadenze di pagamento pattuite.
Articolo 6 – Riservatezza
Le parti si obbligano a mantenere strettamente riservate tutte le informazioni confidenziali acquisite nel corso del rapporto contrattuale, salvo diverso obbligo di legge.
Articolo 7 – Risoluzione
Il contratto potrà essere risolto di diritto dal Fornitore in caso di mancato pagamento protratto oltre 60 (sessanta) giorni dalla scadenza, previa comunicazione scritta al Cliente.
Articolo 8 – Foro competente
Per ogni controversia relativa all’interpretazione e all’esecuzione del presente contratto, sarà competente in via esclusiva il Foro di Milano.
Letto, confermato e sottoscritto.
Milano, 18 settembre 2025
Il Fornitore: ____________________
Il Cliente: ____________________

Esecuzione dell'agente

[modifica | modifica sorgente]

Inserisci domanda relativa al documento: Qual è l’oggetto del contratto?

🤖 Agent thinking...

📬 Agent response:

L'oggetto del contratto è la prestazione di servizi di consulenza informatica da parte del Fornitore (Società Alfa S.r.l.) al Cliente (Cliente Beta S.p.A.). Questi servizi consistono nello sviluppo e nella manutenzione di applicazioni software, secondo le specifiche concordate tra le parti.

Inserisci domanda relativa al documento: Quanto dura il contratto e come si può rinnovare?

🤖 Agent thinking...

📬 Agent response:

Il contratto ha una durata di 12 (dodici) mesi a decorrere dalla data di sottoscrizione. Alla scadenza, esso potrà essere rinnovato previo accordo scritto tra le parti.

Inserisci domanda relativa al documento: Il contratto prevede penali in caso di ritardo nel pagamento?

🤖 Agent thinking...

📬 Agent response:

Il contratto non prevede penali specifiche in caso di ritardo nel pagamento, ma specifica all'Articolo 7 che il contratto potrà essere risolto di diritto dal Fornitore in caso di mancato pagamento protratto oltre 60 giorni dalla scadenza, previa comunicazione scritta al Cliente.

Inserisci domanda relativa al documento: Quanto fa 2+2 ?

🤖 Agent thinking...

📬 Agent response:

La tua domanda non riguarda il documento legale fornito. Per favore, fammi una domanda relativa al contenuto del contratto di prestazione di servizi.

Inserisci domanda relativa al documento: Se il Cliente non paga per 45 giorni, il Fornitore può risolvere il contratto?

🤖 Agent thinking...

📬 Agent response:

No, sulla base del documento fornito, il Fornitore può risolvere il contratto solo in caso di mancato pagamento protratto oltre 60 giorni dalla scadenza, previa comunicazione scritta al Cliente (Articolo 7). Un ritardo di 45 giorni non è sufficiente per la risoluzione di diritto secondo i termini del contratto.