Perl
Perl
AI Ask with Multiple Tool Function Callbacks
See more AI Examples
This example demonstrates asking a two-part question that should cause the AI to respond with two tool call requests.Chilkat Perl Downloads
use chilkat();
$success = 0;
# ----------------------------------------------------------------------------------
# The Javascript file loaded here is shown at the bottom of this page.
# -----------------------------------------------------------------------------------
# Load JavaScript containing the tool functions.
$sbJs = chilkat::CkStringBuilder->new();
$success = $sbJs->LoadFile("qa_data/js_tools/toolset_6.js","utf-8");
if ($success == 0) {
print $sbJs->lastErrorText() . "\r\n";
exit;
}
$ai = chilkat::CkAi->new();
# Register the tools that will be made available to the AI.
$evalOnly = 0;
$allowAllKeyword = 1;
$ai->RegisterJsTools($sbJs,$evalOnly,$allowAllKeyword);
# The provider can be "openai", "google", "claude", "grok", "mistral", "custom", etc.
$ai->put_Provider("openai");
# Use your provider's API key.
$ai->put_ApiKey("MY_API_KEY");
# Choose a model.
$ai->put_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) {
print $ai->lastErrorText() . "\r\n";
exit;
}
# Get the AI response.
$sbResponse = chilkat::CkStringBuilder->new();
$ai->GetOutputTextSb($sbResponse);
print $sbResponse->getAsString() . "\r\n";