Skip to main content

🤖 AI tools

Tags: JavaScript, React, Vue, Angular, Website, Web App

What are AI tools?

AI tools allow you to create deep integrations between your app / website and Kai (our AI bot). A few use-cases might include:

  • A banking app allowing to initiate transactions
  • Performing a password reset directly in the messenger
  • Canceling orders
  • ...

The possibilities are almost endless. The following example shows how to add a new AI tool allowing users to initiate bank transactions directly inside Kai.

Ticket custom data

Specify AI tools

let aiTool = GleapAiTool(
name: "send-money",
// Describe the tool. This can also contain further instructions for the LLM.
toolDescription: "Send money to a given contact.",
// Let the LLM know what the tool is doing. This will allow Kai to update the customer accordingly.
response: "The transfer got initiated but not completed yet. The user must confirm the transfer in the banking app.",
// Set the execution type to auto or button.
executionType: 'button',
// Specify the parameters (it's also possible to pass an empty array)
parameters: [
GleapAiToolParameter(
name: "amount",
parameterDescription: "The amount of money to send. Must be positive and provided by the user.",
type: "string",
required: true
),
GleapAiToolParameter(
name: "contact",
parameterDescription: "The contact to send money to.",
type: "string",
required: true,
enums: ["Alice", "Bob"]
)
]
)

// Set the available tools as array of tools
Gleap.setAiTools([aiTool])

Execution type

auto: The tool will be executed automatically.

button: Kai adds a button to it's reply, that allows the user to execute the tool. The tool will not be executed automatically

Ticket custom data

Perform actions

Implement the onToolExecution delegate of GleapDelegate to get notified when a tool should be executed.

func onToolExecution(_ toolExecution: [AnyHashable : Any]) {
guard let name = toolExecution["name"] as? String else {
return
}

print("Tool: " + name)
print(toolExecution["params"] ?? "No params.")
}