Skip to content

Magic8763/movie_recommend_chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

185 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Movie Recommendation Chatbot

shields License: MIT

本專案為採用 Flask 框架開發的 LINE 聊天機器人,具有可供查詢與推薦電影的整合介面,並導入 ChatGPT 回應用戶的文字訊息。

隨著用戶與聊天機器人的互動,系統會動態更新電影推薦清單,得出符合用戶近期偏好的專屬內容。

用戶所有操作只需在 LINE App 上進行,不必安裝其他應用,無需定期更新軟體,也不會佔用額外儲存空間,具有高度輕便性。

另外整合了 ChatGPT 和天氣資訊 API 等泛用功能,提供多元化服務。

image

Demo

電影推薦

輸入「@電影推薦機器人」觸發機器人返回電影推薦首頁介面。

image

點擊首頁的「最新電影」按鈕或輸入「@電影推薦機器人:最新電影」,返回上映日期最近的數部電影。

image

點擊首頁的「關鍵字搜尋」按鈕或輸入「@電影推薦機器人:關鍵字搜尋」,接著輸入關鍵字,返回片名與其相符的所有電影。

image

點擊首頁的「智慧推薦」按鈕或輸入「@電影推薦機器人:智慧推薦」,返回與用戶近期查詢偏好相近的電影。

image

點擊電影模板的「同類推薦」按鈕,返回與該電影類型相同的電影清單。

image

點擊電影模板的「給予評分」按鈕,接著輸入 1 ~ 10 之間的分數給予評分。

image

點擊首頁的「評分紀錄」按鈕或輸入「@電影推薦機器人:評分紀錄」,返回用戶最近 10 筆電影評分。

image

ChatGPT

非'@'前綴的文字訊息將由 ChatGPT 進行回應。

image

天氣資訊

輸入「@地震資訊」,返回最近的中央氣象署地震報告。

image

輸入「@氣象雷達」,返回最近的中央氣象署雷達合成回波圖。

image

從 LINE app 分享位置訊息,返回該地點的天氣資訊。

image

Prerequisites

  • Python3, Flask, Flask-RESTful, Flask-SQLAlchemy, Psycopg2, Requests, Pandas, NumPy, Surprise, LINE Messaging API SDK, OpenAI API
  • LINE Official Account (建立機器人帳戶)
  • LINE Developers (串接 Messaging API)
  • OpenAI (串接 ChatGPT API)
  • Render (Web Service, PostgreSQL)

Description

  • app.py: 程式主體,提供電影推薦和 ChatGPT 功能,並回覆 LINE 用戶的請求
  • dbpsql.py: PostgreSQL 資料庫的資料新增與查詢功能
  • weather.py: 天氣資訊 API 相關功能

Dataset & Model

  • Collaborative Filtering Recommendation using KNN and SVD
    • movies@0x1000_1M_compactify.csv: 電影特徵資料集,根據上映年份遞增排序的 62423 部電影與其特徵
    • knn_recommended_sorted.csv: 以 KNN 模型生成的電影推薦矩陣,包含與 3794 部電影各自高度相似的 50 部其他電影, 用於冷啟動 (Cold Start) 電影推薦
    • SVD++_best@0x1000_1M.pkl: 預訓練的 Surprise SVD++ 模型, 能預測指定用戶對任一電影的評分, 用於熱啟動 (Warm Start) 電影推薦

Reference

Authors

License

This project is licensed under the MIT License

About

具有電影推薦和 ChatGPT 功能的 LINE 聊天機器人。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages