app:
  description: A chatbot that answers questions using only our Jira knowledge base.
  icon: 🤖
  icon_background: '#FFEAD5'
  icon_type: emoji
  mode: advanced-chat
  name: 'Exercise 3: Building a RAG'
  use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/azure_openai:0.0.69@c744f6bf60699c296307a4420094a7f88b4f6e7fdf353b67b2b88ddb455074b2
    version: null
kind: app
version: 0.7.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .JPEG
      - .PNG
      - .GIF
      - .WEBP
      - .SVG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      - remote_url
      enabled: false
      fileUploadConfig:
        attachment_image_file_size_limit: 2
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        file_upload_limit: 20
        image_file_batch_limit: 10
        image_file_size_limit: 10
        single_chunk_attachment_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
        - remote_url
      number_limits: 3
    opening_statement: '🎩 Welcome to Testus Patronus, the AI assistant for magical
      testers!


      Before we begin, tell me what you''re working on today:

      - A Jira issue?

      - Reviewing test coverage?

      - Looking for documentation insights?


      Just ask your question below and I''ll see what''s in the spellbook 📚'
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions:
    - What kind of bug is issue 266 and what is it about?
    - Who is assigned to REST-266?
    - What is the project about?
    - Does the project support webhooks?
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        isInLoop: false
        iteration_id: null
        loop_id: null
        sourceType: start
        targetType: knowledge-retrieval
      id: 1790416251993-source-1790417549799-target
      source: '1790416251993'
      sourceHandle: source
      target: '1790417549799'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        iteration_id: null
        loop_id: null
        sourceType: knowledge-retrieval
        targetType: llm
      id: 1790417549799-source-llm-target
      source: '1790417549799'
      sourceHandle: source
      target: llm
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        iteration_id: null
        loop_id: null
        sourceType: llm
        targetType: answer
      id: llm-answer
      source: llm
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        selected: false
        title: User Input
        type: start
        variables: []
      height: 73
      id: '1790416251993'
      position:
        x: 80
        y: 282
      positionAbsolute:
        x: 80
        y: 282
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
      zIndex: 0
    - data:
        dataset_ids:
        - YnMXRhVV466rpxRVWdK0cdEejVpwwFT0BT9Fe2peD80Pyv7vRACHt3mIdiWJ/MV0
        multiple_retrieval_config:
          reranking_enable: false
          reranking_mode: weighted_score
          score_threshold: 0.5
          top_k: 4
          weights:
            keyword_setting:
              keyword_weight: 0
            vector_setting:
              embedding_model_name: text-embedding-3-large
              embedding_provider_name: langgenius/azure_openai/azure_openai
              vector_weight: 1
            weight_type: customized
        query_attachment_selector: []
        query_variable_selector:
        - '1790416251993'
        - sys.query
        retrieval_mode: multiple
        selected: false
        title: Knowledge Retrieval
        type: knowledge-retrieval
      height: 90
      id: '1790417549799'
      position:
        x: 380
        y: 282
      positionAbsolute:
        x: 380
        y: 282
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
      zIndex: 0
    - data:
        answer: '{{#llm.text#}}'
        selected: false
        title: Answer
        type: answer
        variables: []
      height: 103
      id: answer
      position:
        x: 980
        y: 282
      positionAbsolute:
        x: 980
        y: 282
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
      zIndex: 0
    - data:
        context:
          enabled: true
          variable_selector:
          - '1790417549799'
          - result
        desc: Answers only from the retrieved Jira context
        memory:
          query_prompt_template: '{{#sys.query#}}'
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: gpt-35-turbo-16k
          provider: langgenius/azure_openai/azure_openai
        prompt_template:
        - id: 257f48ef-dde5-489d-b5db-ec61bccf4295
          role: system
          text: 'You are a software testing assistant helping engineers understand
            Jira issues, project documentation, and related work.


            Only answer using the information provided in the context below. Never
            use outside knowledge or speculation.

            If the context does not contain relevant information, reply exactly:

            "I''m sorry, I can''t find relevant information in the project documentation
            to answer that."


            Each context chunk describes one Jira issue: its key and aliases (for
            example REST-266, Issue 266), example questions, summary, type, status,
            assignee, dates, and description.


            Your reply should:

            - Give a concise, professional summary of the issue or topic

            - Highlight relevant fields (summary, type, status, assignee, etc.)

            - Mention related issues when they appear in the context

            - Clarify technical areas (for example endpoints, APIs, modules)

            - Explain the relevance for testing (for example new test cases, regression
            risk, feature readiness)


            If information is missing, say what is known and what isn''t.


            Context:

            {{#context#}}

            '
        selected: false
        title: LLM
        type: llm
        vision:
          enabled: false
      height: 132
      id: llm
      position:
        x: 680
        y: 282
      positionAbsolute:
        x: 680
        y: 282
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
      zIndex: 0
    viewport:
      x: -21.729660882025087
      y: 133.54402165260313
      zoom: 0.9488934882980417
  rag_pipeline_variables: []
