大規模なレポート、契約書、またはドキュメントファイルには、迅速に処理できる量を超える情報が含まれていることがよくあります。4DアプリケーションからドキュメントPDFをアップロードするだけで、AIが要約を作成したり、重要なデータを抽出したり、内容に関する質問に答えたりしてくれるとしたら便利ではないでしょうか?
新しいOpenAI.filesクラスのおかげで、このワークフローは今や非常にシンプルになりました。ファイルをシームレスにアップロードし、AIを活用して様々な方法でその内容とやり取りできます。
ステップ1 – ドキュメントのアップロード
OpenAI.files.create()関数を使用すると、ファイルをアップロードでき、後でOpenAIのエンドポイント全体で使用できます。
以下はPDFファイルをアップロードし、その目的を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
//}
アップロード後、結果にはファイルの詳細情報(後で使用するIDを含む)が含まれます。
⚠️重要:すべてのファイル形式が全モデルでサポートされているわけではありません。使用しているモデルのドキュメントを必ず確認し、ファイルの互換性を確認してください。
ステップ2 – ファイルをメッセージに関連付ける
ファイルアップロード後、OpenAIMessage.addFileId() 関数を使用してメッセージに関連付けます。これによりAIモデルは応答生成時にアップロードファイルの内容を考慮します。
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)
モデルはアップロードされたファイルの内容を分析し、その要点を簡潔にまとめた要約を返します。
ステップ3 – サーバーからファイルを削除する
要約や分析が完了したら、空き容量確保やプライバシー保護のためアップロードしたファイルを削除したい場合があります。OpenAI.files.delete()関数を使用して削除できます:
// Delete the uploaded file using its ID
var $delete:=$ClientAI.files.delete($result.file.id)
アップロード済みファイルの管理
ファイルをアップロードした後、組織内の全ファイルを一覧表示したり、特定のファイルの詳細を取得したりできます。
アップロード済みファイルの一覧表示
// List all files uploaded by your organization
var $filesList:=$clientAI.files.list()
特定のファイルを取得する
// Get detailed info about a single file using its id
var $fileInfo:=$clientAI.files.retrieve($result.file.id)
まとめ
OpenAI.files.create() と OpenAIChatHelper.prompt() を組み合わせることで、4Dアプリケーションにシームレスな文書分析機能を提供できます。ユーザーはファイルをアップロードするだけで、数秒以内にAIによる明確で正確な要約を受け取れます。
しかし、要約機能だけではありません。同じ手法を用いて、特定の情報を抽出したり、質問に答えたり、文書内の特定の詳細を検索したりすることも可能です。すべて手動で読み込む必要はありません。これにより、自動会議議事録の作成、長い技術文書への迅速なオンボーディング、重要なデータの迅速な抽出など、4D環境内で実現できる可能性は無限に広がります。
