# Collection of all the prompts
prompts:
    # GENERAL PROMPTS

    - task: general
      content: |-
          {{ general_instructions }}

          {{ history | user_assistant_sequence }}
          Assistant:

    # Prompt for detecting the user message canonical form.
    - task: generate_user_intent
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation | verbose_v1 }}

          # This is how the user talks:
          {{ examples | verbose_v1 }}

          # This is the current conversation between the user and the bot:
          # Choose intent from this list: {{ potential_user_intents }}
          {{ sample_conversation | first_turns(2) | verbose_v1 }}
          {{ history | colang | verbose_v1 }}
      output_parser: "verbose_v1"

    # Prompt for generating the next steps.
    - task: generate_next_steps
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation | remove_text_messages | verbose_v1 }}

          # This is how the bot thinks:
          {{ examples | remove_text_messages | verbose_v1 }}

          # This is the current conversation between the user and the bot:
          {{ sample_conversation | first_turns(2) | remove_text_messages | verbose_v1 }}
          {{ history | colang | remove_text_messages | verbose_v1 }}
      output_parser: "verbose_v1"

    # Prompt for generating the bot message from a canonical form.
    - task: generate_bot_message
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation | verbose_v1 }}

          {% if relevant_chunks %}
          # This is some additional context:
          ```markdown
          {{ relevant_chunks }}
          ```
          {% endif %}

          # This is how the bot talks:
          {{ examples | verbose_v1 }}

          # This is the current conversation between the user and the bot:
          {{ sample_conversation | first_turns(2) | verbose_v1 }}
          {{ history | colang | verbose_v1 }}

      output_parser: "verbose_v1"

    # Prompt for generating the user intent, next steps and bot message in a single call.
    - task: generate_intent_steps_message
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation }}

          # For each user message, generate the next steps and finish with the bot message.
          # These are some examples how the bot thinks:
          {{ examples }}

          # This is the current conversation between the user and the bot:
          {{ sample_conversation | first_turns(2) }}
          {{ history | colang }}

    # Prompt for generating the value of a context variable.
    - task: generate_value
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation | verbose_v1 }}

          # This is how the bot thinks:
          {{ examples | verbose_v1 }}

          # This is the current conversation between the user and the bot:
          {{ sample_conversation | first_turns(2) | verbose_v1 }}
          {{ history | colang | verbose_v1 }}
          # {{ instructions }}
          ${{ var_name }} =
      output_parser: "verbose_v1"

    # Colang 2.x prompts below.

    # Prompt for detecting the user message canonical form.
    - task: generate_user_intent_from_user_action
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation }}

          # These are the most likely user intents:
          {{ examples }}

          # This is the current conversation between the user and the bot:
          {{ history | colang }}

          # Continuation of interaction using only specified user intents from the section 'These are the most likely user intents:':
          user action: {{ user_action }}
          user intent:
      stop:
          - "\n"

    - task: generate_user_intent_and_bot_action_from_user_action
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation }}

          # These are the most likely user intents:
          {{ examples }}

          {% if context.relevant_chunks %}
          # This is some additional context:
          ```markdown
          {{ context.relevant_chunks }}
          ```
          {% endif %}

          # This is the current conversation between the user and the bot:
          {{ history | colang }}

          # Continuation of interaction using only specified user intents from the section 'These are the most likely user intents:':
          user action: {{ user_action }}
          user intent:
      stop:
          - "\nuser intent:"

    # Prompt for generating the value of a context variable.
    - task: generate_value_from_instruction
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation }}

          # This is the current conversation between the user and the bot:
          {{ history | colang }}

          # {{ instructions }}
          ${{ var_name }} =
      stop:
          - "\n"

    # Prompt for generating a flow from instructions.
    - task: generate_flow_from_instructions
      content: |-
          # Example flows:
          {{ examples }}

          # Complete the following flow based on its instruction:
          flow {{ flow_name }}
            """{{ instructions }}"""
      stop:
          - "\nflow"

    # Prompt for generating a flow from name.
    - task: generate_flow_from_name
      content: |-
          # Example flows:
          {{ examples }}

          # Complete the following flow based on its name:
          flow {{ flow_name }}

      # Prompt for generating the continuation for the current conversation.
    - task: generate_flow_continuation
      content: |-
          """
          {{ general_instructions }}
          """

          # This is how a conversation between a user and the bot can go:
          {{ sample_conversation }}

          # This is the current conversation between the user and the bot:
          {{ history | colang }}

          {% if context.relevant_chunks %}
          # This is some additional context:
          ```markdown
          {{ context.relevant_chunks }}
          ```
          {% endif %}


          bot intent:

    - task: generate_flow_continuation_from_flow_nld
      content: |-
          {{ flow_nld }}
