AI 聊天機器人與 RAG
一個利用檢索增強生成(RAG)技術的智能聊天機器人,能夠提供準確且具上下文感知的回應。該系統使用 React 前端和 FastAPI 後端構建,並無縫整合 AWS Bedrock 以增強對話能力。
功能
- 文件整合:上傳包含產品規格和常見問題的 PDF 和 Excel 文件,這些文件將被處理並儲存在 AWS Bedrock 中,以豐富互動內容。
- 互動提示:用戶可以通過基於 React 的介面輸入提示,這些提示將被發送到後端進行處理和生成回應。
- 上下文回應:利用 AWS Bedrock 的向量數據庫檢索相關資料,並將其與用戶提示結合,通過 GPT-4 生成全面的答案。
- 實時串流:通過從 OpenAI 串流數據實時傳遞回應,確保用戶體驗流暢且反應迅速。
技術
- 前端:使用 TypeScript 和 Vite 的 React,構建一個可以通過導入 JS 和 CSS 輕鬆實現於其他網站的小工具。
- 後端:FastAPI Python 框架,提供穩健且可擴展的 API 來處理請求。
- RAG 整合:使用 AWS Bedrock 來管理和查詢向量數據庫。
- 語言模型:使用 OpenAI 的 GPT-4o / GPT-3.5 Turbo 來生成高品質、具上下文感知的回應。
- 部署:在 Windows IIS 上部署,使用開源的
httpplatformhandlermodule 版本 2,以增強串流功能。
開發見解
- CSS 重疊問題:遇到了與主網站 CSS 樣式重疊的問題。通過實施 CSS 模組來封裝樣式,防止衝突,從而解決了此問題。
- AWS Bedrock 帳戶配置:在設置 AWS Bedrock 時遇到了挑戰,包括創建 IAM 帳戶和分配適當的權限。獲得了有價值的 AWS 帳戶管理和安全配置經驗。
- Windows IIS 的串流限制:最初,Windows IIS 無法有效支持串流回應。通過採用 GitHub 社區提供的更新版本
httpplatformhandlermodule_x64_en_v2_8.0.3,實現了後端到前端的無縫數據串流。