การสรุปเนื้อหาในฐานะการบีบอัด
แทนที่ช่วงการสนทนาเก่าด้วยบทสรุปสะสมเป็นระยะ โดยแลกความสามารถในการเรียกคืนรายละเอียดที่แน่นอนกับพื้นที่ในหน้าต่างบริบท
การสรุปเนื้อหาในฐานะการบีบอัด เป็นบทเรียน 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 แบบคำต่อคำ คุณต้องใช้บริบทที่ใหญ่ขึ้นหรือคลังข้อมูลสำหรับค้นหาเวกเตอร์
ใช้ทั้งบทสรุปและคลังเวกเตอร์
ข้อดีของทั้งสองแนวทาง:
- สรุปรอบสนทนาเก่าลงในข้อความระบบ
- ALSO แปลงแต่ละรอบสนทนาเป็นเวกเตอร์แล้วเก็บไว้ในคลังเวกเตอร์
- หากผู้ใช้ถามรายละเอียด ให้ค้นคืนข้อความตามต้นฉบับจากคลังเวกเตอร์
คุณภาพของบทสรุปมีความสำคัญ
บทสรุปคุณภาพแย่ยิ่งไม่มีบทสรุปเสียอีก ใช้โมเดลที่ราคาประหยัดแต่มีความสามารถ (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หน่วยความจำระยะสั้นในหน้าต่างบริบท
- เหตุใดบริบทยาวจึงขยายขนาดไม่ได้
- การสรุปเนื้อหาในฐานะการบีบอัด
- คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)