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
```bash
pip install langchain
Ini 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 dokumen
md_docs = md_splitter.create_documents([markdown_text])
# Cetak dokumen yang dihasilkan
md_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 dokumen
html_docs = html_splitter.create_documents([html_text])
# Cetak dokumen yang dihasilkan
html_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.
[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}')]