I report di grandi dimensioni, i contratti o i file di documentazione spesso contengono più informazioni di quelle che possono essere elaborate rapidamente. Non sarebbe bello poter semplicemente caricare un documento PDF dalla propria applicazione 4D e lasciare che l’IA lo riassuma, estragga i dati chiave o risponda alle domande sul suo contenuto?
Grazie alla nuova classe OpenAI.files, questo flusso di lavoro è ora molto semplice. È possibile caricare file senza problemi e utilizzare l’IA per interagire con il loro contenuto in molti modi.
Passaggio 1 – Caricare il documento
La funzione OpenAI.files.create() consente di caricare un file che potrà essere successivamente utilizzato su tutti gli endpoint OpenAI.
Ecco un esempio che carica un file PDF e ne imposta lo scopo su user_data:
var $file := File("/RESOURCES/MeetingReport.pdf")
var $clientAI : cs.AIKit.OpenAI:=cs.AIManagement.new().clientAI
// Upload the file
// $file: the 4D.File object representing the local document
// "user_data": the intended purpose of the file
// expires_after: optional policy to automatically delete the file after 1 hour
var $result:=$clientAI.files.create($file; "user_data"; {expires_after: {anchor: "created_at"; seconds: 3600}})
//$result.file{
// "object":"file",
// "id":"file-8WJG5F9PYR3SCbL2dKJ5b2",
// "purpose":"user_data",
// "filename":"2510.07311v1.pdf",
// "bytes":912072,
// "created_at":1760433437,
// "expires_at":1760437037,
// "status":"processed",
// "status_details":null
//}
Una volta caricato, il risultato contiene informazioni dettagliate sul file, compreso il suo ID, che verrà utilizzato in seguito.
⚠️ Importante: non tutti i tipi di file sono supportati da ogni modello. Controlla sempre la documentazione del modello che stai utilizzando per assicurarti che i tuoi file siano compatibili.
Passaggio 2 – Collega il file al tuo messaggio
Dopo aver caricato il file, puoi associarlo a un messaggio utilizzando la funzione OpenAIMessage.addFileId(). Questo indica al modello di IA di considerare il contenuto del file caricato durante la generazione della risposta.
var $clientAI:=cs.AIManagement.new().clientAI
var $chatHelper:=$clientAI.chat.create("You are an assistant specializing in file analysis and parsing.")
// Create a new OpenAIMessage object with role "user" and a prompt
var $message:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "Could you summarize this document?"})
// Attach the uploaded file to the message by adding its file id
// This tells the AI which document should be summarized
$message.addFileId($result.file.id)
// Send the message to the AI chat helper and store the summarized text
var $summary:=$chatHelper.prompt($message)
Il modello analizzerà il contenuto del file caricato e restituirà un breve riassunto dei suoi punti principali.
Passaggio 3 – Elimina il file dal server
Una volta completata la sintesi o l’analisi, potresti voler eliminare il file caricato per liberare spazio o mantenere la privacy. Puoi farlo utilizzando la funzione OpenAI.files.delete():
// Delete the uploaded file using its ID
var $delete:=$ClientAI.files.delete($result.file.id)
Gestisci i file caricati
Dopo aver caricato un file, puoi elencare tutti i file della tua organizzazione o recuperare i dettagli di un file specifico.
Elenca tutti i file caricati
// List all files uploaded by your organization
var $filesList:=$clientAI.files.list()
Recuperare un file specifico
// Get detailed info about a single file using its id
var $fileInfo:=$clientAI.files.retrieve($result.file.id)
Conclusione
Combinando OpenAI.files.create() e OpenAIChatHelper.prompt(), puoi offrire una funzione di analisi dei documenti senza soluzione di continuità nelle tue applicazioni 4D. Gli utenti devono semplicemente caricare un file e, in pochi secondi, ricevono un riassunto chiaro e accurato basato sull’intelligenza artificiale.
Ma non si tratta solo di sintesi. Lo stesso approccio può essere utilizzato per estrarre informazioni specifiche, rispondere a domande o cercare dettagli particolari all’interno di un documento, il tutto senza doverlo leggere manualmente. Questo apre la porta a innumerevoli possibilità: verbali automatici delle riunioni, rapida acquisizione di documenti tecnici lunghi o estrazione rapida di dati chiave, il tutto all’interno del proprio ambiente 4D.
