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

การสรุปเนื้อหาในฐานะการบีบอัด

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

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

การบีบอัดเป็นหน่วยความจำ

เมื่อการสนทนายาวขึ้น ให้แทนที่รอบสนทนาเก่าด้วยบทสรุปสั้น ๆ คุณกำลังแลก การ recall ที่ตรงตัวกับพื้นที่บริบท

บทสรุปจะเก็บใจความสำคัญไว้ (ข้อเท็จจริง การตัดสินใจ รายการค้างดำเนินการ) แต่ข้อความตามต้นฉบับจะหายไป

เมื่อใดควรสรุป

เริ่มการสรุปเมื่อ:

  • จำนวนโทเค็นทั้งหมด > ค่าขีดจำกัด (เช่น 8k)
  • จำนวนรอบสนทนา > N (เช่น 20)
  • ผู้ใช้เริ่มหัวข้อใหม่

สรุปรอบสนทนาที่เก่ากว่า

เก็บรอบสนทนาล่าสุดไว้ตามต้นฉบับ และสรุปเฉพาะส่วนที่ถูกตัดออก:

def compact(messages, keep_recent=10):
    system = messages[0]
    old = messages[1:-keep_recent]
    recent = messages[-keep_recent:]
    if not old:
        return messages
    summary = summarise(old)
    return [
        system,
        {'role': 'system', 'content': f'Earlier conversation summary:\n{summary}'},
        *recent
    ]

พรอมป์ต์สำหรับการสรุป

ใช้การเรียกใช้โมเดลราคาประหยัดแยกต่างหากเพื่อสร้างบทสรุป:

def summarise(messages):
    text = '\n'.join(f'{m["role"]}: {m["content"]}' for m in messages)
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Summarise this conversation in 5 bullet points. Preserve facts, decisions, and pending TODOs.'},
            {'role': 'user', 'content': text}
        ],
        max_tokens=300,
    )
    return response.choices[0].message.content

บทสรุปต่อเนื่อง

ดูแลบทสรุปเดียวที่ขยายเพิ่มขึ้นเรื่อย ๆ แทนการเริ่มสรุปใหม่ทั้งหมดในแต่ละครั้ง:

running_summary = ''

def extend_summary(new_messages):
    global running_summary
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Extend the existing summary with the new turns. Keep it under 200 words.'},
            {'role': 'user', 'content': f'Existing summary:\n{running_summary}\n\nNew turns:\n{format(new_messages)}'}
        ],
        max_tokens=500,
    )
    running_summary = response.choices[0].message.content

บทสรุปแบบมีโครงสร้าง

บังคับให้บทสรุปดึงข้อมูลในช่องข้อมูลที่ระบุ:

summary_schema = {
    'topics_discussed': '...',
    'user_facts': {'name': '...', 'preferences': '...'},
    'open_questions': ['...'],
    'decisions_made': ['...']
}
# Use json_object response_format to enforce.
import json
print(json.dumps(summary_schema, indent=2))

บทสรุปแบบลำดับชั้น

สำหรับประวัติที่ยาวมาก:

  • บทสรุปทุก 100 รอบสนทนา (ระดับกลาง)
  • บทสรุปทุก 1000 รอบสนทนา (ระดับสูง)
  • บทสรุปตลอดอายุการใช้งาน (ระดับสูงสุด)

แทรกเฉพาะระดับที่เหมาะสมลงในบริบท

รายละเอียดสูญหาย

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

หากต้องการ recall แบบคำต่อคำ คุณต้องใช้บริบทที่ใหญ่ขึ้นหรือคลังข้อมูลสำหรับค้นหาเวกเตอร์

ใช้ทั้งบทสรุปและคลังเวกเตอร์

ข้อดีของทั้งสองแนวทาง:

  1. สรุปรอบสนทนาเก่าลงในข้อความระบบ
  2. ALSO แปลงแต่ละรอบสนทนาเป็นเวกเตอร์แล้วเก็บไว้ในคลังเวกเตอร์
  3. หากผู้ใช้ถามรายละเอียด ให้ค้นคืนข้อความตามต้นฉบับจากคลังเวกเตอร์

คุณภาพของบทสรุปมีความสำคัญ

บทสรุปคุณภาพแย่ยิ่งไม่มีบทสรุปเสียอีก ใช้โมเดลที่ราคาประหยัดแต่มีความสามารถ (gpt-4o-mini, haiku) ไม่ใช่ระดับที่ถูกที่สุด สำหรับการเรียกใช้เพื่อสรุป

การอัปเดตบทสรุปมีค่าใช้จ่ายสูง

การสรุปการสนทนา 8000 โทเค็นเป็นการเรียกใช้ LLM จริง ใช้เวลา 1-2 วินาทีและมีค่าใช้จ่าย 0.5 เซนต์ ควรทำแบบไม่พร้อมกันระหว่างรอบสนทนา แทนที่จะทำบนเส้นทางการทำงานหลัก

ข้อแลกเปลี่ยนของบทสรุป

ข้อแลกเปลี่ยนหลักเมื่อใช้การสรุปเป็นหน่วยความจำคืออะไร

ทบทวน

การสรุปเป็นวิธีราคาประหยัดในการขยายหน่วยความจำ ผสานกับการค้นคืนเวกเตอร์เพื่อ recall คำพูดที่ตรงตัว

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

บทเรียน “การสรุปเนื้อหาในฐานะการบีบอัด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสรุปเนื้อหาในฐานะการบีบอัด”

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

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

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

บทเรียน “การสรุปเนื้อหาในฐานะการบีบอัด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. หน่วยความจำระยะสั้นในหน้าต่างบริบท
  2. เหตุใดบริบทยาวจึงขยายขนาดไม่ได้
  3. การสรุปเนื้อหาในฐานะการบีบอัด
  4. คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)
← กลับไปที่ AI Agents