Skip to content

a920604a/llm-zoomcamp-2025

Repository files navigation

專案一與專案二的相似處

項目 說明
目標 都是建立一套「智能問答系統」,讓使用者輸入自然語言問題,系統能找到相關答案並回覆。
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 生成回答,但在「檢索階段」選擇不同技術方案,呈現不同層次的檢索策略。