# LINE AI聊天機器人 本文使用Python的requests模組向**Gemini**的API發送請求,以建成AI聊天機器人 * 功能 * 讀取文字:使用`Gemini pro` * 讀取圖片:使用`Gemini pro vision` * 缺點 * 因為LINE一次傳送只能傳送一則訊息,所以無法對傳送出去的圖片做描述 * 參考 * [LINE BOT 教學( Python ) - STEAM 教育學習網](https://steam.oxxostudio.tw/category/python/example/line-bot.html) * [Google Gemini 系列模型:最新LLM 模型的技術剖析與實作介紹](https://blog.infuseai.io/google-gemini-model-intro-a302d6ae87c3) * [Google官方說明文件](https://ai.google.dev/docs?hl=zh-tw) 以下將簡單介紹取得程式中引用之token的方法 ## 第一步:Google AI Studio > ⚠️本文撰寫時(2024/4/6)Gemini的API還是免費的,因此我沒有填任何付款資訊。未來若有變動應參考Google官方之說明! 前往[Google AI Studio](https://aistudio.google.com/) 在左側的選單中,點選第一個選項`get API key` 接著按`Create API key`,就會得到一組API key了 在程式中對應的就是 ```py gemini_api_key = os.environ['api_key'] ``` 你可以將`os.environ['api_key']`替換為你剛才取得的token,或者如果你會設置環境變數也行 ## 第二步:Line官方帳號之創建與取得Token > 我僅簡單介紹,詳細可參考[此文](https://steam.oxxostudio.tw/category/python/example/line-developer.html),原作者寫得很清楚(不過那篇文章不包含取得token的方式。原作者其實有寫,在[這篇](https://steam.oxxostudio.tw/category/python/example/line-webhook.html)) ### 一、進入Line Developer 網址在這 -> [連結](https://developers.line.biz/zh-hant/) ### 二、建立一個Provider 在左側選單中點選`provider`接著Create一個Provider > 如果你寫過Discord bot的話Provider應該就類似一個**Application** ### 三、建立一個Channel 在剛剛的Provider中Create一個Channel,記得選擇`Messaging API`  接著填好必要的資訊,就建立完成了! ### 四、Channel secret與Channel access token 建立好Channel之後你會進到他的Basic Settings  你可以在裡面取得Line ID,並用這個Line ID加入**官方帳號的好友** 往下滑就會看到`Channel secret了` 至於`Channel access token`要到Basic Settings隔壁的`Messaging API頁面`取得 ### 五、替換變數 仿照`gemini_api_key`的模式,將`Channel secret`與`Channel access token`在程式裡的變數替換掉即可(如果你會的話亦可使用環境變數) ## 第三步:Line官方帳號調整 首先前往[Line官方帳號管理頁面](https://tw.linebiz.com/login/) -> `登入管理頁面` 登入後選擇你剛建立的帳號,接著把自動回應模式關閉就完成了 這樣可以避免每次傳訊息時都會跳出Line的自動回應 ## 第四步:Webhook > 我自己是把這個程式部署到Vercel,所以如果你要在本機端測試,建議參考[這篇](https://steam.oxxostudio.tw/category/python/example/line-webhook.html)。我只教如何將連結綁進Line的官方帳號 總之回到剛剛的Channel頁面,選Basic Settings旁邊的Messaging API頁面,找到`Webhook Settings`然後貼上你的Flask伺服器網址,然後按`update`就可以儲存了 最後記得按一下`Verify`確認你的伺服器有無回應。 ## 補充:Vercel部署 > 等我有空再來把Vercel部署的教學寫完;D ## 結語 其實原理不會很難但是實作可能會遇到很多問題,如果你做的過程都沒遇到任何困難那恭喜,你應該是個天才:) 如果你只想要做在本機環境中測試一下,那麼其實這些程式碼加上那幾篇教學文章改一改其實很夠用了。但如果你想要將程式碼託管的話就需要用到**Vercel部署**或其他託管服務,我自己在過程中為了要部署上去爬了很多教學文章也跟AI搏鬥許久,最後才終於做成功。 另外,目前放的程式碼是不包含Vercel部署所需要的建置檔案的。如果你感興趣的話可以去查關鍵字`Vercel Flask部署`或者等我有空把他寫完。 總之這篇文章就先寫到這裡啦,感謝各位耐心讀完!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up