Sample code for 30+ languages & platforms
PureBasic

OpenAI (ChatGPT) Retrieve File Content

See more OpenAI ChatGPT Examples

Demonstrate how to retrieve the content of a file from OpenAI. Shows how to download to a file, or instead download to a string in memory.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Adds the "Authorization: Bearer $OPENAI_API_KEY" header.
    ; This is NOT a real key.  Change the "sk-vi...." to your own key.
    CkHttp::setCkAuthToken(http, "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")

    file_id.s = "file-1H4vJq0H775gQVrjWY5jpp15"

    ; Download to local file.
    url.s = "https://api.openai.com/v1/files/{$file_id}/content"
    CkHttp::ckSetUrlVar(http,"file_id",file_id)

    ; Note: Free accounts are not able to download files.
    ; If using a free account, you'll receive an error response:  "To help mitigate abuse, downloading of fine-tune training files is disabled for free accounts."
    success = CkHttp::ckDownload(http,url,"c:/aaworkarea/mydata.jsonl")
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        Debug "Failed"
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    Debug "Downloaded OpenAI file to a local file."

    ; Alternatively, download into a StringBuilder
    sbData.i = CkStringBuilder::ckCreate()
    If sbData.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckDownloadSb(http,url,sbData,"utf-8")
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        Debug "Failed"
        CkHttp::ckDispose(http)
        CkStringBuilder::ckDispose(sbData)
        ProcedureReturn
    EndIf

    Debug "Downloaded OpenAI file to a StringBuilder"

    Debug "file content:"
    Debug CkStringBuilder::ckGetAsString(sbData)


    CkHttp::ckDispose(http)
    CkStringBuilder::ckDispose(sbData)


    ProcedureReturn
EndProcedure