作者galaxy4552 (無聞)
看板Soft_Job
標題[心得] 我做了一個輕量語義搜尋引擎
時間Wed Nov 19 09:00:56 2025
PipOwl:可嵌入任何 Python 專案的輕量語義搜尋引擎(核心約 10KB)
PipOwl 是從我大型語義專案中抽離出來的
最安全、最不敏感、最容易被整合的一層。
它的定位是:
輕量語義搜尋引擎(Mini Semantic Engine)
純 Python 實作,不含 C/C++ 原生模組
額外依賴皆為常見 NLP 套件(numpy / sentence-transformers)
可用於 CLI / API / Chatbot / IME本地即時執行(接近輸入法候選速度)
適合做:語句相似度、意圖比對、快速原型開發
安裝方式:pip install pipowl
GitHub:
https://github.com/galaxy4552/Pipowl
PyPI:pip install pipowl
如果你對中文語義系統、向量表示、或極簡的 semantic engine 有興趣,歡迎一起討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.167.188 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1763514061.A.5E0.html
※ 編輯: galaxy4552 (114.136.167.188 臺灣), 11/19/2025 09:09:45
1F:推 oopFoo: all-MiniLM-L6-v2?有試過EmbeddingGemma-300m?現在中文那 11/19 09:33
2F:→ oopFoo: 個embedding model是最推薦的? 11/19 09:34
3F:推 lchcoding: 上次-新酷鷹的事,有沒有後續...? 11/19 10:36
4F:→ galaxy4552: 我比較偏向做語義引擎 / pipeline 的研究 11/19 10:40
5F:→ galaxy4552: 所以沒有大量 benchmark 各種模型。 11/19 10:41
6F:→ galaxy4552: PipOwl 把 embedding layer 抽掉,想塞哪顆MODEL都行 11/19 10:41
7F:→ galaxy4552: 回lchcoding 謝謝你記得 這個就是後續 目前還在開發 11/19 10:42
8F:→ lchcoding: 理解,晚上看 11/19 10:59
9F:→ DrTech: 依賴sentence-transformers,強調核心 10KB有意義嗎。 直 11/19 19:16
10F:→ DrTech: 接用sentence-transformers不就好了。 11/19 19:16
11F:→ DrTech: 認真看了一下,就是sentence-transformers再包一層,有必 11/19 19:18
12F:→ DrTech: 要嗎。 11/19 19:18
13F:→ DrTech: 預設模型,還是中文能力特別差的all-MiniLM-L6-v2,真的蠻 11/19 19:24
14F:→ DrTech: 外行,又多餘的套件。 11/19 19:24
15F:→ DrTech: 結論:套殼 sentence-transformers。 11/19 19:27
16F:→ galaxy4552: 其實 pipowl 的重點不在重造 Sentence-Transformers 11/19 19:31
17F:→ galaxy4552: 本體還是用 sentence-transformers 沒錯 但我的目標是 11/19 19:32
18F:→ galaxy4552: 把整條 embedding pipeline (前處理、向量化 11/19 19:32
19F:→ galaxy4552: normalization、top-k、API 統一化…) 11/19 19:33
20F:→ galaxy4552: 都包成應用層能直接用的三行程式 11/19 19:33
21F:→ galaxy4552: all-MiniLM-L6-v2 當預設只是demo用 不是核心設計 11/19 19:36
22F:→ galaxy4552: 謝謝你深挖 也很感謝你花時間看程式碼 11/19 19:42
23F:→ galaxy4552: 速度這塊我自己實測過體感會比一般直接寫SBERT順很多 11/19 19:42
24F:→ DrTech: 你把實務上需要根據需求,需要調整的部分,例如怎麼清洗文 11/19 19:43
25F:→ DrTech: 字,相似度怎麼算,都包起來了,不能直接調整,確實很難用 11/19 19:43
26F:→ DrTech: 。sentence-transformers 不封裝這些東西,就是為了實務上 11/19 19:43
27F:→ DrTech: 方便調整。 11/19 19:43
28F:→ DrTech: 如果是直接砍掉 sentence-transformers,從pytorch層級, 11/19 19:46
29F:→ DrTech: 輕量封裝,取代sentence-transformers,對我會比較有幫助 11/19 19:46
30F:→ DrTech: 。 11/19 19:46
31F:→ galaxy4552: 理解你的需求,這裡的定位真的不太一樣。 11/19 19:49
32F:→ galaxy4552: pipowl-open 是做「開箱即用的語意搜尋」 11/19 19:49
33F:→ galaxy4552: 目標是讓工程師不用碰到清洗、相似度公式 11/19 19:50
34F:→ galaxy4552: encode cache 等細節 快速把 SBERT pipeline 11/19 19:51
35F:→ galaxy4552: 接進應用程式。 11/19 19:51
36F:→ galaxy4552: 你說的那確實是另一種方向 pipowl 不是瞄準那一塊 11/19 19:53
37F:→ galaxy4552: 定位不太一樣而已,完全理解你的 point 11/19 19:53
38F:推 DrTech: 謝謝友善回應 11/19 19:54
39F:→ galaxy4552: 您剛剛分析的細節,其實能感受到您真的很有能力。 11/19 19:57
40F:→ galaxy4552: 我後面其實還有做一些更底層的向量技術 11/19 20:00
41F:→ galaxy4552: 等更穩定後會開放 11/19 20:00
42F:→ yunf: 講到關鍵字大神要從美國跳出來了 11/20 04:43