iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
自我挑戰組

從零打造客製化 AI 聊天機器人系列 第 30

[從零打造客製化 AI 聊天機器人] 總結

  • 分享至 

  • xImage
  •  

在完成這一系列的介紹後,我們從零開始,逐步開發了一個客製化的 AI 旅遊即時聊天機器人,慢慢的對生成式 AI 有一定的基礎,從最初的設計概念,到逐步實現 OpenAI 聊天室功能,再到成功整合 FastAPI、Azure OpenAI、ChromaDB、WebSocket 等技術,我們不僅學會了如何讓這些工具協同工作,更掌握了如何處理像是意圖分析、實時通信、資料查詢等複雜功能。接下來,我會再詳細介紹整個開發流程。

1.規劃與設計

核心目標——建立一個能即時回應旅遊問題的 AI 聊天機器人。這個機器人要能夠根據使用者的提問,提供台北市景點的介紹、交通、地址、營業時間等實用資訊。
前端:使用 Next.js 建立聊天介面,讓使用者能與聊天機器人互動。
後端:使用 FastAPI 和 Azure OpenAI 實作生成 AI 回應的功能,並與前端進行 WebSocket 通信。
資料庫:使用 ChromaDB 儲存旅遊景點的資料和意圖資料,並進行快速查詢。
意圖識別:利用 Azure OpenAI 來分析使用者的提問,從中辨識意圖,並查詢相關的景點資料。

2. 實作 OpenAI 聊天室功能

第一步是搭建基本的聊天系統。我們使用了 FastAPI 作為後端框架,並與 Azure OpenAI API 進行串接,讓聊天機器人能夠根據使用者的輸入生成回應。我們還使用 WebSocket 來實現即時通信,確保前端與後端的消息能夠即時傳遞。

  • FastAPI 與 WebSocket 串接
  • Next.js 前端實作

3. 建立意圖與景點向量資料庫

為了讓聊天機器人能夠辨識使用者的問題並給出準確的旅遊資訊,我們建立了兩個關鍵資料庫:

  • 意圖資料庫:用來辨識使用者的提問意圖(例如查詢景點介紹、交通、地址等)。
  • 景點資料庫:儲存台北各大景點的詳細資料,這些資料會以向量形式存儲在 ChromaDB 中,以便快速查詢

4.實作意圖執行功能

在建立好意圖與景點資料庫後,接下來是實作意圖執行的功能。我們使用 Azure OpenAI 來分析使用者的輸入,從中辨識出具體的意圖,並從 ChromaDB 查詢相關景點的資料。

5. 支援多用戶即時聊天

為了支援多用戶同時使用聊天機器人,我們擴展 WebSocket ,為每個使用者生成唯一的 user_id,並確保每個 WebSocket 連接能夠識別不同的用戶。

我們已經成功建立了客製化的 AI 聊天機器人,支援台北旅遊資訊查詢,並能夠即時回應多個使用者的問題。


上一篇
[從零打造客製化 AI 聊天機器人] 建立旅遊即時聊天機器人4 (多人聊天)
系列文
從零打造客製化 AI 聊天機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言