| 項目 | 說明 |
|---|---|
| 目標 | 都是建立一套「智能問答系統」,讓使用者輸入自然語言問題,系統能找到相關答案並回覆。 |
| RAG 架構 | 兩者都屬於 Retrieval-Augmented Generation(檢索增強生成),先「檢索」再「生成」。 |
| 資料來源 | 都是以 FAQ 或文件作為檢索資料庫,提供上下文給後續的語言模型生成回答。 |
| 核心流程 | 先搜尋相關資料,再把結果組成 Prompt 給大語言模型(LLM)產生答案。 |
| 語言模型串接 | 都使用 OpenRouter 提供的免費模型呼叫 LLM 來生成回答。 |
| 環境基礎 | 都建議用 Docker 啟動本地的檢索服務(Elasticsearch 或 Qdrant)。 |
| Python SDK 操作 | 兩者都用 Python 對檢索資料庫進行建立索引、上傳資料、查詢相似資料等操作。 |
| 項目 | 專案一(Elasticsearch + LLM) | 專案二(FastEmbed + Qdrant) |
|---|---|---|
| 檢索方式 | 傳統關鍵字全文檢索,使用 Elasticsearch 的多欄位搜尋與加權排序。 | 向量語意檢索,先用 FastEmbed 將文字轉成向量,再用 Qdrant 做向量相似度搜尋。 |
| 索引資料類型 | 純文本資料索引,索引的是 FAQ 的文字欄位(question、text、section 等)。 | 向量資料索引,索引的是文字向量,結合原始文字作為 Payload。 |
| 搜尋匹配機制 | 文字比對、關鍵字匹配、分詞與分數計算。 | 基於向量空間的語意距離(如 cosine similarity),比較語意相似度。 |
| 技術複雜度 | 比較適合文字索引與搜尋,對文字搜尋引擎概念友好,初學者較容易理解。 | 需理解向量化與高維度相似度搜尋原理,技術較新,較適合進階或特定應用。 |
| 模型使用方式 | LLM 只負責生成回答,檢索階段沒用到向量模型。 | FastEmbed 負責把文字轉向量,Qdrant 直接支持向量化索引與搜尋,檢索與生成較融合。 |
| 擴充彈性 | 容易擴充成多欄位複雜搜尋、布林條件與全文檢索。 | 方便整合更多語意模型,支援多種嵌入模型,適合語意豐富的檢索需求。 |
| 常用場景 | 需要基於文字關鍵字快速匹配、且對資料格式要求較高的系統。 | 需要語意層面相似度判斷、非結構化資料匹配與模糊搜尋的智能問答系統。 |
| 面向 | 結論 |
|---|---|
| 初學入門 | 專案一用 Elasticsearch 索引與搜尋,適合理解全文檢索和傳統搜尋架構的工程師。 |
| 語意檢索 | 專案二則用 FastEmbed + Qdrant 做向量檢索,讓問答系統更智能,適合想深入語意檢索和向量資料庫的工程師。 |
| 整合方式 | 兩者都用 LLM 生成回答,但在「檢索階段」選擇不同技術方案,呈現不同層次的檢索策略。 |