# 22.1 LLM

La sezione **LLM** delle impostazioni permette di registrare i **modelli linguistici (LLM)** che vtenext può usare per gli agenti e altre funzioni AI collegate. Qui si definiscono i dati di connessione del modello, il nome con cui identificarlo e alcuni parametri che influenzano il comportamento delle risposte.

<p class="callout warning">**vtenext non include un modello AI già pronto all'interno del CRM**. Per configurare un LLM è necessario disporre di un modello remoto accessibile tramite API compatibili con OpenAI, oppure di un modello locale già installato e raggiungibile. In altre parole, questa configurazione serve a collegare vtenext a un servizio AI esterno o locale: il modello non è "a bordo" del CRM.</p>

### **La schermata elenco**

Nella lista sono visibili le configurazioni già salvate. Per ogni voce puoi vedere:

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/1XZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/1XZimage.png)

- Stato attivo o non attivo
- Nome della configurazione
- URL del servizio
- Modello utilizzato

Dalla lista puoi creare una nuova configurazione, modificare una voce esistente, eliminarla oppure attivarla e disattivarla rapidamente.

### **Creare un nuovo LLM**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/0K1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/0K1image.png)

1. Apri la sezione LLM.
2. Fai clic su Aggiungi.
3. Compila i campi richiesti.
4. Se necessario, esegui un test della configurazione.
5. Salva.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/WRIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/WRIimage.png)

<table border="1" cellpadding="5" cellspacing="5" id="bkmrk-processi%3A-cliccando-" style="width: 100%; border-collapse: collapse; vertical-align: middle; background-color: rgb(235, 247, 255); height: 103.188px;"><tbody><tr style="height: 29.7969px;"><td style="width: 29.7995%; height: 29.7969px; vertical-align: middle;">**Attivo**

</td><td style="width: 70.2005%; height: 29.7969px; vertical-align: middle;">rende il modello disponibile per l'utilizzo</td></tr><tr style="height: 10px;"><td style="width: 29.7995%; height: 10px; vertical-align: middle;">**Nome**

</td><td style="width: 70.2005%; height: 10px; vertical-align: middle;">nome descrittivo del modello visualizzato in vtenext. **Campo obbligatorio**.

</td></tr><tr style="height: 63.3906px;"><td style="width: 29.7995%; height: 63.3906px; vertical-align: middle;">**URL**

</td><td style="width: 70.2005%; height: 63.3906px; vertical-align: middle;">endpoint API a cui vtenext invia le richieste al modello (ad esempio `https://api.openai.com/v1/chat/completions`). **Campo obbligatorio**

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Modello**

</td><td style="width: 70.2005%; vertical-align: middle;">identificativo del modello da utilizzare (ad esempio `gpt-5.2`). **Campo obbligatorio**.

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Base URL**

</td><td style="width: 70.2005%; vertical-align: middle;">è l'indirizzo di base del servizio che ospita il modello. In pratica dice agli agenti AI e all'orchestratore Python dove si trova il servizio del modello. Diventa particolarmente importante quando si utilizza un modello locale o un servizio interno all'infrastruttura, per esempio un endpoint come `http://127.0.0.1:11434`.

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Provider**

</td><td style="width: 70.2005%; vertical-align: middle;">indica a vtenext e all'orchestratore Python che tipo di servizio c'è dietro al modello, ad esempio OpenAI oppure Ollama

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**API Key**

</td><td style="width: 70.2005%; vertical-align: middle;">chiave di autenticazione fornita dal provider, necessaria per autorizzare le richieste API

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Temperatura**

</td><td style="width: 70.2005%; vertical-align: middle;">controlla il livello di casualità delle risposte generate. Valori bassi (ad esempio `0,2`) producono risposte più coerenti, prevedibili e ripetibili; valori più alti (ad esempio `0,8` o superiori) favoriscono risposte più varie e creative

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Token massimi**

</td><td style="width: 70.2005%; vertical-align: middle;">definisce il numero massimo complessivo di token che il modello può utilizzare per elaborare la richiesta, includendo sia i messaggi inviati sia la risposta generata (se supportato dal provider)

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Token di completamento massimi**

</td><td style="width: 70.2005%; vertical-align: middle;">limita il numero massimo di token che il modello può utilizzare esclusivamente per la risposta generata

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**Developer Message**

</td><td style="width: 70.2005%; vertical-align: middle;">istruzioni rivolte al modello con ruolo *developer*, utilizzate per definire regole di comportamento o vincoli applicativi

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**System Message**

</td><td style="width: 70.2005%; vertical-align: middle;">istruzioni generali che definiscono il comportamento del modello durante la conversazione

</td></tr><tr><td style="width: 29.7995%; vertical-align: middle;">**User Message**

</td><td style="width: 70.2005%; vertical-align: middle;">messaggio di prova inviato al modello per verificarne il funzionamento. **Campo obbligatorio**

</td></tr></tbody></table>

### **Come funziona il test**

Il pulsante di PROVA invia una richiesta reale al modello con i parametri configurati e mostra:

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/UbJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/UbJimage.png)

- esito dell'operazione
- codice di risposta
- header restituiti
- corpo completo della risposta

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/Gh2image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/Gh2image.png)

*Risultato della chiamata: tab RISULTATO*

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/Lmcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/Lmcimage.png)

*Risultato della chiamata: tab HEADERS*

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/8qbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/8qbimage.png)

*Risultato della chiamata: tab RISPOSTA*

<p class="callout warning">Il test serve a verificare la configurazione, ma non sostituisce il salvataggio.</p>

<p class="callout warning">Il test invia una richiesta reale al modello remoto o locale. Se il modello non è raggiungibile via API, il test non può funzionare.</p>

### **Esempi pratici**

#### Esempio 1: modello compatibile OpenAI

Usa questa configurazione quando il modello è disponibile come servizio remoto tramite API esterna. Imposta nome, URL, modello e API Key, poi invia un semplice messaggio di test.

#### Esempio 2: modello locale

Se il modello gira in locale o su infrastruttura interna, compila anche Base URL e Provider. Anche in questo caso il modello deve essere già installato, attivo e raggiungibile via rete.