實用工具
輸入
結果
結果會顯示在這裡。文件怎麼切,決定了 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 文字分割
- 文件切塊