![]() |
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 ActiveX) 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/automatic_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, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var success: Integer; sbJs: TChilkatStringBuilder; ai: TChilkatAi; evalOnly: Integer; allowAllKeyword: Integer; conversation_name: WideString; sysMessage: WideString; devMessage: WideString; sbResponse: TChilkatStringBuilder; begin success := 0; // ---------------------------------------------------------------------------------- // The Javascript file loaded here is shown at the bottom of this page. // ----------------------------------------------------------------------------------- // Load JavaScript containing the tool functions. sbJs := TChilkatStringBuilder.Create(Self); success := sbJs.LoadFile('qa_data/js_tools/toolset_6.js','utf-8'); if (success = 0) then begin Memo1.Lines.Add(sbJs.LastErrorText); Exit; end; ai := TChilkatAi.Create(Self); // Register the tools that will be made available to the AI. evalOnly := 0; allowAllKeyword := 1; ai.RegisterJsTools(sbJs.ControlInterface,evalOnly,allowAllKeyword); // The provider can be "openai", "google", "claude", "grok", "mistral", "custom", etc. ai.Provider := 'openai'; // Use your provider's API key. ai.ApiKey := 'MY_API_KEY'; // Choose a model. ai.Model := 'gpt-5-mini'; // Tool function calling must always occur within a conversation. conversation_name := 'example_convo'; sysMessage := 'You are a helpful assistant'; devMessage := 'Respond with markdown'; ai.NewConvo(conversation_name,sysMessage,devMessage); // Provide inputs ai.InputAddText('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 := ai.Ask('text'); if (success = 0) then begin Memo1.Lines.Add(ai.LastErrorText); Exit; end; // Get the AI response. sbResponse := TChilkatStringBuilder.Create(Self); ai.GetOutputTextSb(sbResponse.ControlInterface); Memo1.Lines.Add(sbResponse.GetAsString()); end;
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.