14.2%企業願意聘用大資料人才
Cloud Future Built Today
IT EXPLAINED 數位轉型攻略 VII
技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
2
0
Software Development
從零開始構建能理解語義的 Linebot 架構
系列 第
2
篇
架構描述: 系統組成
16th鐵人賽
cancerpio
2024-09-16 18:30:53
458 瀏覽
分享至
概述
本篇將介紹此系列文章中所開發的LINE Bot系統架構
End User傳送的訊息會經由Lambda Function傳遞到Kafka,接著由Server端的bot server接收後,透過OpenAI判斷語意,並將訊息記錄到MongoDB,最後回覆給End User。
部分細節,例如LINE Platform的運作,及Kafka的訊息處理等,會在後續章節詳細說明。這邊只介紹整體流程及各元件用到的技術。
系統架構
各元件架構與技術如下:
架構圖
流程及使用技術
從User在LINE上輸入訊息開始,系統將觸發以下流程:
1.End User傳送訊息
User把LINE Bot加入好友後,傳訊息給LINE Bot。
LINE Platfotm收到訊息後,會透過Webhook的方式將訊息傳送至LinebotHandler。
如何送給LinebotHandler的機制會在
LINE Bot 基本觀念
介紹。
2.LinebotHandler 接收 Webhook 並將訊息傳送至 Kafka
LinebotHandler會從Webhook中提取出User輸入的訊息,和回覆User時所需要的token等資訊。
關於kafka的訊息傳遞機制會在
Kafka 概念介紹及部署
中詳細說明。
關於LinebotHandler的開發過程將在
使用 AWS Lambda 開發 Serverless Event 接收器
做說明。
使用技術
Node.js
AWS Lambda
3.bot server獲取訊息
bot server 從 Kafka 獲取 User 的訊息和相關 token 資訊。
bot server 的開發詳情會在
使用 Spring Boot 開發 Backend Bot Server
介紹。
使用技術
Spring Boot
Spring Kafka
4.bot server 呼叫 OpenAI API,進行語意分析
bot server 透過 OpenAI API 向 ChatGPT 送出 prompt,進行以下操作:
語意判斷
取得指定格式的回應,例如: 將訊息提到的食物種類及營養組成以JSON格式回傳
OpenAI API Service相關開發內容會在
使用 Spring Boot 開發 Backend Bot Server
說明。
使用技術
Open AI API Java Library
5.bot server 將資訊紀錄在MongoDB,並回應User
將OpenAI 回應的內容或相關資訊紀錄在MongoDB。
透過line-bot-api-client回應訊息給End User。
MongoDB的使用與實作細節將在會在
使用 Spring Boot 開發 Backend Bot Server
說明。
使用技術
Spring Data MongoDB
line-bot-api-client
留言
追蹤
檢舉
上一篇
簡介: 從零開始構建能理解語義的 Linebot 架構
下一篇
架構描述: 專案緣起
系列文
從零開始構建能理解語義的 Linebot 架構
共
30
篇
目錄
RSS系列文
訂閱系列文
6
人訂閱
26
使用 Spring Boot 開發 Backend Bot Server: 使用 Spring Data 連接 MongoDB
27
MongoDB 概念及部署: 使用 Docker 設置含初始資料庫與用戶驗證的 MongoDB 服務
28
OpenAI 概念介紹與實作:核心概念與 Chat Completion 的應用
29
OpenAI 概念介紹與實作:使用 API 進行 Prompt 與角色設定,並整合到 Bot Server
30
總結: OpenAI 與 LineBot 的整合實踐與未來改進
完整目錄
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22211
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
VMware remote console下載....
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
Kali Linux如何執行exe檔?
中小公司 郵件系統、人資系統 更換請益
請問有版友,能提供目前for HPE Server最新版本的esxi 8.0.3嗎?
HILINK VPN 連線 NAS
請問這是甚麼樣的資料格式?有解析器嗎
關於Veeam 認證工程師(VMCE)
DNS內部轉指問題
OpenID
Windows 10支援倒數,聯繫微軟夥伴諮詢
僅需 6~12週快速建立 GenAI 策略與路線圖
GenAI 加速企業創新落地,更需要全新 IT 戰略
AI 賦能 DevOps,開啟創新應用!
立即標記行事曆,7/2 探索 AI 與雲端的無限未來!
熱門回答
公用電腦,用哪個AD帳號登入比較恰當?
DNS內部轉指問題
中小公司 郵件系統、人資系統 更換請益
幼兒會亂按桌機開關關停桌機,奇怪以前的桌機需長按5秒才能關停,怎麼現在的桌機一按就關停了?請問有什麼方法或設定可以解決幼兒亂按關停桌機的問題.謝謝!!
HILINK VPN 連線 NAS
熱門文章
什麼是高內聚與低耦合的程式架構?
【讓機器人做】自動截取網頁資料 + 排程器篇 II
虛擬機安裝Windows11解決TPM及本機安裝問題
「與AI探索天文」如何用ChatGPT製作一個網頁小遊戲來認識找尋系外行星的方法?
Cyber security -2 : Threat actor types
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}