ถามคำถามด้วย การ์ดที่ปรับเปลี่ยนได้

Note

บทความนี้อธิบายคุณสมบัติที่ใช้ในเอเจนต์หรือการไหลของเอเจนต์ที่ขับเคลื่อนโดยฮาร์เนสมาตรฐาน

ใช้ Adaptive Card เพื่อเก็บข้อมูลจากผู้ใช้ระหว่างการสนทนากับเอเจนต์ การ์ดสามารถมีข้อความ กราฟิก ปุ่ม และช่องกรอกข้อมูล เรียนรู้เพิ่มเติมใน ใช้อะแดปทีฟการ์ดใน Copilot Studio

ด้วยโหนด การ์ดที่ปรับเปลี่ยนได้ เอเจนต์ของคุณสามารถแสดงการ์ดที่ปรับเปลี่ยนได้ที่มีปุ่มส่งตั้งแต่หนึ่งปุ่มขึ้นไป และสามารถเลือกฟิลด์ป้อนข้อมูลฟอร์มอย่างน้อยหนึ่งฟิลด์ เอเจนต์ของคุณจัดเก็บข้อมูลที่ผู้ใช้ป้อนไว้ในตัวแปรเพื่อใช้ในภายหลังในการสนทนา

Note

Copilot Studio สนับสนุน schema การ์ดที่ปรับเปลี่ยนได้ เวอร์ชัน 1.6 และเวอร์ชันก่อนหน้า อย่างไรก็ตาม รุ่น Schema ที่เหมาะสมขึ้นอยู่กับแอปโฮสต์เป้าหมาย:

  • คอมโพเนนต์ เนื้อหาการคุยผ่านเว็บ Bot Framework (นั่นคือ รูปแบบการรวมเว็บไซต์เริ่มต้น) สนับสนุนเวอร์ชัน 1.6 แต่ไม่สนับสนุน Action.Execute
  • วิดเจ็ตแชทสด (ใช้สําหรับ Omnichannel สําหรับฝ่ายบริการลูกค้า) ถูกจํากัดไว้ที่เวอร์ชัน 1.5
  • Teams ยังถูกจำกัดไว้ที่เวอร์ชัน 1.5

นอกจากนี้ Copilot Studio จะแสดงการ์ดเวอร์ชัน 1.6 ในการสนทนาทดสอบเท่านั้น ไม่ใช่บนพื้นที่ทํางาน

เรียนรู้เพิ่มเติมใน อะแดปทีฟการ์ด

Copilot Studio มีตัวออกแบบอะแดปทีฟการ์ดในตัว ซึ่งมีคุณสมบัติที่มีประโยชน์ที่สุดจากตัวออกแบบอะแดปทีฟการ์ด

หรือคุณสามารถ:

  • ใช้การแสดง JSON สำหรับการ์ดที่คุณต้องการแสดงต่อผู้ใช้
  • ใช้ สูตร Power Fx เพื่อรวมข้อมูลแบบไดนามิกไว้บนการ์ด

คุณยังสามารถควบคุมลักษณะการทำงานของการ์ด เช่น จะทำอย่างไรเมื่อผู้ใช้ป้อนคำตอบที่ไม่ถูกต้องหรือหากโหนดไม่สามารถขัดจังหวะได้

โหนด การ์ดที่ปรับเปลี่ยนได้ มีไว้สำหรับการ์ดแบบโต้ตอบซึ่งคาดว่าผู้ใช้จะส่งการตอบกลับ ใช้โหนด Message และ Question เพื่อแสดงการ์ดข้อมูลแบบไม่โต้ตอบแก่ผู้ใช้

Tip

เปลี่ยนชื่อโหนดเพื่อให้สามารถระบุได้ง่ายขึ้น เลือกช่องชื่อโหนดเพื่ออัปเดตชื่อโดยตรง หรือเลือกจุดสามจุด (...) ของโหนด แล้วเลือกเปลี่ยน ชื่อ จากเมนู นอกจากนี้คุณยังสามารถเปลี่ยนชื่อโหนดใน ตัวแก้ไขโค้ด

ไม่สามารถเปลี่ยนชื่อโหนด ทริกเกอร์ และโหนด ไปที่ขั้นตอน ได้

