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

NameTypeDefaultDescription
functionsOptionalobject[]-An array of JSON objects that accept the functions Parameters.

functions Parameters

ParameterTypeDefaultDescription
function Requiredstring-A unique name for the function. For example, "get_weather".
purpose Requiredstring-A description of the context and purpose of the function, to explain to the agent when to use it.
argument Optionalobject-A JSON object defining the input that should be passed to the function. The fields of this object are the following two parameters.
active Optionalboolean-Whether the function is active. Default is true.
meta_data Optionalobject-A 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.
meta_data_token Optionalstring-Scoping token for meta_data. If not supplied, metadata will be scoped to function's web_hook_url. Default is set by SignalWire.
data_mapOptionalobject-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_url Optionalstring-Function-specific URL to send status callbacks and reports to. Takes precedence over a default setting. Authentication can also be set in the url in the format of username:password@url. See Callback Parameters for details on the request body.
wait_file Optionalstring-A file to play while the function is running. wait_file_loops can specify the amount of times that files should continously play.
wait_file_loops Optionalstring | integer-The amount of times that wait_file should continuously play/loop.

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