DataFlex
DataFlex
AI: Diagnosing an Ask Failure
See more AI Examples
Demonstrates how to get information about why a request to the AI provider failed.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoAi
Variant vJson
Handle hoJson
Variant vSbResponse
Handle hoSbResponse
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatAi)) To hoAi
If (Not(IsComObjectCreated(hoAi))) Begin
Send CreateComObject of hoAi
End
// The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
// Support for additional providers will be added in future versions of Chilkat.
Set ComProvider Of hoAi To "openai"
// In this case, we're going to cause an intentional failure by using an invalid API key.
Set ComApiKey Of hoAi To "sk-11111111111111111111111111111111111111111111111k"
// Choose a model.
Set ComModel Of hoAi To "gpt-4o"
// Add a text input.
Get ComInputAddText Of hoAi "Say Hello." To iSuccess
// Ask the AI for text output.
Get ComAsk Of hoAi "text" To iSuccess
If (iSuccess = False) 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.
Get ComResponseStatusCode Of hoAi To iTemp1
If (iTemp1 = 0) Begin
Get ComLastErrorText Of hoAi To sTemp1
Showln sTemp1
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.)
Get ComResponseStatusCode Of hoAi To iTemp1
Showln "Response status code: " iTemp1
// The error response (JSON) is available in the LastJsonData.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
Get pvComObject of hoJson to vJson
Send ComGetLastJsonData To hoAi vJson
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// 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
Procedure_Return
End
// Get the text response.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponse
If (Not(IsComObjectCreated(hoSbResponse))) Begin
Send CreateComObject of hoSbResponse
End
Get pvComObject of hoSbResponse to vSbResponse
Get ComGetOutputTextSb Of hoAi vSbResponse To iSuccess
Get ComGetAsString Of hoSbResponse To sTemp1
Showln sTemp1
End_Procedure