RAG 應用教學|2026 年用 LLM API 打造檢索增強生成系統
RAG 應用教學|2026 年用 LLM API 打造檢索增強生成系統
讓 AI 不再胡說——RAG 是目前最實際的解決方案
你有沒有遇過這種情況:
問 AI「我們公司的年假政策是什麼」,它回答了一個聽起來很合理、但完全不是你公司規定的答案?
這不是 AI 在騙你。它真的不知道你公司的政策——因為你的內部資料不在它的訓練數據裡。
RAG(Retrieval-Augmented Generation) 就是讓 AI 在回答前「先查資料」的技術。
這篇教學會帶你從零開始建立一個 RAG 系統。不需要 AI 博士學位,有基本的 Python 能力就夠了。
想建置 RAG 系統?CloudInsight 協助您選擇最適合的 LLM API,企業方案享折扣。

TL;DR
RAG 系統的核心流程:文件切割 → Embedding 向量化 → 存入向量資料庫 → 使用者提問 → 向量搜尋找到相關資料 → 把資料塞進 Prompt → LLM 生成回答。推薦堆疊:OpenAI Embedding + Qdrant/Pinecone + Claude Sonnet/GPT-4o。整個系統可以在一天內建好原型。
RAG 架構設計與組件選擇
Answer-First: RAG 系統由三大組件構成——Embedding 模型(文字轉向量)、向量資料庫(儲存和搜尋向量)、LLM(生成回答)。每個組件都有多種選擇,正確組合才能發揮最大效果。
RAG 完整架構圖
離線流程(建立知識庫)
════════════════════
文件/資料 → 文件切割 → Embedding → 向量資料庫
(Chunking) (向量化) (儲存)
線上流程(回答問題)
════════════════════
使用者提問 → Embedding → 向量搜尋 → 取得相關文件
↓ ↓
查詢向量 相關文件片段
↓
組合 Prompt → LLM → 回答
核心組件選擇
| 組件 | 推薦方案 | 替代方案 |
|---|---|---|
| Embedding | OpenAI text-embedding-3-small | Cohere embed-v3、BGE-M3 |
| 向量資料庫 | Qdrant(自架)或 Pinecone(託管) | Weaviate、Chroma、pgvector |
| LLM | Claude Sonnet 或 GPT-4o | GPT-4o-mini、Gemini Pro |
| 框架 | LangChain 或 LlamaIndex | 自建(更靈活) |
文件切割(Chunking)策略
這是 RAG 系統品質的關鍵。切太大,搜尋精度低。切太小,缺少上下文。
| 策略 | Chunk 大小 | Overlap | 適合場景 |
|---|---|---|---|
| 固定大小 | 500 tokens | 50 tokens | 通用 |
| 段落分割 | 依段落 | 1-2 句 | 結構化文件 |
| 語意分割 | 動態 | 自動 | 混合內容 |
| 遞歸分割 | 200-1000 | 10-20% | 程式碼文件 |
我們的建議: 從固定大小(500 tokens、50 tokens overlap)開始,根據檢索結果的品質再調整。
LLM 的核心技術原理與模型差異,請參考 LLM 是什麼?入門指南。
選擇最適合 RAG 的 LLM API
Answer-First: RAG 系統中 LLM 的任務是「根據檢索到的資料生成回答」。需要的是指令遵循能力和引用準確性,不一定需要最強的模型。
各 LLM 在 RAG 場景的表現
| 能力 | GPT-4o | Claude Sonnet | Gemini Pro | GPT-4o-mini |
|---|---|---|---|---|
| 指令遵循 | 9/10 | 10/10 | 8/10 | 8/10 |
| 引用準確 | 8/10 | 9/10 | 8/10 | 7/10 |
| 拒答能力 | 7/10 | 9/10 | 7/10 | 6/10 |
| 長 Context | 128K | 200K | 1M | 128K |
| 成本效益 | 中 | 中 | 佳 | 極佳 |
「拒答能力」為什麼重要?
在 RAG 系統中,如果檢索到的資料不夠回答使用者的問題,AI 應該說「我不確定」而不是編造答案。Claude 在這方面做得最好——它很誠實地告訴你「根據提供的資料,無法回答這個問題」。
成本估算
假設你的 RAG 系統每天收到 100 個問題,每個問題的 Context 約 2000 tokens:
| 模型 | 每日成本 | 每月成本 |
|---|---|---|
| GPT-4o | ~$0.50 | ~$15 |
| Claude Sonnet | ~$0.60 | ~$18 |
| Gemini Pro | ~$0.25 | ~$7.5 |
| GPT-4o-mini | ~$0.03 | ~$1 |
Embedding 費用另計(通常很低,約 $1-5/月)。
更多費用分析請參考 AI API 費用比較。
CloudInsight 提供 LLM API 企業採購,享折扣優惠與技術支援。諮詢 RAG 系統 API 採購方案 →
Embedding 與向量資料庫設定
Answer-First: Embedding 是把文字轉成數字向量的過程。向量資料庫是專門儲存和搜尋這些向量的資料庫。兩者搭配,讓你的 RAG 系統能快速找到最相關的資料。
Embedding 怎麼運作
簡單來說:
"台灣的首都是台北"
→ Embedding 模型
→ [0.023, -0.156, 0.891, ...] (1536 個數字)
語意相近的句子,轉成的向量也會很接近。所以搜尋時,只需要比較向量之間的「距離」。
實作:建立 RAG Pipeline
# Step 1: 安裝必要套件
# pip install openai qdrant-client langchain
from openai import OpenAI
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
# Step 2: 初始化
openai_client = OpenAI()
qdrant = QdrantClient(":memory:") # 開發用記憶體模式
# Step 3: 建立向量集合
qdrant.create_collection(
collection_name="knowledge_base",
vectors_config=VectorParams(size=1536, distance=Distance.COSINE)
)
# Step 4: 文件 Embedding 並存入
def embed_and_store(documents):
for i, doc in enumerate(documents):
response = openai_client.embeddings.create(
model="text-embedding-3-small",
input=doc["content"]
)
qdrant.upsert(
collection_name="knowledge_base",
points=[PointStruct(
id=i,
vector=response.data[0].embedding,
payload={"content": doc["content"], "source": doc["source"]}
)]
)
# Step 5: 搜尋相關文件
def search(query, top_k=3):
query_vector = openai_client.embeddings.create(
model="text-embedding-3-small",
input=query
).data[0].embedding
results = qdrant.search(
collection_name="knowledge_base",
query_vector=query_vector,
limit=top_k
)
return results
# Step 6: RAG 生成回答
def rag_answer(question):
results = search(question)
context = "\n".join([r.payload["content"] for r in results])
response = openai_client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"根據以下資料回答問題。如果資料中沒有相關資訊,請說「根據現有資料無法回答」。\n\n資料:\n{context}"},
{"role": "user", "content": question}
]
)
return response.choices[0].message.content
向量資料庫比較
| 資料庫 | 部署方式 | 免費方案 | 適合規模 | 特色 |
|---|---|---|---|---|
| Pinecone | 託管 | 1M 向量 | 中大型 | 最簡單 |
| Qdrant | 自架/託管 | 開源免費 | 任何 | 功能最全 |
| Weaviate | 自架/託管 | 開源免費 | 中大型 | GraphQL 介面 |
| Chroma | 自架 | 開源免費 | 小型 | 最輕量 |
| pgvector | 自架(PostgreSQL) | 開源免費 | 小中型 | 整合既有 DB |

