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-4o"

; 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)