Anda dapat memeriksa pemisah yang digunakan untuk bahasa tertentu dengan menggunakan metode get_separators_for_language dari kelas RecursiveCharacterTextSplitter.
Dalam contoh ini, nilai enum Language.PYTHON diteruskan sebagai argumen untuk memeriksa pemisah yang digunakan untuk bahasa Python.
# Anda dapat memeriksa pemisah yang digunakan untuk bahasa tertentu.RecursiveCharacterTextSplitter.get_separators_for_language(Language.PYTHON)
markdown_text ="""# 🦜️🔗 LangChain⚡ Build ultra-fast applications leveraging LLM ⚡## Quick Installation```bashpip install langchainIni adalah proyek open-source di bidang yang berkembang pesat. Mohon perhatiannya dan dukungannya. 🙏"""
md_splitter = RecursiveCharacterTextSplitter.from_language(# Membuat pemisah teks menggunakan bahasa Markdown language=Language.MARKDOWN,# Mengatur ukuran chunk menjadi 60 chunk_size=60,# Mengatur tidak ada tumpang tindih antara chunk chunk_overlap=0,)# Membagi teks Markdown dan membuat dokumenmd_docs = md_splitter.create_documents([markdown_text])# Cetak dokumen yang dihasilkanmd_docs
[Document(page_content='# 🦜️🔗 LangChain'), Document(page_content='⚡ Membangun aplikasi super cepat menggunakan LLM ⚡'), Document(page_content='## Instalasi Cepat'), Document(page_content='```bash\npip install langchain'), Document(page_content='Ini adalah proyek open-source di bidang yang berkembang'), Document(page_content='pesat. Mohon perhatiannya dan dukungannya. 🙏')]
Latex
LaTeX adalah bahasa markup yang digunakan untuk pembuatan dokumen, yang banyak digunakan untuk mengekspresikan simbol dan persamaan matematika.
Berikut adalah contoh teks LaTeX.
latex_text =r"""\documentclass{article}\begin{document}\maketitle\section{Introduction}% LLM adalah jenis model pembelajaran mesin yang dilatih pada sejumlah besar data teks dan dapat menghasilkan bahasa yang mirip dengan manusia.
% Dalam beberapa tahun terakhir, LLM telah mencapai kemajuan yang signifikan dalam berbagai tugas pemrosesan bahasa alami, termasuk penerjemahan bahasa, pembuatan teks, dan analisis sentimen.
\subsection{History of LLMs}% LLM awal dikembangkan pada 1980-an dan 1990-an, tetapi terbatas oleh jumlah data yang dapat mereka proses dan daya komputasi yang tersedia saat itu.
% Namun, kemajuan dalam perangkat keras dan perangkat lunak selama dekade terakhir telah memungkinkan LLM untuk dilatih pada set data besar, yang mengarah pada peningkatan kinerja yang signifikan.
\subsection{Applications of LLMs}% LLM memiliki banyak aplikasi di berbagai industri, termasuk chatbot, pembuatan konten, dan asisten virtual.% Mereka juga dapat digunakan di dunia akademis untuk penelitian dalam linguistik, psikologi, dan linguistik komputasional.
\end{document}"""
Bagi teks dan cetak hasilnya.
latex_splitter = RecursiveCharacterTextSplitter.from_language(# Memecah teks menggunakan bahasa LaTeX. language=Language.LATEX,# Mengatur ukuran setiap chunk menjadi 60 karakter. chunk_size=60,# Mengatur jumlah karakter yang tumpang tindih antar chunk menjadi 0. chunk_overlap=0,)# Memecah latex_text dan membuat daftar dokumen.latex_docs = latex_splitter.create_documents([latex_text])# Cetak daftar dokumen yang dihasilkan.latex_docs
[Document(page_content='\\documentclass{article}\n\n\\begin{document}\n\n\\maketitle'), Document(page_content='\\section{Introduction}\n% LLM adalah jenis model'), Document(page_content='pembelajaran mesin yang dilatih pada sejumlah besar data'), Document(page_content='teks dan dapat menghasilkan bahasa yang mirip dengan'), Document(page_content='manusia.\n% Dalam beberapa tahun terakhir, LLM telah'), Document(page_content='mencapai kemajuan yang signifikan dalam berbagai tugas'), Document(page_content='pemrosesan bahasa alami, termasuk penerjemahan bahasa,'), Document(page_content='pembuatan teks, dan analisis sentimen.'), Document(page_content='\\subsection{History of LLMs}\n% LLM awal dikembangkan pada'), Document(page_content='1980-an dan 1990-an, tetapi terbatas oleh jumlah data yang'), Document(page_content='dapat mereka proses dan daya komputasi yang tersedia saat'), Document(page_content='itu.\n% Namun, kemajuan dalam perangkat keras dan perangkat'), Document(page_content='lunak selama dekade terakhir telah memungkinkan LLM untuk'), Document(page_content='dilatih pada set data besar, yang mengarah pada peningkatan'), Document(page_content='kinerja yang signifikan.'), Document(page_content='\\subsection{Applications of LLMs}\n% LLM memiliki banyak'), Document(page_content='aplikasi di berbagai industri, termasuk chatbot, pembuatan'), Document(page_content='konten, dan asisten virtual.\n% Mereka juga dapat digunakan'), Document(page_content='di dunia akademis untuk penelitian dalam linguistik,'), Document(page_content='psikologi, dan linguistik komputasional.\n\n\\end{document}')]
HTML
Berikut adalah contoh penggunaan text splitter untuk HTML.
html_text ="""<!DOCTYPE html><html> <head> <title>🦜️🔗 LangChain</title> <style> body { font-family: Arial, sans-serif; } h1 { color: darkblue; } </style> </head> <body> <div> <h1>🦜️🔗 LangChain</h1> <p>⚡ Membangun aplikasi dengan LLM melalui komposabilitas ⚡</p> </div> <div> Sebagai proyek open-source di bidang yang berkembang pesat, kami sangat terbuka untuk kontribusi. </div> </body></html>"""
Bagi teks dan cetak hasilnya
html_splitter = RecursiveCharacterTextSplitter.from_language(# Membuat pemisah teks menggunakan bahasa HTML language=Language.HTML,# Mengatur ukuran chunk menjadi 60 chunk_size=60,# Memastikan tidak ada tumpang tindih antara chunk chunk_overlap=0,)# Membagi teks HTML yang diberikan dan membuat dokumenhtml_docs = html_splitter.create_documents([html_text])# Cetak dokumen yang dihasilkanhtml_docs
[Document(page_content='<!DOCTYPE html>\n<html>'), Document(page_content='<head>\n <title>🦜️🔗 LangChain</title>'), Document(page_content='<style>\n body {\n font-family: Aria'), Document(page_content='l, sans-serif; \n }\n h1 {'), Document(page_content='color: darkblue;\n }\n </style>\n </he'), Document(page_content='ad>'), Document(page_content='<body>'), Document(page_content='<div>\n <h1>🦜️🔗 LangChain</h1>'), Document(page_content='<p>⚡ Membangun aplikasi dengan LLM melalui komposabilitas ⚡<'), Document(page_content='/p> \n </div>'), Document(page_content='<div>\n Sebagai proyek open-source di bidang yang'), Document(page_content='berkembang pesat, kami sangat terbuka untuk kontribusi.'), Document(page_content='</div>\n </body>\n</html>')]
Solidity
Berikut adalah contoh penggunaan text splitter untuk Solidity:
Kode Solidity dalam bentuk string.
SOL_CODE
Simpan dalam sebuah variable
RecursiveCharacterTextSplitter
Memecah kode Solidity menjadi unit chunk menggunakan
sol_splitter
Membuat splitter
language
Atur parameter.
Language.SOL
Tentukan bahasa Solidity dengan mengatur parameter.
chunk_size
Atur ukuran chunk menjadi 128 untuk menentukan ukuran maksimum setiap chunk
chunk_overlap
Atur overlap menjadi 0 untuk menghilangkan duplikasi antara chunk
sol_splitter.create_documents()
Menggunakan metode
SOL_CODE
Bagi menjadi unit chunk, dan simpan chunk yang telah dibagi.
sol_docs
Simpan dalam sebuah variabel.
sol_docs
Cetak variabel tersebut untuk memeriksa chunk kode Solidity yang telah dibagi.
SOL_CODE ="""pragma solidity ^0.8.20;contract HelloWorld { function add(uint a, uint b) pure public returns(uint) { return a + b; }}"""# 분할하고 결과를 출력합니다.sol_splitter = RecursiveCharacterTextSplitter.from_language( language=Language.SOL, chunk_size=128, chunk_overlap=0)sol_docs = sol_splitter.create_documents([SOL_CODE])sol_docs
[Document(page_content='pragma solidity ^0.8.20;'), Document(page_content='contract HelloWorld { \n function add(uint a, uint b) pure public returns(uint) {\n return a + b;\n }\n}')]
C
Berikut adalah contoh penggunaan text splitter untuk C#:
C_CODE ="""using System;class Program{ static void Main() { Console.WriteLine("Enter a number (1-5):"); int input = Convert.ToInt32(Console.ReadLine()); for (int i = 1; i <= input; i++) { if (i % 2 == 0) { Console.WriteLine($"{i} is even."); } else { Console.WriteLine($"{i} is odd."); } } Console.WriteLine("Goodbye!"); }}"""# Membagi kode dan mencetak hasilnya.c_splitter = RecursiveCharacterTextSplitter.from_language( language=Language.CSHARP, chunk_size=128, chunk_overlap=0)c_docs = c_splitter.create_documents([C_CODE])c_docs
[Document(page_content='using System;'), Document(page_content='class Program\n{\n static void Main()\n {\n Console.WriteLine("Enter a number (1-5):");'), Document(page_content='int input = Convert.ToInt32(Console.ReadLine());\n for (int i = 1; i <= input; i++)\n {'), Document(page_content='if (i % 2 == 0)\n {\n Console.WriteLine($"{i} is even.");\n }\n else'), Document(page_content='{\n Console.WriteLine($"{i} is odd.");\n }\n }\n Console.WriteLine("Goodbye!");'), Document(page_content='}\n}')]