Sample code for 30+ languages & platforms
AutoIt

AI: Diagnosing an Ask Failure

See more AI Examples

Demonstrates how to get information about why a request to the AI provider failed.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oAi = ObjCreate("Chilkat.Ai")

;  The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
;  Support for additional providers will be added in future versions of Chilkat.
$oAi.Provider = "openai"

;  In this case, we're going to cause an intentional failure by using an invalid API key.
$oAi.ApiKey = "sk-11111111111111111111111111111111111111111111111k"

;  Choose a model.
$oAi.Model = "gpt-5.6-terra"

;  Add a text input.
$oAi.InputAddText("Say Hello.")

;  Ask the AI for text output.
$bSuccess = $oAi.Ask("text")
If ($bSuccess = False) Then
    ;  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 ($oAi.ResponseStatusCode = 0) Then
        ConsoleWrite($oAi.LastErrorText & @CRLF)
    Else
        ;  If we received an error response, the status code will be >= 400.
        ;  (Ask would've returned True if the response status code was 200.)
        ConsoleWrite("Response status code: " & $oAi.ResponseStatusCode & @CRLF)

        ;  The error response (JSON) is available in the LastJsonData.
        $oJson = ObjCreate("Chilkat.JsonObject")
        $oJson.EmitCompact = False
        $oAi.GetLastJsonData $oJson
        ConsoleWrite($oJson.Emit() & @CRLF)

        ;  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"
        ;    }
        ;  }
    EndIf

    Exit
EndIf

;  Get the text response.
$oSbResponse = ObjCreate("Chilkat.StringBuilder")
$oAi.GetOutputTextSb($oSbResponse)
ConsoleWrite($oSbResponse.GetAsString() & @CRLF)