Transforme los documentos estáticos en conocimiento práctico con AIKit

Los informes, contratos o archivos de documentación de gran tamaño suelen contener más información de la que se puede procesar rápidamente. ¿No sería estupendo poder simplemente cargar un documento PDF desde su aplicación 4D y dejar que la IA le ayudara a resumirlo, extraer datos clave o responder preguntas sobre su contenido?

Gracias a la nueva clase OpenAI.files, este flujo de trabajo es ahora muy sencillo. Puede cargar archivos sin problemas y utilizar la IA para interactuar con su contenido de muchas maneras.

Paso 1: suba su documento

La función OpenAI.files.create() le permite cargar un archivo que luego se puede utilizar en todos los puntos finales de OpenAI.

A continuación, se muestra un ejemplo en el que se carga un archivo PDF y se establece su finalidad como 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 vez subido, el resultado contiene información detallada sobre el archivo, incluido su id, que se utilizará más adelante.

⚠️ Importante: no todos los tipos de archivos son compatibles con todos los modelos. Compruebe siempre la documentación del modelo que está utilizando para asegurarse de que sus archivos son compatibles.

Paso 2: vincule el archivo a su mensaje

Una vez subido el archivo, puede asociarlo a un mensaje utilizando la función OpenAIMessage.addFileId(). Esto le indica al modelo de IA que tenga en cuenta el contenido del archivo subido al generar su respuesta.

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)

El modelo analizará el contenido del archivo subido y devolverá un resumen conciso de sus puntos principales.

Paso 3: elimine el archivo del servidor

Una vez realizado el resumen o el análisis, es posible que desee eliminar el archivo cargado para liberar espacio o mantener la privacidad. Puede hacerlo utilizando la función OpenAI.files.delete():

// Delete the uploaded file using its ID
var $delete:=$ClientAI.files.delete($result.file.id)

Gestionar LOS archivos subidos

Después de cargar un archivo, puede enumerar todos los archivos de su organización u obtener detalles sobre un archivo específico.

Listar todos los archivos subidos

// List all files uploaded by your organization
var $filesList:=$clientAI.files.list()

Recuperar un archivo específico

// Get detailed info about a single file using its id
var $fileInfo:=$clientAI.files.retrieve($result.file.id)

Conclusión

Al combinar OpenAI.files.create() y OpenAIChatHelper.prompt(), puede ofrecer una función de análisis de documentos perfecta en sus aplicaciones 4D. Los usuarios solo tienen que cargar un archivo y, en cuestión de segundos, recibirán un resumen claro y preciso generado por IA.

Pero no se limita al resumen. El mismo enfoque se puede utilizar para extraer información específica, responder preguntas o buscar detalles concretos dentro de un documento, todo ello sin necesidad de leerlo manualmente. Esto abre la puerta a innumerables posibilidades: actas de reuniones automáticas, integración rápida a documentos técnicos largos o extracción rápida de datos clave, todo ello dentro de su entorno 4D.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.