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 merupakan bagian dari kursus
Retrieval Augmented Generation (RAG) dengan LangChain
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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")