Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StringBuilder, Http;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
file_id: PWideChar;
url: PWideChar;
sbData: HCkStringBuilder;

begin
success := False;

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

http := CkHttp_Create();

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

file_id := 'file-1H4vJq0H775gQVrjWY5jpp15';

// Download to local file.
url := 'https://api.openai.com/v1/files/{$file_id}/content';
CkHttp_SetUrlVar(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_Download(http,url,'c:/aaworkarea/mydata.jsonl');
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Memo1.Lines.Add('Failed');
    Exit;
  end;
Memo1.Lines.Add('Downloaded OpenAI file to a local file.');

// Alternatively, download into a StringBuilder
sbData := CkStringBuilder_Create();
success := CkHttp_DownloadSb(http,url,sbData,'utf-8');
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Memo1.Lines.Add('Failed');
    Exit;
  end;

Memo1.Lines.Add('Downloaded OpenAI file to a StringBuilder');

Memo1.Lines.Add('file content:');
Memo1.Lines.Add(CkStringBuilder__getAsString(sbData));

CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbData);

end;