Sample code for 30+ languages & platforms
Delphi DLL

Multimodal Input: Image Data

See more AI Examples

Demonstrates sending a request that includes both text and image data for the AI to analyze.

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, BinData, Ai, StringBuilder;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
ai: HCkAi;
bd: HCkBinData;
sbResponse: HCkStringBuilder;

begin
success := False;

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

ai := CkAi_Create();

// The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
// Support for additional providers will be added in future versions of Chilkat.
// xAI (Grok) will be used here..
CkAi_putProvider(ai,'xai');

// Use your provider's API key.
CkAi_putApiKey(ai,'MY_API_KEY');

// Choose a model.
CkAi_putModel(ai,'grok-4');

// Add both text input, and image data
CkAi_InputAddText(ai,'Describe what you see in the following image.');

bd := CkBinData_Create();
// We're passing a relative local file path here.. (relative the the app's current working directory)
success := CkBinData_LoadFile(bd,'qa_data/jpg/starfish.jpg');
if (success = False) then
  begin
    Memo1.Lines.Add(CkBinData__lastErrorText(bd));
    Exit;
  end;

CkAi_InputAddImageData(ai,bd,'');

// Ask the AI for text output.
success := CkAi_Ask(ai,'text');
if (success = False) then
  begin
    Memo1.Lines.Add(CkAi__lastErrorText(ai));
    Exit;
  end;

// Get the text response.
sbResponse := CkStringBuilder_Create();
CkAi_GetOutputTextSb(ai,sbResponse);
Memo1.Lines.Add(CkStringBuilder__getAsString(sbResponse));

// -------------------------------------------------------------
// The response is in markdown format.
// Also see Markdown to HTML Conversion Examples.
// -------------------------------------------------------------

// Sample output:

// The image depicts a small, bright orange starfish (also known as a sea star) with five symmetrical arms radiating from a central disc. 
// It has a textured, bumpy surface that gives it a realistic, almost spiky appearance, and there's a small hole or indentation at the center, 
// which might represent the mouth or a natural feature. The starfish is shown against a plain white background, and it appears to be a simple, 
// illustrative or clipart-style graphic rather than a photograph.

CkAi_Dispose(ai);
CkBinData_Dispose(bd);
CkStringBuilder_Dispose(sbResponse);

end;