![]() |
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
(PureBasic) 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.
IncludeFile "CkAi.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() success.i = 0 ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ai.i = CkAi::ckCreate() If ai.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity". ; Support for additional providers will be added in future versions of Chilkat. CkAi::setCkProvider(ai, "openai") ; In this case, we're going to cause an intentional failure by using an invalid API key. CkAi::setCkApiKey(ai, "sk-11111111111111111111111111111111111111111111111k") ; Choose a model. CkAi::setCkModel(ai, "gpt-4o") ; Add a text input. CkAi::ckInputAddText(ai,"Say Hello.") ; Ask the AI for text output. success = CkAi::ckAsk(ai,"text") If success = 0 ; 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::ckResponseStatusCode(ai) = 0 Debug CkAi::ckLastErrorText(ai) Else ; If we received an error response, the status code will be >= 400. ; (Ask would've returned 1 if the response status code was 200.) Debug "Response status code: " + Str(CkAi::ckResponseStatusCode(ai)) ; The error response (JSON) is available in the LastJsonData. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(json, 0) CkAi::ckGetLastJsonData(ai,json) Debug CkJsonObject::ckEmit(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" ; } ; } EndIf CkAi::ckDispose(ai) CkJsonObject::ckDispose(json) ProcedureReturn EndIf ; Get the text response. sbResponse.i = CkStringBuilder::ckCreate() If sbResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAi::ckGetOutputTextSb(ai,sbResponse) Debug CkStringBuilder::ckGetAsString(sbResponse) CkAi::ckDispose(ai) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndProcedure |
||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.