PureBasic
PureBasic
Referencing a Pre-Uploaded File by file_id in an AI Request
See more AI Examples
Some AI proviers have aFiles API that lets you upload content once and then reference it later in generation requests using a file_id. This is especially useful for large documents, reuse across multiple prompts, or keeping inputs structured and separate from your prompt text.
This example demonstrates how to use a file_id in a request.
Chilkat PureBasic Downloads
IncludeFile "CkAi.pb"
IncludeFile "CkStringBuilder.pb"
Procedure ChilkatExample()
success.i = 0
success = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
ai.i = CkAi::ckCreate()
If ai.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; The provider can be "openai", "google", "claude", "mistral", "deepseek", "xai", or any provider
; that supports referencing pre-uploaded files by a file_id (or file uri).
CkAi::setCkProvider(ai, "openai")
; Use your provider's API key.
CkAi::setCkApiKey(ai, "MY_API_KEY")
; Choose a model.
CkAi::setCkModel(ai, "gpt-5-mini")
; See the following example showing how to upload a file
; Upload a File to an AI Provider (OpenAI, Google, Antropic, X)
; Use the file_id of the pre-uploaded file.
file_id.s = "file-5G2xncrEiHbVfYPRpFgP9c"
CkAi::ckInputAddFileId(ai,file_id,"application/json")
CkAi::ckInputAddText(ai,"Explain why Hamlet delays taking revenge, using only evidence from the file.")
; Ask the AI for text output.
success = CkAi::ckAsk(ai,"text")
If success = 0
Debug CkAi::ckLastErrorText(ai)
CkAi::ckDispose(ai)
ProcedureReturn
EndIf
; Get the text response.
sbResponse.i = CkStringBuilder::ckCreate()
If sbResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkAi::ckGetOutputTextSb(ai,sbResponse)
Debug CkStringBuilder::ckGetAsString(sbResponse)
CkAi::ckDispose(ai)
CkStringBuilder::ckDispose(sbResponse)
ProcedureReturn
EndProcedure