![]() |
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
(Unicode C) 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
#include <C_CkStringBuilderW.h> #include <C_CkAiW.h> void ChilkatSample(void) { BOOL success; HCkStringBuilderW sbJs; HCkAiW ai; BOOL evalOnly; BOOL allowAllKeyword; const wchar_t *conversation_name; const wchar_t *sysMessage; const wchar_t *devMessage; HCkStringBuilderW sbResponse; success = FALSE; // ---------------------------------------------------------------------------------- // The Javascript file loaded here is shown at the bottom of this page. // ----------------------------------------------------------------------------------- // Load JavaScript containing the tool functions. sbJs = CkStringBuilderW_Create(); success = CkStringBuilderW_LoadFile(sbJs,L"qa_data/js_tools/toolset_6.js",L"utf-8"); if (success == FALSE) { wprintf(L"%s\n",CkStringBuilderW_lastErrorText(sbJs)); CkStringBuilderW_Dispose(sbJs); return; } ai = CkAiW_Create(); // Register the tools that will be made available to the AI. evalOnly = FALSE; allowAllKeyword = TRUE; CkAiW_RegisterJsTools(ai,sbJs,evalOnly,allowAllKeyword); // The provider can be "openai", "google", "claude", "grok", "mistral", "custom", etc. CkAiW_putProvider(ai,L"openai"); // Use your provider's API key. CkAiW_putApiKey(ai,L"MY_API_KEY"); // Choose a model. CkAiW_putModel(ai,L"gpt-5-mini"); // Tool function calling must always occur within a conversation. conversation_name = L"example_convo"; sysMessage = L"You are a helpful assistant"; devMessage = L"Respond with markdown"; CkAiW_NewConvo(ai,conversation_name,sysMessage,devMessage); // Provide inputs CkAiW_InputAddText(ai,L"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 = CkAiW_Ask(ai,L"text"); if (success == FALSE) { wprintf(L"%s\n",CkAiW_lastErrorText(ai)); CkStringBuilderW_Dispose(sbJs); CkAiW_Dispose(ai); return; } // Get the AI response. sbResponse = CkStringBuilderW_Create(); CkAiW_GetOutputTextSb(ai,sbResponse); wprintf(L"%s\n",CkStringBuilderW_getAsString(sbResponse)); CkStringBuilderW_Dispose(sbJs); CkAiW_Dispose(ai); CkStringBuilderW_Dispose(sbResponse); }
|
||||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.