RAG-demo

最小可行版本:問一個問題 → 找到最相關的段落 → 交給模型回答,並附上引用來源。

部署教學

從零開始,把這個 RAG 知識庫部署成你自己的網站。全程免費額度就夠,不用填信用卡。跟著下面八步做, 卡住的地方截圖問你的講師。

1拿到程式碼

二選一:

  • 有 git:git clone https://github.com/Joanna8521/Rag-Demo.git
  • 沒有 git:直接下載講師給的 RAG-demo.zip,解壓縮到你喜歡的資料夾

接著打開終端機,進到那個資料夾,依序跑:

npm install
cp .env.example .env

2申請 Neon(資料庫)

到 neon.tech 按右上角 Sign up,用 Google 帳號登入最快,不用填信用卡。建立一個新專案後,畫面上會有 Connection string,切換選 Pooled connection,按複製——這串就是等一下要用的DATABASE_URL。

Neon 官網首頁,右上角有 Sign up 按鈕
neon.tech 首頁,右上角 Sign up

3申請 Voyage AI(Embedding,語意搜尋用)

到 voyageai.com 註冊、申請 API Key, 這組是 VOYAGE_API_KEY。

Voyage AI 官網首頁
voyageai.com 首頁

4申請 Claude(Anthropic,負責回答)

到 console.anthropic.com 用 Google 帳號或 Email 註冊,申請 API Key,這組是 ANTHROPIC_API_KEY。

Claude Console 登入頁
console.anthropic.com 登入頁

5本機填 .env、建庫

打開資料夾裡的 .env,把上面三步拿到的值填進去:

RAG_STORE=pg
DATABASE_URL=<Neon 的連線字串>
EMBEDDING_PROVIDER=voyage
VOYAGE_API_KEY=<Voyage key>
EMBEDDING_DIM=1024
LLM_PROVIDER=claude
ANTHROPIC_API_KEY=<Claude key>

存檔後回到終端機:

npm run db:init
npm run ingest -- --reset
npm run dev

打開 http://localhost:3000 先問一題,確認本機這邊沒問題再往下。

6部署到 Vercel

到 vercel.com/new,用 GitHub 登入, 選擇 Import Git Repository,找到你剛才 clone/fork 的那個 repo(Next.js 專案會自動偵測, Build 設定不用改)。

Vercel New Project 頁面
vercel.com/new:Import Git Repository

7在 Vercel 貼環境變數

匯入專案時(或之後到專案的 Settings → Environment Variables)把 .env裡的那七組值貼上去,全部套用到 Production。管理員帳號不用設環境變數,部署好之後在網站上建立。

這一頁在你自己的 Vercel 帳號裡,需要先登入才看得到,這裡沒辦法放截圖,照上面文字操作就好: 每一列是一組 Key 跟 Value,填完按 Save。

存完按 Deploy(第一次部署)或到 Deployments 頁按 Redeploy(已經部署過、只是改了環境變數)。改環境變數不會自動套用到舊的部署,一定要重新部署一次。

8驗收

部署完打開你的網址:

  1. 馬上到「後台管理」最上方「建立管理員帳號」,填 email 與密碼(建好會自動登入,整站從此要登入)
  2. 到「問答」頁問一題,確認 llmProvider 顯示 claude(不是 local)
  3. 到「後台管理」上傳自己的文件,重新整理後文件還在,代表真的存進 Neon 了
第一次打開網站時,頁面上方提醒還沒有管理員帳號,後台最上方有「建立管理員帳號」表單,填 Email、名稱、密碼
第一次打開:在後台最上方建立管理員帳號

完成後的樣子

建好管理員、登入之後,問答頁、「後台管理」跟「設定」頁的實際畫面(離線模式,還沒填 API Key):