Skip to main content

SWAIG.functions

An array of JSON objects to define functions that can be executed during the interaction with the AI. The functions are defined in

Parameters

ParameterTypeDescription
activebooleanWhether the function is active. Optional. Default is true.
functionstringA unique name for the function. For example, "get_weather". Required.
meta_dataobjectA powerful and flexible environmental variable which can accept arbitrary data that is set initially in the SWML script or from the SWML set_meta_data action. This data can be referenced locally to the function. All contained information can be accessed and expanded within the prompt - for example, by using a template string.
Optional. Default is not set.
meta_data_tokenstringScoping token for meta_data. If not supplied, metadata will be scoped to function's web_hook_url. Optional. Default is set by SignalWire.
data_mapobject[]An object containing properties to process or validate the input, perform actions based on the input, or connect to external APIs or services in a serverless fashion.
web_hook_urlstringFunction-specific URL to send status callbacks and reports to. Takes precedence over a default setting. Optional. Default is not set. See Callback Parameters for details on the request body.
web_hook_auth_userstringFunction-specific auth username for web_hook_url endpoint. Takes precedence over a default setting. Optional. Default is not set.
web_hook_auth_passstringFunction-specific auth password for web_hook_url endpoint. Takes precedence over a default setting. Optional. Default is not set.
wait_filestringA file to play while the function is running. wait_file_loops can specify the amount of times that files should continously play. Optional. Default is not set.
wait_file_loopsstring | integerThe amount of times that wait_file should continuously play/loop. Optional. Default is not set.
purposestringA description of the context and purpose of the function, to explain to the agent when to use it. Required.
argumentobjectA JSON object defining the input that should be passed to the function. The fields of this object are the following two parameters. Required.
argument.typestringThe type of argument the AI is passing to the function. Possible values are "string" and "object". Required.
argument.propertiesobjectA JSON object describing the argument. The value is set by the user. For example, "location" for a location-based search or "company" if searching a database of companies. This object has sub-parameters description and type to help define the property. See examples below for implementation. Required.

Examples

Using SWAIG Functions

version: 1.0.0
sections:
main:
- ai:
post_prompt_url: "https://example.com/my-api"
prompt:
text: |
You are a helpful assistant that can provide information to users about a destination.
You can use the appropriate function to get the phone number, address,
or weather information.
post_prompt:
text: "Summarize the conversation."
SWAIG:
includes:
- functions:
- get_phone_number
- get_address
url: https://example.com/functions
user: me
pass: secret
defaults:
web_hook_url: https://example.com/my-webhook
web_hook_auth_user: me
web_hook_auth_pass: secret
functions:
- function: get_weather
purpose: To determine what the current weather is in a provided location.
argument:
properties:
location:
type: string
description: The name of the city to find the weather from.
type: object