1
0

初めてLINEAPIを使用してLINEとGeminiを繋げてみた

Posted at

この記事ではLINEAPI初心者の僕が実際にLINEのメッセージをGemini proに通した出力を返信できるLINEbotを制作した話をつらつら書いてきます〜最後にコードも置いときます〜

ここはこうしたほうが良かった?みたいなのは気軽にコメントしてね〜

LINE と Gemini 連携の始め方

1. LINEのbotアカウントを制作する

LINE Developers のサイトからコンソールにログインしてぺぺぺっとLINE の bot アカウントを制作します。

このページを参考にuserがメッセージを送信する公式アカウントを作成しましょう!

2. callback用のドメインを用意する

この部分で躓いた。。。
アカウントを制作するとWebhook URLという一般公開されたドメインを作らないといけない、用意しないといけません。
スクリーンショット 2023-12-26 10.41.43.png
この黒塗りの部分にドメインを記載しないといけない。僕はサービスとしてではなく、なんとなく開発をしたいのでlocalhostでいいんだけど!!!←ダメでした笑
ということで今回はlocalhost5000番をドメイン化して一般公開できるアプリngrokを使いました。このアプリはlocalhostと公開ドメインをトンネルで繋ぐアプリだと感じています。このアプリをダウンロードしてSetup&Installationの項目を見ながらセットアップしましょう!
私はMacですのでbrewからngrokを使用できるようにしました〜↓↓↓

Install ngrok via Homebrew with the following command:

$ brew install ngrok/ngrok/ngrok

Run the following command to add your authtoken to the default ngrok.yml >configuration file.

$ ngrok config add-authtoken YOUR_TOKEN

deploy your app(5000portを指定)

ngrok http 5000

これを実行することでlocalhost:5000をドメイン化して取得できるという優れもの!!free planでも最初は問題なし
実際にngrok http 5000を実行すると
スクリーンショット 2023-12-26 11.07.09.png
ここに書かれているurlがlocalhost:5000番に対応するドメインになりますが私はここでlocalhost:5001番を使用しているので画面には5001と表示されております。
本当は127.0.0.1:5000localhost:5000に対応しているはずなのに127.0.0.1:5000を立ち上げてもlocalhost:5000にアクセス拒否されるというよくわからん現象に陥り、1日ぐらい無駄にしていました。いまだに原因がよくわかってないのでこれじゃね?見たいのあったら教えていただけると嬉しいです。

lsof -i :5000  

これ実行したら何個かlistenになってたから5000番を何かで使ってるのかな〜と思ったけど詳細はよくわからず。。

話は戻って、うまくいけばここのurlに/callbackを追加したものをWebhook URLに追加してverifyしましょう!

3. GeminiとLineを繋ぐPythonスクリプトを書こう

Gemini と Line を繋ぐ Python スクリプトを作成します。

  • まずはLINEで送信したメッセージをそのまま返信できるという機能を実装してみましょう
    ここができていないとGeminiに情報が正しく送信されているかを確認できないんでね
    LINEスタートキットとして公式から公開されているんでこれを使いましょう!自分はpythonで実装したのでこれのReadme参考にオウム返しbotを実装!!

  • GeminiAPIキーを発行してGeminiの出力を引っ張ってこよう!
    ここまでできたらもう少しだ意外とgeminiの出力を持ってくるのは簡単で

import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
def get_gemini_response(prompt):
    # GeminiのAPIのバージョンを指定
    model = genai.GenerativeModel('gemini-pro')
    response = model.generate_content(f"{prompt}")
    return response

これで取って来れちゃう

4. 実際に動かしてみよう!

作成した Python スクリプトを実行して、実際に動作を確認します。
ソースコード
このreadmeから自分のAPIキーを入れて実行してみましょう!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0