RAG 效果優化技巧
Answer-First: RAG 的品質取決於三個環節——檢索品質、Context 組裝、生成品質。大部分問題出在檢索品質不夠好。
常見問題與優化方法
問題 1:搜尋結果不相關
解法:
- 嘗試不同的 Chunk 大小
- 使用 Hybrid Search(向量搜尋 + 關鍵字搜尋)
- 加入 Metadata 過濾(如:文件類型、日期)
問題 2:回答不夠完整
解法:
- 增加 top_k(搜尋結果數量)
- 使用多步驟檢索(先找大範圍,再細搜)
- 增大 Chunk 的 overlap
問題 3:回答有幻覺
解法:
- 在 System Prompt 中強調「只根據提供的資料回答」
- 要求 LLM 引用來源
- 使用更遵循指令的模型(Claude Sonnet)
問題 4:速度太慢
解法:
- 使用較小的 Embedding 模型(text-embedding-3-small)
- 減少 top_k
- 使用 Streaming 回應
- 快取常見問答
進階優化:Reranking
檢索後,用 Reranker 模型重新排序結果:
# 使用 Cohere Rerank
import cohere
co = cohere.Client()
results = co.rerank(
query="退貨政策是什麼",
documents=["搜尋結果1", "搜尋結果2", "搜尋結果3"],
model="rerank-v3.5"
)
Reranking 可以把搜尋準確率從 70% 提升到 85%+。
更多技術教學請參考 API 教學入門指南 和 AI 程式碼生成指南。

