AnythingLLM 結合開源 Embedder 提升RAG的繁體中文能力
剛好上週看到了這篇文章:
AnythingLLM 結合開源 Embedder 提升RAG的繁體中文能力
剛好上週看到了這篇文章:
文中測試了許多的開源及閉源 embedder 對於繁體中文的能力進行評估,並給出了建議。

剛好最近的工作中,已經測試過各種中文 embedding 模型(簡體/多語系),這些 embedder 剛出來時就會發新聞說自己是目前中文最強 embedding,或者說用多少模型大小就達到 SOTA 水準
其實每個模型在自己實際體驗上差異很大,而且繁體與簡體的特性也不太相同,甚至在不同的 chunk size 跟 chunk overlap 能達到的成效也都不太相同,只能仰賴自己實作跟實驗使用 RAG 情境才能知道。
另外,真心覺得評測文章內容算是非常有幫助的,蠻多評分等級的部分跟我自己體感上是差不多的。
由於 上一篇文章 介紹了容易使用的 AnythingLLM + Ollama,那就繼續介紹怎麼在 AnythingLLM 上更換 embedding 模型吧
Embedding 要怎麼更改?
1. Ollama 內建(也可以用不同平台)

由於 Ollama 支援 embedding 模型,可以透過 Ollama 下載別人上傳的 embedding 模型即可,如下方的範例指令下載了jina-embedding
ollama pull cwchang/jina-embeddings-v2-base-zh:q8_0
就直接可以在 ollama 選單中找到並使用囉~
2. 自行撰寫 API
開頭的評測文章中,讓我對微軟的 intfloat/multilingual-e5-large 很感興趣,另外許多歐洲國家的開發者使用 RAG 應用時,也都建議使用 multilingual-e5-large,儘管模型本身 chunk size 最大只支援512,但是其實也夠用了。
但在 Ollama 上會發現找不到 multilingual-e5-large 模型,甚至也有 issue 在討論這個模型 (主因是不支援XLMRobertaModel),最簡單的方式就是自己寫囉。
AnythingLLM 除了提供的各種 Embedder 的平台,其實還提供了 Generic OpenAI 的選項,讓你自行客製化成類似 OpenAI 的服務,其實就能夠使用了。

Generic OpenAI 的 API 測試
透過 huggingface space 測試 API 可以像下方這樣寫(如果 sleep 就要等 server 重啟囉)
import requests
import json
url = "https://chienweichang-multilingual-e5-large.hf.space/v1/embeddings"
# url = "http://172.17.0.1:8080/v1/embeddings" # 本地端架好後, 就能透過此url連到
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer test123"
}
data = {
"input": [
"The quick brown fox jumps over the lazy dog.",
"I love programming in Python."
],
"model": "intfloat/multilingual-e5-large"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
embeddings = response.json()
print(json.dumps(embeddings, indent=2))

** Space上面的速度其實很慢,但是還是可以測試一下效果
本地端架設
要執行速度快當然還是架在本地端囉
- 本範例是用 docker-compose 架設
透過 git 取得已經寫好的專案
git clone https://github.com/ammosu/e5-embedding-api.git
cd e5-embedding-api
用 docker-compose 啟動
docker-compose up -d --build
- 執行時間會比較久(含 docker container 啟動後會下載模型檔案, 可能需要超過 5 分鐘)

測試結果
用相同的測試程式碼,修改 url 即可

本機端可以成功呼叫,會發現執行速度會比 Space 上快非常多
AnythingLLM 設定

接著就照原本的嵌入文本的作法來重新嵌入文件吧
測試
建立一個餵了許多紫微斗數的課程,變成了會算命的 RAG 機器人
採用下列相同參數 Chunk size = 512, Chunk overlap = 180, Similarity threshold ≥ 0.75
- 採用 ollama 上的 mofanke/acge_text_embedding

上面的 embedding 完全找不到參考文件,就會變成一般聊天而已。
- 採用 multilingual-e5-large

可以看引用文件,會發現其實蠻準確的,三個文件都有講到 離婚 關鍵字,加上語言模型的統整效果,看起來超像算命仙。
結論
如果照上面的流程來建立,可以成功架設 multilingual-e5-large 這個 embedder,也當然可以改成各種開源的嵌入模型囉。
可以自行嘗試跟 ollama 上 pull 下來的 embedding model 相互比較,通常會發現 multilingual-e5-large 比現有的開源 embedder 強蠻多的,不過整體應用還是需要跟實際的問答環境有關,也許會有不同的觀察結果。
메타데이터
- post_id
- 7745c36ea9d8
- slug
- anythingllm-結合開源-embedder-提升rag的繁體中文能力-7745c36ea9d8
- url
- https://medium.com/@pang2258/anythingllm-%E7%B5%90%E5%90%88%E9%96%8B%E6%BA%90-embedder-%E6%8F%90%E5%8D%87rag%E7%9A%84%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87%E8%83%BD%E5%8A%9B-7745c36ea9d8
- canonical_url
- https://medium.com/@pang2258/anythingllm-%E7%B5%90%E5%90%88%E9%96%8B%E6%BA%90-embedder-%E6%8F%90%E5%8D%87rag%E7%9A%84%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87%E8%83%BD%E5%8A%9B-7745c36ea9d8
- author_url
- https://medium.com/@pang2258
- status
- ok
- fetched_at
- 2026-07-23 04:50:05