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)
Python
Berikut adalah contoh penggunaan RecursiveCharacterTextSplitter:
Membagi kode Python menjadi unit dokumen menggunakan RecursiveCharacterTextSplitter.
Tentukan Language.PYTHON untuk parameter language untuk menggunakan bahasa Python.
Atur chunk_size menjadi 50 untuk membatasi ukuran maksimum setiap dokumen.
Atur chunk_overlap menjadi 0 untuk mencegah tumpang tindih antar dokumen.
Buat Document. Document yang dihasilkan akan dikembalikan dalam bentuk daftar (list).
JS
Berikut adalah contoh penggunaan text splitter untuk JS.
TS
Berikut adalah contoh penggunaan text splitter untuk TS.
Markdown
Latex
LaTeX adalah bahasa markup yang digunakan untuk pembuatan dokumen, yang banyak digunakan untuk mengekspresikan simbol dan persamaan matematika.
Berikut adalah contoh teks LaTeX.
Bagi teks dan cetak hasilnya.
HTML
Berikut adalah contoh penggunaan text splitter untuk HTML.
Bagi teks dan cetak hasilnya
Solidity
Berikut adalah contoh penggunaan text splitter untuk Solidity:
Kode Solidity dalam bentuk string.
Simpan dalam sebuah variable
Memecah kode Solidity menjadi unit chunk menggunakan
Membuat splitter
Atur parameter.
Tentukan bahasa Solidity dengan mengatur parameter.
Atur ukuran chunk menjadi 128 untuk menentukan ukuran maksimum setiap chunk
Atur overlap menjadi 0 untuk menghilangkan duplikasi antara chunk
Menggunakan metode
Bagi menjadi unit chunk, dan simpan chunk yang telah dibagi.
Simpan dalam sebuah variabel.
Cetak variabel tersebut untuk memeriksa chunk kode Solidity yang telah dibagi.
C
Berikut adalah contoh penggunaan text splitter untuk C#:
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_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}
"""
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_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>
"""
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>')]
SOL_CODE
RecursiveCharacterTextSplitter
sol_splitter
language
Language.SOL
chunk_size
chunk_overlap
sol_splitter.create_documents()
SOL_CODE
sol_docs
sol_docs
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_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}')]