# 提示詞 B：升級成 RAG 資料庫＋網頁前端

整段複製，貼到 Claude Code 或 Codex。用法見講義第 7、8 節。

```text
請把現有的 search.py 升級成可以長期使用的文獻 RAG。

【資料庫】使用 Chroma 的 PersistentClient，資料存在 ./db。
每個片段的 metadata 包含 book、title、page、source_path，以及來源檔的 sha256。

【增量更新】python ingest.py 只處理新增或內容雜湊改變的書；
已刪除的書要從資料庫移除；每次執行把新增／更新／刪除寫入 ingest_log.jsonl。

【前端】用 Streamlit 做一個頁面：
- 輸入問題，可以勾選只查哪幾本書；
- 顯示前 5 段原文，每段附書名與 PDF 頁碼；
- 按「產生回答」才呼叫 Claude API。API 金鑰從環境變數 ANTHROPIC_API_KEY 讀取，
  不要寫進程式碼或任何檔案。

【回答規則】每個論點後面附 [編號]；摘錄不足時明說找不到依據，不要自行補充。

【驗證】
- 沿用 tests/ 裡的黃金問題，全部要通過。
- 新增一本書後，確認只有那本被處理；刪除一本書後，確認查不到它的片段。
- 用 streamlit run app.py 在本機開啟，並截圖給我看。

【限制】先給計畫；不要改 books/；完成後列出啟動指令與完整測試輸出。
```
