DataFlex
DataFlex
Upload a File to an AI Provider (OpenAI, Google, Antropic, X)
See more AI Examples
Uploads a file to an AI provider using the provider's File API and returns theid that can later be used to reference the file in an query. This currently works with ChatGPT, Gemini, Claude, and Grok.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoAi
String sContentType
String sLocalFilePath
String sFilenameOnServer
String sFile_id
Variant vSb
Handle hoSb
Variant vBd
Handle hoBd
String sTemp1
Boolean bTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatAi)) To hoAi
If (Not(IsComObjectCreated(hoAi))) Begin
Send CreateComObject of hoAi
End
// The provider can be "openai", "google", "claude", "grok", or any AI that supports uploading files for later reference by ID.
Set ComProvider Of hoAi To "openai"
// Use your provider's API key.
Set ComApiKey Of hoAi To "MY_API_KEY"
// We can upload directly from a file in the filesystem, or from a Chilkat StringBuilder, or from a Chilkat BinData.
// Some AI providers require a content-type.
// Also, some AI providers are picky about what content-type's are accepted.
// Check the AI provider's documentation.
// "application/json" is generally always acceptable.
// "text/plain" can be used as a fallback for any text file.
Move "application/json" To sContentType
Move "qa_data/hamlet.json" To sLocalFilePath
Move "hamlet.json" To sFilenameOnServer
// Upload directly from a file.
Get ComUploadFile Of hoAi sLocalFilePath sContentType To sFile_id
Get ComLastMethodSuccess Of hoAi To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoAi To sTemp1
Showln sTemp1
Showln "AI File Upload Failed."
End
Else Begin
Showln "File ID: " sFile_id
Showln "File uploaded."
End
// Upload from the contents of a StringBuilder
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get ComLoadFile Of hoSb sLocalFilePath "utf-8" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSb To sTemp1
Showln sTemp1
Procedure_Return
End
Get pvComObject of hoSb to vSb
Get ComUploadFileSb Of hoAi vSb sFilenameOnServer sContentType To sFile_id
Get ComLastMethodSuccess Of hoAi To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoAi To sTemp1
Showln sTemp1
Showln "AI File Upload Failed."
End
Else Begin
Showln "File ID: " sFile_id
Showln "File uploaded."
End
// Upload from the contents of a BinData
Get Create (RefClass(cComChilkatBinData)) To hoBd
If (Not(IsComObjectCreated(hoBd))) Begin
Send CreateComObject of hoBd
End
Get ComLoadFile Of hoBd sLocalFilePath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoBd To sTemp1
Showln sTemp1
Procedure_Return
End
Get pvComObject of hoBd to vBd
Get ComUploadFileBd Of hoAi vBd sFilenameOnServer sContentType To sFile_id
Get ComLastMethodSuccess Of hoAi To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoAi To sTemp1
Showln sTemp1
Showln "AI File Upload Failed."
End
Else Begin
Showln "File ID: " sFile_id
Showln "File uploaded."
End
End_Procedure