| Server IP : 80.211.21.168 / Your IP : 216.73.217.33 Web Server : Apache System : Linux alex-webdesign.it 3.10.0-1160.119.1.el7.tuxcare.els22.x86_64 #1 SMP Mon Aug 18 06:07:12 UTC 2025 x86_64 User : admin_japan ( 10003) PHP Version : 8.2.32 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/cerchijapan.it/app.valutatoreauto.it/config/ |
Upload File : |
<?php
use App\Enums\CustomerAction\Action;
use App\Enums\Voicebot\Intent;
return [
'slots' => [
'date' => [
'type' => ['string','null'],
'description' => 'Data in formato YYYY-MM-DD',
'label' => "Data dell'appuntamento o della richiesta",
],
'time' => [
'type' => ['string','null'],
'description' => 'Orario in formato HH:MM',
'label' => "Data dell'appuntamento o della richiesta",
],
'brand' => [
'type' => ['string','null'],
'description' => "Marchio dell'auto",
'label' => "Marchio auto",
],
'model' => [
'type' => ['string','null'],
'description' => "Modello dell'auto",
'label' => "Modello auto",
],
'year' => [
'type' => ['integer','null'],
'description' => 'Anno',
'label' => "Anno",
],
'mileage' => [
'type' => ['string','null'],
'description' => 'Km percorsi',
'label' => "Km dell'auto",
],
'phone' => [
'type' => ['string','null'],
'description' => 'Numero di telefono',
'label' => "Numero di telefono",
],
],
'tasks' => [
Intent::APPOINTMENT_BOOKING->value => [
'required_slots' => ['date', 'time'],
'confirmation' => true,
'action' => Action::APPOINTMENT_BOOKING,
],
Intent::TRADE_IN_REQUEST->value => [
'required_slots' => ['brand', 'model', 'year', 'mileage', 'phone'],
'confirmation' => true,
'action' => Action::TRADE_IN,
],
Intent::CALLBACK_REQUEST->value => [
'required_slots' => ['phone', 'time', 'date'],
'confirmation' => false,
'action' => Action::CALLBACK_REQUEST,
],
],
'fill_data' => [
'instructions' => "
Sei un assistente vocale di una concessionaria auto.
Il backend ha già identificato l'intent della richiesta del cliente.
Il tuo compito è:
1. Analizzare il messaggio del cliente
2. Compilare eventuali slot mancanti se il cliente li ha indicati
3. Generare una risposta breve e naturale per il cliente
Regole importanti:
- Non inventare mai dati
- Compila solo gli slot che sono chiaramente presenti nel messaggio
- Se uno slot non è presente, restituisci null
- Non modificare slot già valorizzati
- Se mancano ancora slot necessari, chiedi la prossima informazione mancante
- La risposta deve essere breve (1 o 2 frasi massimo)
- Usa sempre il Lei
- Non usare emoji
- Non scrivere testo fuori dal JSON
Riceverai:
INTENT
L'intent identificato dal sistema
SLOTS (opzionale)
Gli slot richiesti per questo intent.
Gli slot mancanti hanno valore null.
CONTEXT (opzionale)
Informazioni utili sulla conversazione.
USER_MESSAGE
Messaggio del cliente.
USER_PHONE_NUMBER
Numero di telefono del cliente (per compilare lo slot nel caso risponda 'su questo numero').
STATE
lo stato attuale del task. Se lo stato è confirming, chiedi conferma dell'operazione usando gli slot forniti.
Riceverai anche una sezione opzionale chiamata KNOWLEDGE.
Queste informazioni provengono dal concessionario e rappresentano
le informazioni ufficiali da usare per rispondere al cliente.
Usa queste informazioni quando generi la risposta.
Il tuo compito è:
- aggiornare gli slot se il cliente ha fornito informazioni
- generare la risposta da dire al cliente
Le date devono sempre essere restituite nel formato YYYY-MM-DD.
Gli orari devono essere nel formato HH:MM (24h).
Esempi:
- \"domani\" → usa la data relativa rispetto a TODAY
- \"alle tre\" → 15:00
- \"alle tre e mezza\" → 15:30
- \"verso le tre\" → 15:00
- \"pomeriggio\" → chiedi l'orario preciso ",
'response_format' => [
'type' => 'json_schema',
'json_schema' => [
'name' => 'voicebot_response',
'schema' => [
'type' => 'object',
'properties' => [
'slots' => [
'type' => 'object',
'properties' => [],
'description' => 'Slot aggiornati con valori trovati nel messaggio',
'additionalProperties' => false
],
'valid' => [
'type' => 'boolean',
'description' => 'Indica se gli slot sono validi rispetto alle regole'
],
'response' => [
'type' => 'string',
'description' => 'Messaggio breve da dire al cliente'
]
],
'required' => [
'slots',
'response',
'valid',
],
'additionalProperties' => false
]
]
]
]
];