app:
  description: 自動判斷客服工單類別、標優先級並草擬回覆。
  icon: 🎧
  icon_background: '#E0E7FF'
  icon_type: emoji
  mode: advanced-chat
  name: 客服工單分類與回覆助手
  use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/anthropic:0.3.24@c5e50da8c13c7ac75348df5ac75b9418c79736eb506064669dd7ca06cbd83537
    version: null
kind: app
version: 0.6.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .PNG
      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: 我是客服工單助手 🎧 貼上顧客的訊息，我會判斷工單類別、標優先級，並草擬第一版回覆。
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions:
    - 我上週買的鞋子尺寸不合，可以換嗎？
    - 下訂三天了還沒收到，到底什麼時候會到！
    - 收到的商品有瑕疵，我要求退款和道歉！
    - 請問這款吹風機可以帶上飛機嗎？
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: start
        targetType: question-classifier
      id: 20s-source-20qc
      source: 20s
      sourceHandle: source
      target: 20qc
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: llm
      id: 20qc-c_return-20l
      source: 20qc
      sourceHandle: c_return
      target: 20l
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: llm
      id: 20qc-c_logistics-20l
      source: 20qc
      sourceHandle: c_logistics
      target: 20l
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: llm
      id: 20qc-c_complaint-20l
      source: 20qc
      sourceHandle: c_complaint
      target: 20l
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: llm
      id: 20qc-c_general-20l
      source: 20qc
      sourceHandle: c_general
      target: 20l
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: answer
      id: 20l-source-20a
      source: 20l
      sourceHandle: source
      target: 20a
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        selected: false
        title: 開始
        type: start
        variables: []
      height: 73
      id: 20s
      position:
        x: 80
        y: 320
      positionAbsolute:
        x: 80
        y: 320
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        classes:
        - id: c_return
          name: 退換貨與退款
        - id: c_logistics
          name: 物流與到貨查詢
        - id: c_complaint
          name: 客訴與抱怨
        - id: c_general
          name: 一般諮詢（商品、規格、使用）
        instruction: 你是電商客服的分流員。依顧客訊息判斷屬於哪一類工單；語氣激動、要求道歉賠償或表達強烈不滿者歸『客訴與抱怨』。
        model:
          completion_params:
            temperature: 0.1
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        query_variable_selector:
        - sys
        - query
        selected: true
        title: 工單分類器
        topics: []
        type: question-classifier
      height: 262
      id: 20qc
      position:
        x: 340
        y: 250
      positionAbsolute:
        x: 340
        y: 250
      selected: true
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        memory:
          query_prompt_template: '{{#sys.query#}}'
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.4
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s20
          role: system
          text: '你是電商客服專員，負責替客服人員草擬第一版回覆。這則訊息已被分類為：「{{#20qc.class_name#}}」。

            請依類別採用對應處理原則，一律使用繁體中文、語氣專業有溫度：

            - 退換貨與退款：說明 7 天鑑賞期與流程、需要的資訊（訂單編號、商品狀況），附上下一步。

            - 物流與到貨查詢：安撫並說明查詢方式、預計時效，請對方提供訂單編號以便查件。

            - 客訴與抱怨：先誠懇同理與致歉，承接情緒，具體說明會如何處理與時程，必要時升級主管。

            - 一般諮詢：清楚回答問題；資訊不足就禮貌詢問缺少的細節。


            輸出格式：

            ## 工單分類：{{#20qc.class_name#}}

            ## 建議優先級：（高／中／低，客訴與退款偏高）

            ## 建議回覆草稿：

            （可直接給客戶的回覆，繁體中文）

            ## 內部備註：

            （提醒客服需要向顧客索取或確認的資訊）


            規則：不承諾未確認的補償金額或到貨時間；需要訂單資訊時明確請對方提供，不要臆造。'
        selected: false
        title: 回覆草稿
        type: llm
        vision:
          enabled: false
      height: 88
      id: 20l
      position:
        x: 700
        y: 320
      positionAbsolute:
        x: 700
        y: 320
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        answer: '{{#20l.text#}}'
        selected: false
        title: 直接回覆
        type: answer
        variables: []
      height: 103
      id: 20a
      position:
        x: 1000
        y: 320
      positionAbsolute:
        x: 1000
        y: 320
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    viewport:
      x: 20
      y: 40
      zoom: 0.8
  rag_pipeline_variables: []
