kind: AdaptiveDialog
modelDescription: This should call the assistant. Always trigger this when a user has a message they post in the chat to trigger giving them a response from the assistant.
inputs:
  - kind: AutomaticTaskInput
    propertyName: Var1
    entity: StringPrebuiltEntity
    shouldPromptUser: true

beginDialog:
  kind: OnRecognizedIntent
  id: main
  intent:
    displayName: Greeting
    includeInOnSelectIntent: false
    triggerQueries:
      - Good afternoon
      - Good morning
      - Hello
      - Hey
      - Hi

  actions:
    - kind: ConditionGroup
      id: conditionGroup_tn2uNJ
      conditions:
        - id: conditionItem_NgqTVs
          condition: =System.LastMessage.Text in "Clear Chat"
          actions:
            - kind: SetVariable
              id: setVariable_iFJY3X
              variable: Global.VarConversationHistory
              value: "\"[]\""

            - kind: SendActivity
              id: sendActivity_xpkHnp
              activity: "Chat context has been cleared. Thank you for saving tokens. :) This is the last message: gobalVar{Global.VarConversationHistory}LastMessage:{System.LastMessage.Text}"

    - kind: SetVariable
      id: setVariable_dFuvBf
      variable: Topic.user_input
      value: =System.LastMessage.Text

    - kind: SetVariable
      id: setVariable_q5aimI
      variable: Topic.varEscapedInput
      value: =Substitute(Topic.user_input, """", "\""")

    - kind: SetVariable
      id: setVariable_zt7h6L
      variable: Global.VarConversationHistory
      value: |-
        =If(
          Global.VarConversationHistory = "[]",
          Concatenate("{""role"": ""user"", ""content"": """, Topic.varEscapedInput, """}"),
          Concatenate(Global.VarConversationHistory, ", {""role"": ""user"", ""content"": """, Topic.varEscapedInput, """}")
        )

    - kind: InvokeFlowAction
      id: invokeFlowAction_sSRTaI
      input:
        binding:
          text: =Topic.user_input
          text_1: =Global.VarConversationHistory

      output:
        binding:
          output: Topic.output

      flowId: ced8f731-2fef-ef11-be20-6045bd06598d

    - kind: SetVariable
      id: setVariable_3Q0Gl1
      variable: Topic.varEscapedResponse
      value: =Substitute(Topic.output, """", "\""")

    - kind: SetVariable
      id: setVariable_appendAssistantResponse
      variable: Global.VarConversationHistory
      value: "=Concatenate(Global.VarConversationHistory, \", {\"\"role\"\": \"\"assistant\"\", \"\"content\"\": \"\"\", Topic.varEscapedResponse, \"\"\"}\")"

    - kind: ConditionGroup
      id: conditionGroup_uTCUdF
      conditions:
        - id: conditionItem_jR2XKa
          condition: =Global.VarConversationHistory = """[]"""
          elseActions:
            - entity: StringPrebuiltEntity
              id: question_ASR8Wq
              interruptionPolicy:
                allowInterruption: true

              kind: Question
              prompt: "{Topic.Var3}"
              variable: Topic.Var1

    - kind: BeginDialog
      id: xrL7Bo
      dialog: crf9a_agent2_L4Y3ee.topic.Untitled