Relatórios grandes, contratos ou arquivos de documentação geralmente contêm mais informações do que podem ser processadas rapidamente. Não seria ótimo se você pudesse simplesmente enviar um documento PDF do seu aplicativo 4D e deixar que a IA o ajudasse a resumir, extrair dados importantes ou responder a perguntas sobre o seu conteúdo?
Graças à nova classe OpenAI.files, esse fluxo de trabalho agora é muito simples. Você pode enviar arquivos facilmente e usar a IA para interagir com seu conteúdo de várias maneiras.
Etapa 1 – Carregue seu documento
A função OpenAI.files.create() permite que você carregue um arquivo que pode ser usado posteriormente em todos os pontos finais do OpenAI.
Aqui está um exemplo que carrega um arquivo PDF e define sua finalidade 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
//}
Depois de carregado, o resultado contém informações detalhadas sobre o arquivo, incluindo seu id, que será usado posteriormente.
⚠️ Importante: nem todos os tipos de arquivo são compatíveis com todos os modelos. Sempre verifique a documentação do modelo que você está usando para garantir que seus arquivos sejam compatíveis.
Etapa 2 – Vincule o arquivo à sua mensagem
Após o upload do arquivo, você pode associá-lo a uma mensagem usando a função OpenAIMessage.addFileId(). Isso instrui o modelo de IA a considerar o conteúdo do arquivo enviado ao gerar sua resposta.
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)
O modelo analisará o conteúdo do arquivo enviado e retornará um resumo conciso de seus pontos principais.
Etapa 3 – Exclua o arquivo do servidor
Depois que o resumo ou a análise for concluído, você pode excluir o arquivo enviado para liberar espaço ou manter a privacidade. Você pode fazer isso usando a função OpenAI.files.delete():
// Delete the uploaded file using its ID
var $delete:=$ClientAI.files.delete($result.file.id)
Gerenciar arquivos enviados
Após carregar um arquivo, você pode listar todos os arquivos da sua organização ou recuperar detalhes sobre um arquivo específico.
Listar todos os arquivos enviados
// List all files uploaded by your organization
var $filesList:=$clientAI.files.list()
Recuperar um arquivo específico
// Get detailed info about a single file using its id
var $fileInfo:=$clientAI.files.retrieve($result.file.id)
Conclusão
Ao combinar OpenAI.files.create() e OpenAIChatHelper.prompt(), você pode oferecer um recurso de análise de documentos perfeito em seus aplicativos 4D. Os usuários simplesmente enviam um arquivo e, em segundos, recebem um resumo claro e preciso alimentado por IA.
Mas não se limita ao resumo. A mesma abordagem pode ser usada para extrair informações específicas, responder a perguntas ou pesquisar detalhes específicos dentro de um documento — tudo sem precisar lê-lo manualmente. Isso abre as portas para inúmeras possibilidades: atas automáticas de reuniões, integração rápida a documentos técnicos longos ou extração rápida de dados importantes — tudo dentro do seu ambiente 4D.
