iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

概述

  • 本篇將介紹此系列文章中所開發的LINE Bot系統架構
  • End User傳送的訊息會經由Lambda Function傳遞到Kafka,接著由Server端的bot server接收後,透過OpenAI判斷語意,並將訊息記錄到MongoDB,最後回覆給End User。
  • 部分細節,例如LINE Platform的運作,及Kafka的訊息處理等,會在後續章節詳細說明。這邊只介紹整體流程及各元件用到的技術。

系統架構

  • 各元件架構與技術如下:

架構圖

https://ithelp.ithome.com.tw/upload/images/20240916/20105227ivpJfZTwQF.png

流程及使用技術

從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
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言