![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (Delphi DLL) AI: Diagnosing an Ask FailureSee more AI ExamplesDemonstrates how to get information about why a request to the AI provider failed.Note: This example requires Chilkat v11.2.0 or greater. 
 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StringBuilder, Ai, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; ai: HCkAi; json: HCkJsonObject; 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. CkAi_putProvider(ai,'openai'); // In this case, we're going to cause an intentional failure by using an invalid API key. CkAi_putApiKey(ai,'sk-11111111111111111111111111111111111111111111111k'); // Choose a model. CkAi_putModel(ai,'gpt-4o'); // Add a text input. CkAi_InputAddText(ai,'Say Hello.'); // Ask the AI for text output. success := CkAi_Ask(ai,'text'); if (success = False) then begin // If the response status code equals 0, it means the error occurred before receiving the HTTP response. // For this case look at the LastErrorText. if (CkAi_getResponseStatusCode(ai) = 0) then begin Memo1.Lines.Add(CkAi__lastErrorText(ai)); end else begin // If we received an error response, the status code will be >= 400. // (Ask would've returned True if the response status code was 200.) Memo1.Lines.Add('Response status code: ' + IntToStr(CkAi_getResponseStatusCode(ai))); // The error response (JSON) is available in the LastJsonData. json := CkJsonObject_Create(); CkJsonObject_putEmitCompact(json,False); CkAi_GetLastJsonData(ai,json); Memo1.Lines.Add(CkJsonObject__emit(json)); // Sample output: // { // "error": { // "message": "Incorrect API key provided: sk-11111***************************************111k. You can find your API key at https://platform.openai.com/account/api-keys.", // "type": "invalid_request_error", // "param": null, // "code": "invalid_api_key" // } // } end; Exit; end; // Get the text response. sbResponse := CkStringBuilder_Create(); CkAi_GetOutputTextSb(ai,sbResponse); Memo1.Lines.Add(CkStringBuilder__getAsString(sbResponse)); CkAi_Dispose(ai); CkJsonObject_Dispose(json); CkStringBuilder_Dispose(sbResponse); end;  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.