The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SignalWire::ML - Light and fast SWML generator

METHODS

new($class, $args)

Constructor method. Creates a new SignalWire::ML object with default values.

Example

Here's an example of how to use SignalWire::ML:

    use SignalWire::ML;

    # Create a new SignalWire::ML object
    my $ml = SignalWire::ML->new({
        version => '1.0.0'
    });

    # Set AI prompt
    $ml->set_aiprompt({
        text => "What's the weather like today?",
        temperature => 0.7,
        top_p => 0.9
    });

    # Set AI parameters
    $ml->set_aiparams({
        max_tokens => 150
    });

    # Add an AI application to a section
    $ml->add_aiapplication('main');

    # Render the result
    my $json_output = $ml->render_json();
    print $json_output;

This example demonstrates creating a SignalWire::ML object, setting various parameters and contexts, adding applications, and then rendering the result as JSON.

add_aiapplication($self, $section)

Adds an AI application to the specified section.

set_context_steps($self, $context_name, $steps)

Sets the steps for a specific context in the prompt.

add_context_steps($self, $context_name, $steps)

Adds steps to an existing context in the prompt.

set_prompt_contexts($self, $contexts)

Sets the contexts for the prompt.

add_application($self, $section, $app, $args)

Adds an application to the specified section with given arguments.

This method is used to add an application to a specific section in the SignalWire::ML object.

Example usage:

    my $swml = SignalWire::ML->new({version => '1.0.0'});
    
    $swml->add_application("main", "answer");
    
    $swml->add_application("main", "play",
        { urls => [ "https://github.com/freeswitch/freeswitch-sounds/raw/master/en/us/callie/ivr/48000/ivr-welcome_to_freeswitch.wav" ] });
    
    $swml->add_application("main", "hangup");
    
    $swml->add_aiapplication('main');
    
    print $swml->render_json;

This example demonstrates creating a SignalWire::ML object, adding various applications including an answer, play, and hangup application, then adding an AI application to the 'main' section, and finally rendering the result as JSON.

set_aipost_prompt_url($self, $postprompt)

Sets the AI post-prompt URL and related parameters.

set_global_data($self, $data)

Sets the global data for the ML object.

set_aiparams($self, $params)

Sets the AI parameters.

add_aiparams($self, $params)

Adds additional AI parameters.

set_aipost_prompt($self, $postprompt)

Sets the AI post-prompt parameters.

set_aiprompt($self, $prompt)

Sets the AI prompt parameters.

swaig_response($self, $response)

Processes and returns the SWAIG response.

swaig_response_json($self, $response)

Processes the SWAIG response and returns it as JSON.

render($self)

Renders the content of the ML object.

render_json($self)

Renders the content of the ML object as JSON.

render_yaml($self)

Renders the content of the ML object as YAML.

SYNOPSIS

TODO