Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

專題研究期末報告 學習小幫手LineBot - Sad Frog

  1. 提案動機 傳統學習方式往往以一對多的形式進行,既難以滿足每位學生個性化需求,也常浪費時間在等待和非效率的學習任務上。此外,傳統學習方式常局限在特定的時間和地點參加課堂,無法靈活安排學習時間和地點。 隨著科技發展,教育的方式應該與時俱進,學生的學習方式也應該隨著改變。我的提案動機是開發一個能夠透過LineBot與OpenAI整合的系統,旨在提升學生的學習效率和便利性。現代學生面對大量資訊和學習內容,極需要一個智能化的工具來幫助他們更有效地學習和理解知識。我想,結合OpenAI之後的學習方式,或許能夠擦出不一樣的火花。

  2. 專題構想 綜上情境,我的專題構想是建立一個名為「學習小幫手LineBot – Sad Frog」的系統。這個LineBot將整合OpenAI的能力,借用OpenAI强大的算力,通過LineBot為媒介實現學習的便利。 其中,此系統不僅能處理對自然語言和圖片的理解和生成,以及其他AI功能,例如摘要生成、翻譯、文字轉語音、文字轉圖片、隨機出題和評分、推薦資源、頭腦風暴、問題反思、推薦資源等。學生可以通過這個LineBot快速查找資訊、獲取答案,並且自定義功能以滿足其學習需求。 比起傳統的學習方式,我希望這個系統能夠根據每位學生提供個性化的學習支持,學生能夠通過LineBot及時獲得問題解答、反饋和補充資料,LineBot也可以提供文字、語音、圖片等多種形式的學習資源和互動方式,豐富了學習的多樣性。

  3. 預期目標 從整體的架構來看,需要完成下列各項: a) 實現基本的LineBot功能,包括接收用戶輸入、呈現選項、執行選擇的功能操作。 b) 整合OpenAI API,以實現自然語言處理的功能,例如問答、摘要生成等。 c) 系統與後端Firebase資料庫的連接,使LineBot有記憶功能 d) 提升用戶體驗,確保系統操作簡單直觀,並能快速回應用戶需求。 欲實現的功能如下,使用者可以通過LineBot進行:文字輸入、圖片輸入、其他功能 a) 文字輸入:可以進行問答、抓重點、翻譯、轉語音、轉圖片的功能 b) 圖片輸入:可以進行問答、抓重點、考考我的功能 c) 其他功能:可以推薦學習資源、頭腦風暴、問題反思、設定作業截止日期

  4. 實作工具 a) 開發工具:PyCharm, Ngrok, OpenAI, LineDevelopers (LineBot), Firebase b) 程式碼内部: • LineBot開發所需的程式碼和設置 • OpenAI API的使用方法和授權密鑰 • 學習資源和測試數據集,用於系統功能的驗證和優化

  5. 實作方式 a) 基本環境準備: 分別注冊OpenAI、LineDevelopers (LineBot)、Firebase (資料庫)、Ngrok (代理server),取得:OPENAI_API_KEY LINE_BOT_TOKEN LINE_BOT_SECRET FIREBASE_CREDENTIALS FIREBASE_URL 設置好基本的開發環境,就可以開始準備開發。其中,設置Ngrok的作用特爲重要,Ngrok作爲代理server,可以將本機環境對應到一個Ngrok網址,公開在網際網路中,由於是公開網址,就能在外界進行測試和開發。 b) 實現邏輯:

• 使用者輸入處理:接收使用者的輸入文本或圖片,其中可能是問題、需求或其他互動指令。 • 文本暫存和處理:將使用者的輸入文本或圖片暫存起來,以便後續進行不同的功能操作。 • 選項展示和選擇:使用CarouselTemplate展示多個選項給使用者,每個選項對應不同的功能,如問答、出題、摘要、翻譯等。 • 功能執行:根據使用者的選擇,執行相應的功能操作。 • 結果展示:將處理後的結果以文字、圖像或語音的形式返回給使用者,以完成所選擇的功能需求。 • 互動和迭代:在適當的情況下,可能需要迭代互動,允許使用者再次輸入或進行其他功能選擇,以進一步增強使用者體驗和學習效果。 • 其他功能:使用者還可以通過ButtonTemplate選擇其他功能,比如推薦學習資源、頭腦風暴、問題反思、設定截止日期。

c) 程式碼:https://github.com/Chingyong0905/LineBot_Project_Sad_Frog