FAQ:RAG 應用常見問題
RAG 可以處理多少種文件格式?
RAG 本身不限格式。只要你能把文件轉成文字,就能放進 RAG 系統。常見支援:PDF、Word、Excel、HTML、Markdown、純文字。圖片和表格需要額外的 OCR 或多模態處理。
RAG 系統需要多大的伺服器?
取決於架構。如果使用雲端服務(OpenAI API + Pinecone),完全不需要自己的伺服器。如果完全自架(開源 LLM + Qdrant),建議至少 16GB RAM、4 核 CPU。GPU 不一定需要(除非自架 LLM)。
RAG 可以用在即時聊天機器人嗎?
可以,但需要優化速度。建議使用 Streaming 回應、快取常見問答、選用速度快的模型(GPT-4o-mini 或 Gemini Flash)。典型延遲:2-5 秒。
知識庫需要多常更新?
取決於你的資料更新頻率。建議設定自動化 Pipeline:文件更新 → 重新 Embedding → 寫入向量資料庫。可以用 CI/CD 工具自動化這個流程。
LangChain 和 LlamaIndex 哪個好?
LangChain 功能更全面,適合複雜的 AI 應用。LlamaIndex 專注於 RAG,設定更簡單。如果你只做 RAG,建議 LlamaIndex。如果還要做 Agent 等其他功能,選 LangChain。
了解完整的 LLM 與 RAG 策略,請回到 LLM 與 RAG 應用指南。
結論:RAG 是最務實的企業 AI 解決方案
不需要 Fine-tuning,不需要訓練自己的模型。
RAG 讓你用現成的 LLM API + 自己的資料,就能打造出可靠的 AI 應用。
下一步行動:
- 準備你的知識庫文件
- 選擇 Embedding 和 LLM API
- 用上面的程式碼建一個原型
- 測試、優化、上線
整個過程可以在一天內完成原型。不要過度設計,先做出來再說。
立即諮詢企業方案
CloudInsight 提供 RAG 所需的 LLM API 企業採購:
- OpenAI Embedding + Claude/GPT 生成 API 統一採購
- 企業專屬折扣,降低 RAG 系統營運成本
- 統一發票、中文技術支援
參考資料
- OpenAI - Embedding Models Documentation(2026)
- Qdrant - Official Documentation(2026)
- Pinecone - Vector Database Guide(2026)
- LangChain - RAG Tutorial(2026)
- Cohere - Rerank API Documentation(2026)
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "RAG 應用教學|2026 年用 LLM API 打造檢索增強生成系統",
"author": {
"@type": "Person",
"name": "CloudInsight 技術團隊",
"url": "https://cloudinsight.cc/about"
},
"datePublished": "2026-03-21",
"dateModified": "2026-03-22",
"publisher": {
"@type": "Organization",
"name": "CloudInsight",
"url": "https://cloudinsight.cc"
}
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "RAG 系統需要多大的伺服器?",
"acceptedAnswer": {
"@type": "Answer",
"text": "如果使用雲端服務(OpenAI API + Pinecone),完全不需要自己的伺服器。如果完全自架,建議至少 16GB RAM、4 核 CPU。"
}
},
{
"@type": "Question",
"name": "RAG 可以用在即時聊天機器人嗎?",
"acceptedAnswer": {
"@type": "Answer",
"text": "可以,但需要優化速度。建議使用 Streaming 回應、快取常見問答、選用速度快的模型。典型延遲:2-5 秒。"
}
},
{
"@type": "Question",
"name": "LangChain 和 LlamaIndex 哪個好?",
"acceptedAnswer": {
"@type": "Answer",
"text": "LangChain 功能更全面,適合複雜的 AI 應用。LlamaIndex 專注於 RAG,設定更簡單。如果只做 RAG,建議 LlamaIndex。"
}
}
]
}
相關文章
LLM 與 RAG 應用指南|2026 年大型語言模型 API 選擇與 RAG 實戰教學
2026 年 LLM 與 RAG 應用完整指南!了解大型語言模型 API 選擇、RAG 架構設計、LLM Inference 優化,打造企業級 AI 應用。
LLMRAG 是什麼?LLM RAG 完整指南:從原理到企業知識庫應用【2026 更新】
RAG 檢索增強生成是什麼?本文完整解析 RAG 原理、GraphRAG、Hybrid Search、Reranking 技術,並提供企業知識庫、客服機器人等實戰案例與框架選型建議。
AI APIAI API 是什麼?2026 年完整指南|功能、選擇、使用教學一次搞懂
2026 年 AI API 完整指南!了解 AI API 是什麼、有哪些選擇、怎麼使用,從入門概念到實戰應用,開發者與企業必讀。