0Pricing
AI Agents · บทเรียน

กลยุทธ์การแยกคำถามย่อย

สำหรับคำถามซับซ้อนที่ต้องค้นข้อมูลหลายทอด ให้แบ่งเป็นคำถามย่อย ตอบแต่ละข้อ แล้วสังเคราะห์เป็นคำตอบสุดท้าย

กลยุทธ์การแยกคำถามย่อย เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

เมื่อการค้นคืนชั้นเดียวล้มเหลว

คำถามบางข้อจำเป็นต้องค้นหาหลายครั้ง:

"เปรียบเทียบรายได้ของ Apple ในปี 2022 กับ Microsoft ในปี 2023"

การค้นหาด้วยความคล้ายคลึงเพียงครั้งเดียวจะค้นคืนข้อเท็จจริงทั้งสองไม่ได้ คุณต้องใช้คำค้นย่อย TWO คำค้น

การแยกคำถามย่อย

LlamaIndex SubQuestionQueryEngine แบ่งคำถามออกเป็นคำถามย่อย ตอบแต่ละคำถาม แล้วสังเคราะห์คำตอบ:

from llama_index.core.query_engine import SubQuestionQueryEngine
from llama_index.core.tools import QueryEngineTool, ToolMetadata

query_engine_tools = [
    QueryEngineTool(
        query_engine=apple_index.as_query_engine(),
        metadata=ToolMetadata(name='apple', description='Financial data for Apple Inc.')
    ),
    QueryEngineTool(
        query_engine=msft_index.as_query_engine(),
        metadata=ToolMetadata(name='microsoft', description='Financial data for Microsoft Corp.')
    )
]

engine = SubQuestionQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
response = engine.query('Compare 2022 revenue of Apple vs 2023 revenue of Microsoft')

วิธีการทำงาน

  1. LLM วิเคราะห์คำถาม
  2. LLM สร้างคำถามย่อยและมอบหมายแต่ละคำถามให้เครื่องมือหนึ่งรายการ
  3. ประมวลผลคำถามย่อยแต่ละข้อแบบขนานกัน
  4. LLM สังเคราะห์คำตอบสุดท้ายจากคำตอบของคำถามย่อย

การดูคำถามย่อย

คุณสามารถดูคำถามย่อยที่เครื่องมือสร้างขึ้นได้:

response = engine.query('Compare X and Y')
for sq in response.metadata.get('sub_qa', []):
    print(sq.sub_q.sub_question, '->', sq.answer)

เมื่อใดควรใช้คำถามย่อย

  • คำค้นเพื่อเปรียบเทียบ (X กับ Y)
  • การรวบรวมข้อมูลจากหลายแหล่ง
  • คำถามที่มีข้อเท็จจริงหลายประเด็นแยกจากกัน

เมื่อใดไม่ควรใช้

  • ถามตอบแบบง่าย — เพิ่มเวลาแฝงและค่าใช้จ่าย
  • บริบทจากเอกสารเดียว
  • งานที่การแยกคำถามไม่ได้เพิ่มประโยชน์

การกำหนดเส้นทางด้วย LLM

เครื่องมือคำถามย่อยทำงานร่วมกับ RouterQueryEngine เพื่อพิจารณาก่อนว่าควรค้นคืนจากชุดดัชนีใด:

from llama_index.core.query_engine import RouterQueryEngine

router = RouterQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
# Routes 'apple revenue' to apple index, 'msft margins' to msft, etc.

คำถามย่อยสำหรับเอเจนต์เขียนโค้ด

สำหรับเอเจนต์ที่เขียนโค้ด คำถามย่อยเป็นวิธีหนึ่งในการวางแผนขั้นตอน:

"สร้าง REST API" -> ย่อย: ออกแบบแบบจำลอง, ย่อย: เขียนตัวจัดการ CRUD, ย่อย: เพิ่มการยืนยันตัวตน

ผลกระทบด้านค่าใช้จ่าย

คำถามย่อยทำให้เกิดคำค้นย่อย N รายการแทนที่จะเป็น 1 รายการ แต่ละรายการต้องเรียก LLM และค้นคืนข้อมูล จึงต้องจัดสรรงบประมาณให้เหมาะสม โดยมีค่าใช้จ่ายสูงกว่าการค้นคืนชั้นเดียวประมาณ 3–4 เท่า

เปรียบเทียบกับ ReAct

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

การผสาน ReAct + เครื่องมือคำถามย่อย

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

การประเมินคุณภาพคำถามย่อย

ติดตามว่า LLM สร้างคำถามย่อยที่สมเหตุสมผลหรือไม่ การแยกคำถามที่ไม่ดีจะแก้ไขข้อผิดพลาดได้ยาก หากไม่ได้ตรวจสอบร่องรอยการทำงาน

กรณีใช้งานการแยกคำถาม

การแยกคำถามย่อยมีประโยชน์มากที่สุดกับคำถามประเภทใด?

ทบทวน

การแยกคำถามย่อยเปลี่ยนคำค้นซับซ้อนหนึ่งรายการให้เป็นคำค้นง่ายหลายรายการ โดยมีค่าใช้จ่ายสูงขึ้น แต่แม่นยำขึ้นมากสำหรับคำถามแบบเปรียบเทียบและคำถามที่ใช้ข้อมูลจากหลายแหล่ง

คำถามที่พบบ่อย

บทเรียน “กลยุทธ์การแยกคำถามย่อย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กลยุทธ์การแยกคำถามย่อย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กลยุทธ์การแยกคำถามย่อย”

สำหรับคำถามซับซ้อนที่ต้องค้นข้อมูลหลายทอด ให้แบ่งเป็นคำถามย่อย ตอบแต่ละข้อ แล้วสังเคราะห์เป็นคำตอบสุดท้าย คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

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

บทเรียน “กลยุทธ์การแยกคำถามย่อย” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวโหลดและตัวแยกวิเคราะห์เอกสาร
  2. ลำดับชั้นของดัชนี: เวกเตอร์ ต้นไม้ คำสำคัญ
  3. เครื่องมือสอบถามและการสังเคราะห์คำตอบ
  4. กลยุทธ์การแยกคำถามย่อย
← กลับไปที่ AI Agents