![]() |
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) Automatic JavaScript AI Tool Returning a NumberSee more AI ExamplesDemonstrates an automatic JavaScript tool function that returns a number. Automatic JavaScript tool calls are characterized by:
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. ; ----------------------------------------------------------------------------------- ; In this example, we'll load the Javascript tool functions and registry from a file. ; It doesn't need to come from a file. It could just as easily be loaded from a string. sbJs.i = CkStringBuilder::ckCreate() If sbJs.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkStringBuilder::ckLoadFile(sbJs,"qa_data/js_tools/toolset_3.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 = "convo_4" sysMessage.s = "You are a helpful business assistant" devMessage.s = "Respond only with a information generated by a tool." CkAi::ckNewConvo(ai,conversation_name,sysMessage,devMessage) ; Provide inputs CkAi::ckInputAddText(ai,"What is the total for order A123?") ; 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.