ชื่อโหนดสามารถมีความยาวได้สูงสุด 500 อักขระ

โหนดเพิ่มการ์ดที่ปรับเปลี่ยนได้

  1. เลือกไอคอน Add node ใต้โหนดที่คุณต้องการเพิ่มโหนด Adaptive Card ต่อจากโหนดนั้น จากนั้นเลือก ถามด้วย Adaptive Card

  2. เลือกจุดสามจุด (...) ของโหนด แล้วเลือก คุณสมบัติ

  3. ในแผง คุณสมบัติของโหนดการ์ดที่ปรับเปลี่ยนได้ ให้เลือก แก้ไขการ์ดที่ปรับเปลี่ยนได้ แผงตัวออกแบบการ์ดที่ปรับเปลี่ยนได้จะเปิดขึ้น

  4. เพิ่มองค์ประกอบที่ต้องการสำหรับการ์ดของคุณและกำหนดค่าคุณสมบัติ หรือในบานหน้าต่าง ตัวแก้ไขส่วนข้อมูลของการ์ด แทนที่ส่วนข้อมูลเริ่มต้นด้วยสัญพจน์ JSON สำหรับการ์ดของคุณ

    Tip

    การ์ดของคุณต้องมีปุ่มส่งอย่างน้อยหนึ่งปุ่ม เนื่องจากต้องเป็นการ์ดแบบโต้ตอบที่อนุญาตให้ผู้ใช้ส่งข้อมูลกลับไปยังเอเจนต์ หากไม่มีและมีวัตถุประสงค์เพื่อแสดงข้อมูลเท่านั้น คุณควรเพิ่มการ์ดที่ปรับเปลี่ยนได้ของคุณไปยังโหนดข้อความ

  5. เมื่อคุณออกแบบแรกเสร็จแล้ว ให้เลือก บันทึก และปิดแผงตัวออกแบบ ตัวอย่างการ์ดของคุณจะปรากฏบนโหนด Copilot Studio จะสร้างตัวแปรเอาต์พุตตามอินพุตที่ระบุไว้ในโค้ดโดยอัตโนมัติ

    Tip

    หากตัวแปรเอาต์พุตที่สร้างขึ้นสำหรับการ์ดของคุณไม่ถูกต้อง คุณสามารถอัปเดตรายการตัวแปรและชนิดด้วยตนเองได้โดยเลือก แก้ไข Schema ในแผง คุณสมบัติของโหนดการ์ดที่ปรับเปลี่ยนได้

    อะแดปทีฟการ์ดแบบโต้ตอบของคุณพร้อมใช้งานแล้ว เมื่อผู้ใช้เอเจนต์ของคุณเลือกปุ่มส่งบนการ์ด ตัวแปรเอาต์พุตจะถูกเติมด้วยข้อมูลที่ผู้ใช้ให้ไว้ในการโต้ตอบกับการ์ด

คุณสมบัติอื่นๆ

ใช้คุณสมบัติอื่น ๆ เพื่อควบคุมพฤติกรรมของโหนด Adaptive Card เช่น:

  • วิธีที่เอเจนต์ตอบสนองต่อการตอบกลับที่ไม่ถูกต้อง
  • หากสามารถขัดจังหวะได้

หากเอเจนต์กำลังรอการส่งจากการ์ดที่ปรับเปลี่ยนได้ และผู้ใช้ส่งข้อความแทน การตอบกลับนี้จะถือว่าไม่ถูกต้องเว้นแต่ข้อความจะทำให้เกิดการหยุดชะงัก ในกรณีนี้ คุณสมบัติต่อไปนี้จะกำหนดลักษณะการทำงาน

  • จำนวนครั้งที่การขอให้ตอบกลับอีกครั้ง: จำนวนครั้งที่เอเจนต์ของคุณพยายามได้รับคำตอบที่ถูกต้องจากการ์ด ค่าเริ่มต้นคือ ทําซ้ําสูงสุด 2 ครั้ง คุณยังสามารถเลือก ทำซ้ำหนึ่งครั้ง หรือ ไม่ทำซ้ำ สำหรับการลองใหม่แต่ละครั้ง การ์ดจะถูกส่งไปยังผู้ใช้อีกครั้ง

  • พร้อมท์ลองอีกครั้ง: ใช้คุณสมบัตินี้เพื่อกําหนดข้อความที่จะส่งเมื่อมีการลองใหม่ พร้อมกับการทําซ้ําของการ์ด เมื่อต้องการกําหนดข้อความลองใหม่ ให้เลือก กําหนดเอง แล้วใส่พร้อมท์ใหม่

  • อนุญาตให้สลับไปยังหัวข้ออื่น: หากเลือก (ค่าเริ่มต้น) ข้อความขาเข้าจากผู้ใช้เมื่อเอเจนต์กำลังรอการส่งการ์ดจะทำให้เกิดการหยุดชะงักและสลับไปยังหัวข้ออื่น ถ้ามีการสลับหัวข้อเกิดขึ้น การ์ดจะถูกส่งไปยังผู้ใช้อีกครั้งเมื่อหัวข้อที่ขัดจังหวะสิ้นสุดลง

