Tách theo token
Tách tài liệu bằng RecursiveCharacterTextSplitter hoặc CharacterTextSplitter khá tiện và đôi khi cho hiệu năng tốt, nhưng có một hạn chế: chúng tách theo ký tự làm đơn vị cơ bản, thay vì token — đơn vị mà mô hình xử lý.
Trong bài tập này, bạn sẽ tách tài liệu bằng một bộ tách văn bản theo token, để bạn có thể kiểm tra số lượng token trong mỗi đoạn và đảm bảo chúng không vượt quá cửa sổ ngữ cảnh của mô hình. Một tài liệu PDF đã được nạp vào biến document.
tiktoken và tất cả các lớp cần thiết đã được nhập sẵn cho bạn.
Bài tập này là một phần của khóa học
Retrieval Augmented Generation (RAG) với LangChain
Hướng dẫn bài tập
- Lấy encoding cho
gpt-4o-minitừtiktokenđể bạn có thể kiểm tra số token trong mỗi đoạn. - Tạo một bộ tách văn bản để tách dựa trên số token, sử dụng
encodingcủa GPT-4o-Mini. - Tách PDF trong
documentthành các đoạn bằngtoken_splitter.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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")