d) 架構圖:

  1. 實作成果 Demo影片: https://youtu.be/roUl2LFqX0I?si=Os0neMjxHxfsmGcj

功能截圖: 使用者操作/選擇功能 説明 結果 選擇“功能查詢” 輸入@sadfrog,出現buttontemplate,選擇 文字輸入:“作業系統 page fault” LineBot回應,要如何處理有關文字,分別由六個選項 文字輸入:“作業系統 page fault” -選擇“回答我” LineBot回應系統對於Page fault的理解 文字輸入:“作業系統 page fault” -選擇“抓重點” LineBot回應對於Page fault的重點整理 文字輸入:“小明走在路上滑到了,他哭了” -選擇“翻譯” LineBot回應對於句子的翻譯 文字輸入:“小明走在路上滑到了,他哭了” -選擇“念出來” LineBot把句子念出來 文字輸入:“小明走在路上滑到了,他哭了” -選擇“轉圖片” LineBot把句子轉換成圖片輸出 圖片輸入:“資料庫系統課本的某張圖” LineBot回應,要如何處理有關圖片,分別由六個選項 圖片輸入:“資料庫系統課本的某張圖” -選擇“我想知道” LineBot回應對於圖片的理解 圖片輸入:“資料庫系統課本的某張圖” -選擇“抓重點” LineBot回應對於圖片的重點

圖片輸入:“熱傳學中球坐標系下的熱傳導公式” LineBot回應,要如何處理有關圖片,分別由六個選項 圖片輸入:“熱傳學中球坐標系下的熱傳導公式”

-選擇“回答我” LineBot針對圖片的問題做回答 圖片輸入:“熱傳學中球坐標系下的熱傳導公式”

-選擇“考考我”

接著文字輸入:“@回答[使用者的答案]” LineBot針對圖片的内容,隨機出題考使用者,并通過使用者回答,評估正確與否 圖片輸入:“熱傳學中球坐標系下的熱傳導公式”

-選擇“不處理” 系統刪除本機的有關圖片,節省空間 選擇“探索其他功能” LineBot回應,有關其他功能的四個選項 選擇“推薦資源” 文字輸入:“@推薦資源 資料庫系統” 點擊button,LineBot輸出功能介紹 使用者輸入正確格式后=之後,LineBot輸出有關學習資源
選擇“頭腦風暴” 文字輸入:“@頭腦風暴 AI對於脚踏車騎士的影響” 點擊button,LineBot輸出功能介紹 使用者輸入正確格式后=之後,LineBot輸出有關結果 選擇“問題反思” 文字輸入:“@問題反思如何改善台南交通” 點擊button,LineBot輸出功能介紹 使用者輸入正確格式后=之後,LineBot輸出有關結果 選擇“截止日期” 文字輸入:“@截止日期 2024-06-30 12:38 完成期末專題” 點擊button,LineBot輸出功能介紹 使用者輸入正確格式后=之後,LineBot在指定時間發出提醒

  1. 遇到的問題與改進 a) 一開始我想要通過tesseract的功能去對圖片的文字進行識別,這導致許多問題,且成果效率不佳,我並沒有善用OpenAI的新功能。後來和助教開會討論之後,助教給了我方向以及許多資源,我才能順利進入後續的測試。 b) 我剛開始使用Google Cloud Function這個平台進行測試和Debug,但是缺點真的太多了,界面對新手不太友善,而且光是部署程式碼就要花費許多時間,但是我那時候沒有找到其他方式測試程式碼,導致在GCF上面花了非常非常多的時間。後來接觸了ngrok,才讓我後續的測試和開發一帆風順。 c) 由於沒有提早規劃完善應該提供使用者怎樣的功能,只能在一邊開發過程中一邊思考,這導致有些程式碼需要重新寫過,我認爲下次需要提早規劃好需要完成的功能,以使用者的角度去看待自己的系統,思考如何才能夠產生價值。
  2. 未來展望 對於本次專題,其實還有非常多的方面可以拓展。作爲一個面向學生群體的系統,學生的需求經常是非常多樣化的,隨著科技進步飛速,有關功能也應該定期進行更新或淘汰。 此外,對於LineBot的設計也還有提升的空間,讓整體界面更加美觀整潔,易懂易上手。另外,目前此版本由於還在測試與開發階段,僅通過ngrok產生臨時網站來使用,實際仍未部署到server上,故LineBot無法24小時都在使用。這也是未來可以改進的地方。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages