Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.4.0+

Referencing a Pre-Uploaded File by file_id in an AI Request

See more AI Examples

Some AI proviers have a Files 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 Lua Downloads

Lua
local chilkat = require("chilkat")

local success = false

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

local ai = chilkat.Ai.new()

-- 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).
ai.provider = "openai"

-- Use your provider's API key.
ai.api_key = "MY_API_KEY"

-- Choose a model.
ai.model = "gpt-5.6-luna"

-- 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.
local file_id = "file-5G2xncrEiHbVfYPRpFgP9c"
ai:input_add_file_id(file_id, "application/json")

ai:input_add_text("Explain why Hamlet delays taking revenge, using only evidence from the file.")

-- Ask the AI for text output.
success = ai:ask("text")
if not success then
    print(ai.last_error_text)
    return
end

-- Get the text response.
local sbResponse = chilkat.StringBuilder.new()
ai:get_output_text_sb(sbResponse)
print(sbResponse:get_as_string())