Sample code for 30+ languages & platforms
Zig

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

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

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

    const http = try chilkat.Http.init();
    defer http.deinit();

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

    const file_id = "file-1H4vJq0H775gQVrjWY5jpp15";

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

    // 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."
    http.download(url, "c:/aaworkarea/mydata.jsonl") catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        std.debug.print("Failed\n", .{});
        return;
    };

    std.debug.print("Downloaded OpenAI file to a local file.\n", .{});

    // Alternatively, download into a StringBuilder
    const sb_data = try chilkat.StringBuilder.init();
    defer sb_data.deinit();
    http.downloadSb(url, "utf-8", sb_data) catch {
        std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
        std.debug.print("Failed\n", .{});
        return;
    };

    std.debug.print("Downloaded OpenAI file to a StringBuilder\n", .{});

    std.debug.print("file content:\n", .{});
    std.debug.print("{s}\n", .{try sb_data.getAsString(alloc)});
}