![]() |
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
(Delphi DLL) 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
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Ai, StringBuilder; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; sbJs: HCkStringBuilder; ai: HCkAi; evalOnly: Boolean; allowAllKeyword: Boolean; conversation_name: PWideChar; sysMessage: PWideChar; devMessage: PWideChar; sbResponse: HCkStringBuilder; begin success := False; // ---------------------------------------------------------------------------------- // 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 := CkStringBuilder_Create(); success := CkStringBuilder_LoadFile(sbJs,'qa_data/js_tools/toolset_3.js','utf-8'); if (success = False) then begin Memo1.Lines.Add(CkStringBuilder__lastErrorText(sbJs)); Exit; end; ai := CkAi_Create(); // Register the tools that will be made available to the AI. evalOnly := False; allowAllKeyword := True; CkAi_RegisterJsTools(ai,sbJs,evalOnly,allowAllKeyword); // The provider can be "openai", "google", "claude", "grok", "mistral", "custom", etc. CkAi_putProvider(ai,'openai'); // Use your provider's API key. CkAi_putApiKey(ai,'MY_API_KEY'); // Choose a model. CkAi_putModel(ai,'gpt-5-mini'); // Tool function calling must always occur within a conversation. conversation_name := 'convo_4'; sysMessage := 'You are a helpful business assistant'; devMessage := 'Respond only with a information generated by a tool.'; CkAi_NewConvo(ai,conversation_name,sysMessage,devMessage); // Provide inputs CkAi_InputAddText(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_Ask(ai,'text'); if (success = False) then begin Memo1.Lines.Add(CkAi__lastErrorText(ai)); Exit; end; // Get the AI response. sbResponse := CkStringBuilder_Create(); CkAi_GetOutputTextSb(ai,sbResponse); Memo1.Lines.Add(CkStringBuilder__getAsString(sbResponse)); CkStringBuilder_Dispose(sbJs); CkAi_Dispose(ai); CkStringBuilder_Dispose(sbResponse); end;
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.