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 generate con 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 onChange e field-change scattano 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

PropTipoDefaultDescrizione
generate(values) => Promise<string>—Richiesta. Genera il valore
valuesRecord<string, unknown>{}Valori correnti del record, passati a generate
labelstring«Genera con AI»Nome accessibile e tooltip
disabledbooleanfalseDisabilita il pulsante
showErrorbooleantrueMostra sotto il pulsante il messaggio d'errore. Il form dinamico lo mette a false e mostra l'errore sotto il campo

Eventi

EventoPayloadDescrizione
generatedstringValore generato
errorstringCausa dell'errore (il messaggio dell'eccezione)