Components
AiFieldTrigger
Pulsante che genera il valore di un campo con l'AI, con spinner e causa dell'errore; nei form dinamici è l'opzione di campo `ai`.
Panoramica
AiFieldTrigger genera il valore di un campo con l'AI (dalla 2.17.0):
- chiama
generatecon i valori correnti del record; - mostra lo spinner durante l'elaborazione e ignora i clic ripetuti;
- se la generazione fallisce, avvisa con la causa;
- emette il valore generato, che entra nel campo e resta modificabile.
La libreria non conosce il modulo AI. Prompt, modello e identificativo del campo AI (idcampoconfigai) stanno nella funzione generate del modulo che la usa. Allo stesso modo, l'interpolazione dei riferimenti /field[...] nel prompt la fa chi riceve i valori.
Nei form dinamici non serve usarlo a mano: basta l'opzione di campo ai.
Anteprima live (con generate mockata)
Svuotando «Servizio» e premendo il pulsante si vede il messaggio d'errore sotto il campo.
Opzione di campo ai
{
name: 'descrizione',
type: 'textarea',
label: 'Descrizione',
ai: {
generate: (valori, campo) => campiAi.genera(idcampoconfigai, valori),
label: 'Genera la descrizione', // opzionale: nome accessibile e tooltip
},
}
interface FieldAiOptions {
generate: (values: Record<string, unknown>, field: FieldDefinition) => Promise<string>
label?: string // default «Genera con AI»
}
- Il pulsante sta sulla riga dell'etichetta, in alto a destra. Su un campo senza etichetta il form gli riserva una riga.
- Il valore generato entra come una modifica dell'utente: il form diventa «modificato», e
onChangeefield-changescattano come per una digitazione. - L'errore compare sotto il campo, ma non è un errore di validazione: il valore del campo resta valido.
- Il pulsante è disabilitato se il campo è disabilitato o in sola lettura.
Utilizzo diretto
<script setup lang="ts">
import { AiFieldTrigger } from '@pzeta/vue-form'
</script>
<template>
<AiFieldTrigger
:values="record"
:generate="valori => campiAi.genera(idcampoconfigai, valori)"
@generated="valore => (record.descrizione = valore)"
@error="messaggio => log(messaggio)"
/>
</template>
Props
| Prop | Tipo | Default | Descrizione |
|---|---|---|---|
generate | (values) => Promise<string> | — | Richiesta. Genera il valore |
values | Record<string, unknown> | {} | Valori correnti del record, passati a generate |
label | string | «Genera con AI» | Nome accessibile e tooltip |
disabled | boolean | false | Disabilita il pulsante |
showError | boolean | true | Mostra sotto il pulsante il messaggio d'errore. Il form dinamico lo mette a false e mostra l'errore sotto il campo |
Eventi
| Evento | Payload | Descrizione |
|---|---|---|
generated | string | Valore generato |
error | string | Causa dell'errore (il messaggio dell'eccezione) |