跳至主要内容

RAG 知識庫

RAG(Retrieval-Augmented Generation,檢索增強生成)讓 AI 根據你提供的文件回答問題,而不是憑空生成可能不正確的答案。

簡單說:上傳你的文件 → AI 根據這些文件回答問題 → 每個回答都附帶來源引用。

運作原理

你的問題 → 語義搜尋知識庫 → 找到最相關的文件段落
→ 把這些段落連同問題一起送給 AI
→ AI 根據文件內容生成有依據的回答
→ 回傳答案 + 引用的文件來源

快速上手

步驟 1:上傳文件

Dashboard 新增專案後,上傳你的文件。支援的格式:

  • PDF
  • Markdown (.md)
  • Word (.docx)
  • 純文字 (.txt)
  • HTML

上傳後系統會自動處理(解析 → 切分 → 向量化),通常幾分鐘內完成。

你也可以用 API 上傳:

import { readFile } from 'node:fs/promises';

const buffer = await readFile('./product-manual.pdf');

const doc = await client.documents.upload({
file: buffer,
filename: 'product-manual.pdf',
contentType: 'application/pdf',
});

console.log('上傳成功,文件 ID:', doc.id);
console.log('狀態:', doc.status); // processing → ready

步驟 2:用 AI 查詢知識庫

文件處理完成後,在 Chat 請求中開啟 rag: true

const reply = await client.chat.completions.create({
model: 'openai/gpt-4o',
messages: [{ role: 'user', content: '這個產品的保固期是多久?' }],
vecstruct: {
rag: true,
rag_top_k: 5, // 參考最相關的 5 個段落
},
});

console.log(reply.choices[0].message.content);

// 查看引用了哪些段落
for (const src of reply.vecstruct?.rag_sources ?? []) {
console.log(`來源: ${src.title} (相似度: ${src.similarity.toFixed(2)})`);
console.log(` 段落: ${src.chunk.slice(0, 100)}...`);
}

步驟 3:直接查詢知識庫(不生成回覆)

如果你只需要查找相關文件段落,不需要 AI 生成回覆,用 RAG Query API:

const result = await client.rag.query({
query: '退貨政策',
config: {
top_k: 5,
min_similarity: 0.7,
},
});

for (const r of result.results) {
console.log(`相似度: ${r.score.toFixed(3)}`);
console.log(`內容: ${r.content.slice(0, 200)}`);
console.log(`來源文件: ${r.source?.name}`);
}

應用場景範例

範例一:客服自動化

把產品說明書、FAQ、退換貨政策上傳,讓 AI 自動處理客戶常見問題。

解決的問題: 客服需要翻閱大量文件才能回答,回答品質不一致,且難以追蹤依據。

用 Vecstruct 怎麼做:

  1. 上傳所有客服相關文件到 Vecstruct 專案
  2. 客服系統呼叫 API,開啟 rag: true
  3. AI 的每個回答都附帶「依據是哪份文件的哪個段落」

範例二:法規合規查詢

法律、會計、人資等部門上傳相關法規文件,員工或自動化系統可以快速查詢合規要求。

解決的問題: 法規文件更新頻繁,人工維護 FAQ 耗時,且容易遺漏新規定。

用 Vecstruct 怎麼做:

  1. 定期更新法規文件(重新上傳即可)
  2. 查詢時 AI 自動從最新版本的文件回答
  3. 每個答案都有原文引用,方便核實

範例三:內部知識管理

把公司 SOP、技術文件、會議記錄上傳,讓員工可以直接問 AI 而不需要翻遍整個 SharePoint。

解決的問題: 知識分散在各處,新員工上手慢,老員工也常找不到文件。

用 Vecstruct 怎麼做:

  1. 各部門把自己的文件上傳到對應的 Vecstruct 專案
  2. 用不同的 API Key 控制誰能存取哪個專案
  3. 員工用自然語言問問題,AI 直接回答並附上文件連結

範例四:教育輔助平台

上傳課程教材、歷年考題、參考書目,讓 AI 成為能解答課程相關問題的教學助理。

解決的問題: 學生提問時間不固定,老師難以即時回覆,且回答需要準確引用教材。

用 Vecstruct 怎麼做:

  1. 按課程分別建立專案,上傳對應教材
  2. 學生提問時,AI 根據教材回答,並指出教材的哪個章節
  3. AI 不會憑空捏造,回答超出教材範圍時會明確說明

控制 RAG 行為

rag_top_k:回傳幾個段落

預設使用專案設定,可在請求中覆蓋。值越大,AI 參考的資訊越多,但回答越長且費用略高。

vecstruct: {
rag: true,
rag_top_k: 3, // 只取最相關的 3 個段落
}

指定特定文件

如果只想讓 AI 參考特定幾份文件:

vecstruct: {
rag: true,
// 只從這些文件 ID 裡搜尋
// 文件 ID 可從 Documents API 取得
}

在 RAG Query API 中用 source_ids 限定:

const result = await client.rag.query({
query: '退貨政策',
source_ids: ['doc-id-1', 'doc-id-2'], // 只搜尋這兩份文件
});

關閉 RAG

如果 API Key 綁定了專案,預設會開啟 RAG。在某些對話不需要知識庫時可以關閉:

vecstruct: {
rag: false, // 這個請求不查詢知識庫
}

注意事項

  • 文件上傳後需要等待處理完成(狀態變為 ready)才能查詢
  • 查詢結果的品質取決於文件內容的清晰度和完整性
  • PDF 會透過 OCR 識別技術轉換為文字,圖片中的文字也能辨識
  • 每次 RAG 查詢會消耗 Credits(費用詳見 Pricing