เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแบ่งข้อความตาม Token

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

ในแบบฝึกหัดนี้ จะได้แบ่งเอกสารโดยใช้ token text splitter เพื่อตรวจสอบจำนวน token ในแต่ละ chunk และมั่นใจว่าไม่เกิน context window ของโมเดล โดยได้โหลดเอกสาร PDF ไว้ในตัวแปร document แล้ว

ได้ import tiktoken และคลาสที่จำเป็นทั้งหมดไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Retrieval Augmented Generation (RAG) ด้วย LangChain

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ดึงค่า encoding สำหรับ gpt-4o-mini จาก tiktoken เพื่อใช้ตรวจสอบจำนวน token ในแต่ละ chunk
  • สร้าง text splitter สำหรับแบ่งข้อความตามจำนวน token โดยใช้ encoding ของ GPT-4o-Mini
  • แบ่งเอกสาร PDF ที่เก็บอยู่ในตัวแปร document ออกเป็น chunk โดยใช้ token_splitter

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Get the encoding for gpt-4o-mini
encoding = ____

# Create a token text splitter
token_splitter = ____(encoding_name=____, chunk_size=100, chunk_overlap=10)

# Split the PDF into chunks
chunks = ____

for i, chunk in enumerate(chunks[:3]):
    print(f"Chunk {i+1}:\nNo. tokens: {len(encoding.encode(chunk.page_content))}\n{chunk}\n")
แก้ไขและรันโค้ด