ลักษณะการทํางานของปุ่มส่งสําหรับเอเจนต์ที่มีการ์ดติดต่อกัน

ตามการออกแบบ อะแดปทีฟการ์ดจะช่วยให้สามารถเลือกปุ่มส่งได้หลายครั้ง ถ้าตัวแทนมีอะแดปทีฟการ์ดติดต่อกัน และผู้ใช้เลือกปุ่มบนการ์ดก่อนหน้านี้ ผู้ใช้อาจพบลักษณะการทํางานที่ไม่คาดคิด

เพื่อแยกแยะการส่งข้อมูลจากการ์ดต่าง ๆ ให้ระบุข้อมูลระบุในแต่ละการดำเนินการ submit และตรวจสอบข้อมูลนั้นเมื่อประมวลผลการตอบกลับ ในไคลเอนต์แบบกําหนดเอง ให้จัดการการส่งซ้ําหรือการส่งที่ล้าสมัยแยกจากการระบุว่าเลือกการกระทําใด

ใช้ตัวระบุการส่งใน Action.Submit data

ถ้าตัวแทนของคุณส่งอะแดปทีฟการ์ดหลายใบในการสนทนา (ตัวอย่างเช่น การ์ดติดต่อกัน ลองใหม่ หรือหยุดชะงัก) ผู้ใช้อาจเลือก ส่ง บนการ์ดก่อนหน้า ใส่ตัวระบุในเพย์โหลดข้อมูลของแต่ละการดำเนินการ submit และตรวจสอบความถูกต้องเมื่อประมวลผลการตอบกลับ

ให้ใส่คำหรือวลีที่คุณกำลังค้นหาไว้ในเครื่องหมายคำพูด

{
  "type": "Action.Submit",
  "title": "Confirm",
  "data": {
    "actionSubmitId": "booking_confirm_card_v3_confirm"
  }
}

ตัวระบุแบบคงที่นี้ช่วยแยกแยะการกระทําในตัวอย่างนี้ มันไม่ได้แยกความแตกต่างของแต่ละอินสแตนซ์ของการ์ดที่ถูกเรนเดอร์ได้อย่างชัดเจน หรือป้องกันการส่งซ้ำโดยอัตโนมัติ

เคล็ดลับการใช้งาน เนื้อหาการคุยผ่านเว็บ UX เพื่อหลีกเลี่ยงการคลิกที่ไม่ทันสมัย

บางโปรแกรมแชทยังคงให้การ์ดเก่าคลิกได้หลังจากที่ผู้ใช้ส่งการ์ดใหม่แล้ว หากคุณสร้างประสบการณ์ เนื้อหาการคุยผ่านเว็บ แบบกําหนดเอง ลองพิจารณาทําให้การ์ดที่ส่งมาเป็นแบบอ่านอย่างเดียว หรืออัปเดตการ์ดเก่าเพื่อลดการส่งซ้ําหรือการส่งที่ล้าสมัยโดยไม่ตั้งใจ

ใช้อินเทอร์เฟซการจัดการการกระทําและการส่งกิจกรรมที่ไคลเอนต์ที่คุณเลือกรองรับ แยกการจัดการการส่งออกจากการกระทำอื่น ๆ ของการ์ด และให้วิธีลองใหม่เมื่อส่งไม่สำเร็จ การทำให้การ์ดเป็นแบบอ่านอย่างเดียวเป็นมาตรการด้านการใช้งานฝั่งไคลเอนต์ ไม่ใช่การทดแทนการตรวจสอบการส่งข้อมูลในเอเจนต์หรือบริการของคุณ

