Sample code for 30+ languages & platforms
Delphi ActiveX

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 ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
http: TChilkatHttp;
file_id: WideString;
url: WideString;
sbData: TChilkatStringBuilder;

begin
success := 0;

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

http := TChilkatHttp.Create(Self);

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

file_id := 'file-1H4vJq0H775gQVrjWY5jpp15';

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

// Alternatively, download into a StringBuilder
sbData := TChilkatStringBuilder.Create(Self);
success := http.DownloadSb(url,sbData.ControlInterface,'utf-8');
if (success = 0) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
    Memo1.Lines.Add('Failed');
    Exit;
  end;

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

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