Skip to content

willismax/LLM-LINEBot-use-python-on-vercel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM-LINEBot-use-python-on-vercel

本專案已經採用OpenAI ChatGPT-3.5-tubo模型,並且針對教育情境優化,詳細描述於🤖 客製化你的AI教學助手-蘇格拉底引導教學法 (Customize Your AI Teaching Assistant - A Socratic Approach)

ChatGPT on Vercel (Pthon Flask ver.)

  • 這個教學可以直接Fork專案部署完成,開發時可以clone到本機,或跟筆者一樣嘗試在 GitHub Codespace 搞定一切。

如何使用?

  1. 註冊必要平台:包括 GitHubVercelOpenAI APILINE Developers

  2. 取得 OpenAI API token

  3. 建立 LINE Developer Channel,並取得 Channel SecretChannel Access Token

  4. 在 GitHub Fork 這個專案 -> 在 Vercel 建立專案 -> 輸入環境變數 -> 將 Vercel 的專案 Domain 網址綁定在 LINE Channel Webhook (vercel的專案網址/webhook)

  5. 加入LINE官方帳號,使用者對話將由 ChatGPT-3.5-tubo回應(LINE自動回應須關閉)。 詳細描述於部落格

QuickReply 功能

  • QuickReply 功能: QuickReply 功能允許用戶快速選擇預設的回應選項,提升使用者體驗。此功能在 api/index.py 中實現。

    QuickReply 功能的示例:

    questions = ["了解更多", "出2個練習題", "相關觀念", "關閉AI"]
    quick_reply_buttons = [
        QuickReplyButton(action=MessageAction(label=question, text=question))
        for question in questions
    ]
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(
            text=f"助教:{reply_msg}", 
            quick_reply=QuickReply(items=quick_reply_buttons)
        )
    )

客製化

  • 如果要客製化在其他應用,在api/prompt.py修改AI_GUIDELINES後提示文字即可,目前預設為教學用,提示詞為:
    AI_GUIDELINES = '你是一個AI助教,專門使用蘇格拉底教學法來回答學生的問題,如果有需要,會建議學生與老師進一步確認。'
    
    組合起來就是提示系統:messages: [{ role: "system", content: "你是一個AI助教,專門使用蘇格拉底教學法來回答學生的問題,如果有需要,會建議學生與老師進一步確認" }]
  • 請留意 Vercel 有處理超過10秒會Time Out的限制,太複雜可能會逾時。
  • QuickReply 選項修改: 在 api/index.py 中修改 questions 列表中的選項即可自定義 QuickReply 按鈕。
    questions = ["新選項1", "新選項2", "新選項3", "關閉AI"]
    quick_reply_buttons = [
        QuickReplyButton(action=MessageAction(label=question, text=question))
        for question in questions
    ]

成果展示

  • 出色的問答回應: 這個AI助手採用ChatGPT 3.5 Tubo,能在精確及速度獲得很好的平衡,即時地回應學生的問題。 出色回應

  • 問題過濾: 對於需要更深層次討論的問題,AI助手會提供適當的處理建議,協助老師過濾和分類問題,同時也啟發老師改進教學。 問題過濾

  • 引導學生思考: 透過蘇格拉底教學法,AI助手不僅回答問題,還能引導學生學會如何提問和解決問題。

    培養思考 成果展示 更多示例

顯示加載動畫

  • 加載動畫: 此功能允許LINE用戶界面使用提供的curl命令顯示加載動畫。動畫在處理消息之前觸發,向用戶提供其請求正在處理的視覺指示。

    啟動加載動畫的示例curl命令:

    curl -v -X POST https://api.line.me/v2/bot/chat/loading/start \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer {channel access token}' \
    -d '{
        "chatId": "U4af4980629...",
        "loadingSeconds": 5
    }'
    

About

做一個大型可擴充的AI大型語言模型

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages