![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript 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 Ask with Multiple Tool Function CallbacksSee more AI ExamplesThis example demonstrates asking a two-part question that should cause the AI to respond with two tool call requests.Note: This example requires Chilkat v11.4.0 or greater. For more information, see https://www.chilkatsoft.com/ai_javascript_tool_function_calling.asp
IncludeFile "CkStringBuilder.pb" IncludeFile "CkAi.pb" Procedure ChilkatExample() success.i = 0 ; ---------------------------------------------------------------------------------- ; The Javascript file loaded here is shown at the bottom of this page. ; ----------------------------------------------------------------------------------- ; Load JavaScript containing the tool functions. sbJs.i = CkStringBuilder::ckCreate() If sbJs.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkStringBuilder::ckLoadFile(sbJs,"qa_data/js_tools/toolset_6.js","utf-8") If success = 0 Debug CkStringBuilder::ckLastErrorText(sbJs) CkStringBuilder::ckDispose(sbJs) ProcedureReturn EndIf ai.i = CkAi::ckCreate() If ai.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Register the tools that will be made available to the AI. evalOnly.i = 0 allowAllKeyword.i = 1 CkAi::ckRegisterJsTools(ai,sbJs,evalOnly,allowAllKeyword) ; The provider can be "openai", "google", "claude", "grok", "mistral", "custom", etc. CkAi::setCkProvider(ai, "openai") ; Use your provider's API key. CkAi::setCkApiKey(ai, "MY_API_KEY") ; Choose a model. CkAi::setCkModel(ai, "gpt-5-mini") ; Tool function calling must always occur within a conversation. conversation_name.s = "example_convo" sysMessage.s = "You are a helpful assistant" devMessage.s = "Respond with markdown" CkAi::ckNewConvo(ai,conversation_name,sysMessage,devMessage) ; Provide inputs CkAi::ckInputAddText(ai,"What is my horoscope? I am an Aquarius. Also, what's the weather in Chicago?") ; Send inputs, tool functions, etc. and ask for a "text" response. ; If the AI responds with tool calls, Chilkat automatically handles them by calling your JavaScript ; tool functions as directed by the AI, and sending results back to the AI until the final ; response is received. success = CkAi::ckAsk(ai,"text") If success = 0 Debug CkAi::ckLastErrorText(ai) CkStringBuilder::ckDispose(sbJs) CkAi::ckDispose(ai) ProcedureReturn EndIf ; Get the AI response. sbResponse.i = CkStringBuilder::ckCreate() If sbResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAi::ckGetOutputTextSb(ai,sbResponse) Debug CkStringBuilder::ckGetAsString(sbResponse) CkStringBuilder::ckDispose(sbJs) CkAi::ckDispose(ai) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndProcedure
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.