ใช้ Power Fx เพื่อทำให้การ์ดของคุณปรับเปลี่ยนตาม

คุณสามารถใช้สูตร Power Fx เพื่อรวมข้อมูลแบบไดนามิกบนการ์ดของคุณโดยอ้างอิงตัวแปรจากหัวข้อหรือเอเจนต์ของคุณ

  1. เลือกจุดสามจุด (...) ของโหนด แล้วเลือก คุณสมบัติ

  2. ในแผงคุณสมบัติของโหนดอะแดปทีฟการ์ด ให้สลับไปยังสูตร การเลือก สูตร จะแปลงการแสดง JSON ของการ์ดของคุณเป็นสูตร Power Fx โดยอัตโนมัติ

    ภาพหน้าจอของตัวเลือกในการสลับไปเป็นสูตร Power Fx แทน JSON บนแผงคุณสมบัติโหนดของการ์ดที่ปรับเปลี่ยนได้

    ตัวอย่างเช่น เริ่มต้นด้วยตัวอักษร JSON ต่อไปนี้สำหรับการ์ด:

    {
      "$schema": "http://adaptivecards.microsoft.com/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.5",
      "body": [{
          "type": "ColumnSet",
          "columns": [{
              "type": "Column",
              "width": 2,
              "items": [{
                  "type": "TextBlock",
                  "text": "Tell us about yourself",
                  "weight": "Bolder",
                  "size": "Medium",
                  "wrap": true,
                  "style": "heading"
                }, {
                  "type": "TextBlock",
                  "text": "Enter your name to continue with your booking.",
                  "isSubtle": true,
                  "wrap": true
                }, {
                  "type": "Input.Text",
                  "id": "myName",
                  "label": "Your name",
                  "isRequired": true,
                  "errorMessage": "Please enter your name."
                }
              ]
            }
          ]
        }
      ],
      "actions": [{
          "type": "Action.Submit",
          "title": "Submit",
          "data": {
            "actionSubmitId": "trip_details_submit"
          }
        }
      ]
    }
    

    นี่คือสูตรผลลัพธ์ของ Power Fx ที่ใช้ตัวแปรสองรายการ Topic.Title และ Topic.Subtitle แทนข้อความที่ฮาร์ดโค้ดจากสัญพจน์ JSON (ตัวอย่างนี้ถือว่าตัวแปรมีการกำหนดไว้ในหัวข้อของคุณ)

    {
      '$schema': "http://adaptivecards.microsoft.com/schemas/adaptive-card.json",
      type: "AdaptiveCard",
      version: "1.5",
      body: [
        {
          type: "ColumnSet",
          columns: [
            {
              type: "Column",
              width: 2,
              items: [
                {
                  type: "TextBlock",
                  text: Topic.Title,
                  weight: "Bolder",
                  size: "Medium",
                  wrap: true,
                  style: "heading"
                },
                {
                  type: "TextBlock",
                  text: Topic.Subtitle,
                  isSubtle: true,
                  wrap: true
                },
                {
                  type: "Input.Text",
                  id: "myName",
                  label: "Your name",
                  isRequired: true,
                  errorMessage: "Please enter your name."
                }
              ]
            }
          ]
        }
      ],
      actions: [
        {
          type: "Action.Submit",
          title: "Submit",
          data: {
            actionSubmitId: "trip_details_submit"
          }
        }
      ]
    }
    

สําคัญ

เมื่อคุณเริ่มแก้ไขในแผงสูตร คุณไม่สามารถกลับไปใช้โค้ด JSON เดิมได้ หากต้องการอนุญาตให้มีการออกแบบและการเปลี่ยนแปลงซ้ํา ให้บันทึกสําเนาของ JSON ต้นฉบับในบันทึกย่อของคุณเองหรือเป็นข้อคิดเห็นในโหนด ข้อควรระวังนี้ช่วยให้คุณสามารถย้อนกลับการเปลี่ยนแปลงได้ถ้าจําเป็น