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
function RequiredstringA unique name for the function. For example, "get_weather".
purpose RequiredstringA description of the context and purpose of the function, to explain to the agent when to use it.
argument RequiredobjectA JSON object defining the input that should be passed to the function. The fields of this object are the following two parameters.
active OptionalbooleanWhether the function is active. Default is true.
meta_data OptionalobjectA 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.
Default is not set.
meta_data_token OptionalstringScoping token for meta_data. If not supplied, metadata will be scoped to function's web_hook_url. Default is set by SignalWire.
data_mapOptionalobjectAn 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_url OptionalstringFunction-specific URL to send status callbacks and reports to. Takes precedence over a default setting. Default is not set. See Callback Parameters for details on the request body.
web_hook_auth_user OptionalstringFunction-specific auth username for web_hook_url endpoint. Takes precedence over a default setting. Default is not set.
web_hook_auth_pass OptionalstringFunction-specific auth password for web_hook_url endpoint. Takes precedence over a default setting. Default is not set.
wait_file OptionalstringA file to play while the function is running. wait_file_loops can specify the amount of times that files should continously play. Default is not set.
wait_file_loops Optionalstring | integerThe amount of times that wait_file should continuously play/loop. Default is not set.

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