實用工具

RAG 文字切塊工具

完全依照 LangChain 的 RecursiveCharacterTextSplitter 把文件切成有重疊的區塊,而且看得懂中文標點。

瀏覽器本機執行AI 開發工具14.6萬
免費

輸入

0 B

結果

結果會顯示在這裡。

文件怎麼切,決定了 RAG 系統能檢索到什麼:在句子中間斷開、或混雜兩個主題的區塊,無論嵌入模型多好,搜尋結果都不會理想。這個工具讓你在建立索引之前先看到切出來的區塊。它是 LangChain 的 RecursiveCharacterTextSplitter(langchain-ai/langchain,MIT)的逐行移植版,這是大多數 RAG 教學與流程的起點;我們的測試會確認,無論以字元還是 Token 計算長度,它在英文、中文和中英混合文字上切出的區塊都與 Python 函式庫完全相同。

它是怎麼運作的

  • 文字會在其中出現的第一個分隔符處切開——依序是空行、換行,再來是句尾、子句標點和空格——仍然太長的片段會再用下一級的分隔符切分。
  • 中文的句子與子句標點(。!?;,)都在分隔符清單上,而且每個分隔符都留在它所結束的那一段末尾,所以區塊會以句號結尾,而不是讓下一個區塊以句號開頭。
  • 接著把片段合併到接近區塊大小,每個新區塊開頭會帶上前一個區塊結尾中能放進重疊範圍的部分,與 LangChain 的做法一致。
  • 長度可以用 Unicode 碼位計算(與 Python 的 len() 相同),也可以用 cl100k_base Token 計算;輸出為 JSON,包含每個區塊的索引、起始位移、長度與文字。

你的資料去了哪裡

哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。

本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。

它要花多少

本工具完全免費,不需要登入,也不消耗點數。

常見問題

我的 Python 流程會得到相同的區塊嗎?
會,只要設定相同:RecursiveCharacterTextSplitter(chunk_size=…, chunk_overlap=…, separators=["\n\n", "\n", "。", "!", "?", ". ", "! ", "? ", ";", "; ", ",", ", ", " ", ""], keep_separator="end")。Token 模式則要再加上以 tiktoken 的 cl100k_base 計數的 length_function。LangChain 本身的預設分隔符會忽略中文標點,這就是中文文字用預設值切得很糟的原因。
區塊大小和重疊該設多少?
常見的起點是 500–1,000 個字元或 200–400 個 Token,重疊 10–20%。區塊越小,比對越精準,但每次命中帶回的上下文越少;區塊越大則相反。用你的真實文件在這裡試試,並讀一讀切出來的區塊:每一塊都應該能單獨看得懂。
為什麼有些區塊的重疊比預期的短?
重疊是上限,不是保證。切分器只會帶過完整的片段,而且會從前面丟掉片段,直到下一個片段能放進區塊大小為止,所以一個很長的句子可能讓重疊完全沒有空間。LangChain 的行為也是如此。
支援 Markdown 標題切分或語意切塊嗎?
不支援。它做的是遞迴字元切分,也就是大多數流程預設使用的方式。依標題切分和以嵌入為基礎的語意切分需要不同的邏輯,語意切分還需要嵌入模型;在這裡,空行和標題本來就是最強的切分邊界。

背後的開源專案

本工具是獨立實作,並未打包第三方函式庫。langchain-ai/langchain(MIT)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。

langchain-ai/langchain

也常被稱作

  • rag 切塊
  • 文字切塊工具
  • chunk size overlap
  • recursivecharactertextsplitter
  • langchain 文字分割
  • 文件切塊