Pemecahan berdasarkan token
Memecah dokumen menggunakan RecursiveCharacterTextSplitter atau CharacterTextSplitter memang praktis dan dalam beberapa kasus dapat memberikan kinerja yang baik, tetapi ada satu kelemahan: keduanya memecah berdasarkan karakter sebagai unit dasar, bukan token yang sebenarnya diproses oleh model.
Pada latihan ini, Anda akan memecah dokumen menggunakan pemisah teks berbasis token, sehingga Anda dapat memeriksa jumlah token di setiap potongan untuk memastikan jumlahnya tidak melebihi jendela konteks model. Sebuah dokumen PDF telah dimuat sebagai document.
tiktoken dan semua kelas yang diperlukan telah diimpor untuk Anda.
Latihan ini adalah bagian dari kursus
Retrieval Augmented Generation (RAG) dengan LangChain
Petunjuk latihan
- Dapatkan encoding untuk
gpt-4o-minidaritiktokensehingga Anda dapat memeriksa jumlah token di setiap potongan. - Buat pemisah teks untuk membagi berdasarkan jumlah token menggunakan
encodingGPT-4o-Mini. - Pecah PDF yang tersimpan dalam
documentmenjadi potongan-potongan menggunakantoken_splitter.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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")