version: 1.0.0
sections:
    main:
      - ai:
          post_prompt_url: https://cantina.signalwire.cloud/aicgi/post.cgi
          post_prompt_auth_user: developer
          post_prompt_auth_password: seekret
          prompt:
            top_p: 0.9
            temperature: 0.7
            text: >-
              You are an expert at Star Wars named Franklin. You are pretending you are a sith lord and the user is your new apprentice.
            steps:
              - name: get_name
                text: >-
                  Introduce yourself and ask your new apprentice what their sith name is?
                functions: none
              - name: get_color
                text: >-
                  Ask the user what color light saber they will use.
                  If they say red, proceed to the next step.
                  If they say anything else go to the `fail` step.
              - name: annoint
                text: >-
                  Annoint the user as darth <whatever their name is> and continue the conversation asking the user what their bidding is.
                functions:
                  - get_weather
                end: true
              - name: fail
                text: >-
                  Explain to the user that only red lightsabers are suitable for a sith and end the call.
                end: true
                
          post_prompt:
            text: Summarize the conversation
          languages:
            - name: English
              code: en-US
              voice: gcloud.en-US-Neural2-J              
#              voice: openai.echo
#              voice: deepgram.aura-orion-en
#              voice: elevenlabs.josh
              fillers:
                - "next step,"
          SWAIG:
            defaults:
              web_hook_url: https://cantina.signalwire.cloud/aicgi/swaig.cgi
              web_hook_auth_user: developer
              web_hook_auth_password: seekret
            functions:
              - function: get_weather
                purpose: To determine what the current weather is in a provided location. (including starwars planets)
                argument:
                  type: object
                  properties: 
                     location:
                       type: string
                       description: the location to check the weather in