12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

さくらのAI使ってレストランLINE Bot作ってみた

12
Last updated at Posted at 2025-09-25

11/5(金)、さくらインターネット亀田さんとハンズオンイベントやります!是非ご参加下さい!
さくらのAI Engineハンズオン
https://linedevelopercommunity.connpass.com/event/372276/

24207_0.jpg

日頃よりお世話になっており、先日さくらインターネットに転職された亀田さんが面白そうなPostをされていました。

気になりましたので、架空のレストランの情報を返してくれるLINE Botを作成してみました。めちゃくちゃ簡単に出来ましたので、手順をメモがてら残しておきます!

準備

公式にわかりやすく解説されてますので困ることはないかと思います。

image.png

会員登録のうえ、こちらにアクセスします。

お試しなら基盤無償プランでよいかと思います。契約するをクリック

image.png

左側のメニューからアカウントトークンをクリックし、適当に名前をつけて作成。作成されたトークンが表示されるのでどこかに控えておいて下さい。

貼り付けた画像_2025_09_25_15_54.png

疎通確認

手順も公式が詳しいので簡単に説明します。

ターミナル等を開き、発行されたトークンを以下のコマンドで検証しましょう。トークンは入れ替えて下さい。

curl --location 'https://api.ai.sakura.ad.jp/v1/chat/completions' \
     --header 'Authorization: Bearer <YOUR_TOKEN>' \
     --header 'Content-Type: application/json' \
     --data '{
       "model": "gpt-oss-120b",
       "messages": [
         {
           "role": "system",
           "content": "こんにちは!"
         }
       ],
       "temperature": 0.7,
       "max_tokens": 200,
       "stream": false
     }' | jq

問題なければ以下のような結果が返却されます。疎通確認が出来ました。

image.png

LINE Bot編

公式アカウント作成とMessaging APIの有効化

公式ガイド等を参照し公式アカウントを作成、Messaging APIを有効化して下さい。

この後チャネルアクセストークンが必要になりますので、こちらも控えておいて下さい。作成したチャネルのMessaging API設定タブの最下部にあります。

Bot開通まで

Messaging APIが有効化されましたので、バックエンドをMake.comを利用して作っていきます。アカウントをお持ちでない方は作成して下さい。

本記事では試用のため署名の検証をしていませんが、運用の際は必ず署名の検証を行って下さい。
https://developers.line.biz/ja/docs/messaging-api/receiving-messages/#verify-signature

新しいシナリオを作成します。

貼り付けた画像_2025_09_25_16_04.png

起点となるモジュールの作成を促されますので、LINEを選択、Watch Eventsを選択して下さい。WebhookとConnectionの設定が必要なので、控えておいたチャネルアクセストークンを利用して設定して下さい。

貼り付けた画像_2025_09_25_16_06.png

終わるとこのモジュールにイベントを飛ばすためのURLが表示されますのでコピーして下さい。

貼り付けた画像_2025_09_25_16_12.png

LINEの管理画面に戻り、Webhook URLの欄に設定、Webhookの利用を有効にして下さい。

貼り付けた画像_2025_09_25_16_13.png

続いて起点モジュールの右側の+をクリックし、LINE > Send a reply messageを選択します。

貼り付けた画像_2025_09_25_16_15.png

貼り付けた画像_2025_09_25_16_15.png

設定ダイアログが出てくるので、以下の様に設定します。

貼り付けた画像_2025_09_25_16_18.png

下部のRun Onceをクリックします。シナリオが応答待機状態になります。

貼り付けた画像_2025_09_25_16_21.png

Botに話しかけてみて下さい。ここまで問題なく設定できていれば、設定したテキストが返答されるようになっています。

24206_0.jpg

さくらのAIとの接続

では先程開通を確認したさくらのAIと、このBotをつなげましょう。

モジュールを繋いでいる線を右クリックし、Add ModuleからHTTP > Make a requestを選択します。

image.png

image.png

モジュールが作成されたら以下の様に設定して下さい。ラベルになっているところはクリックで選択です。また、トークンは入れ替えて下さい。上部の疎通確認した時のコマンドからコピペが楽です。

貼り付けた画像_2025_09_25_16_26.png

image.png

続いて、終端のモジュールの返答も変更しましょう。

貼り付けた画像_2025_09_25_16_29.png

これでイベント受取と返答の間にさくらのAIによる処理が入り、LLMとの対話が出来るようになりました。テストしておいて下さい。

24205_0.jpg

RAG用の架空レストラン情報の作成

今回は架空のレストランの情報を教えてくれるBotを作成するので、そのために必要なPDFを生成AIで作成します。

お好きな方法で良いかと思いますが、私はClaude Desktopで作成し、HTMLをダウンロード、ブラウザで印刷 > PDFとして保存しました。

貼り付けた画像_2025_09_25_16_38.png

RAGの組み込み

ではこちらのPDFを利用して、RAGでLLMでは難しい情報の返答を出来るようにしていきましょう。

こちらも公式ガイドが詳しいので簡単に記載します。

ドキュメントをアップロードすると、少額ですが課金が発生します。ご了承の上お進み下さい。

まずはコマンドで画像をアップロードします。

Users/sho.tachibana $ curl --request POST \
     --url 'https://api.ai.sakura.ad.jp/v1/documents/upload/' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
     --header 'Content-Type: multipart/form-data' \
     --form 'file=@/Users/sho.tachibana/Downloads/bistro.pdf'


{"id":"XXXXXXXX-XXXXXXX-XXXXXX-XXXXXX-XXXXX","status":"pending","content":"","name":"bistro.pdf","tags":[],"model":"multilingual-e5-large"}%

終われば管理画面から確認出来るようになっています。高度な検索からテストも出来ます。なお、RAGは別途設定等せずとも、プロジェクトにアップロードした時点で有効になる模様です。

image.png

image.png

コマンドでも動かしてみます。

Users/sho.tachibana $ curl --request POST \
  --url https://api.ai.sakura.ad.jp/v1/documents/chat/ \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "multilingual-e5-large",
    "chat_model": "gpt-oss-120b",
    "query": "ビストロ・ソレイユのオープン記念キャンペーンってある?",
    "top_k": 3,
    "threshold": 0.3
  }'


{"answer":"はい、ビストロ‧ソレイユではグランドオープン記念キャンペーンがあります。 ・・・

問題ないですね。

ではMakeにも反映させましょう。HTTPのモジュールの内容を変更します。

貼り付けた画像_2025_09_25_16_43.png

貼り付けた画像_2025_09_25_16_44.png

返答も変更しましょう。

※ モジュールの番号が環境によって異なるかもしれません。適宜変更して下さい。

貼り付けた画像_2025_09_25_16_45.png

レストランに関連する質問をしてみて下さい。適切な返答が返ってきます。

24207_0.jpg

まとめ

詰まる所もなく、30分くらいで簡単にAI + RAGまで入ったLINE Botを開発出来ました!
国産プラットフォームであり、ドキュメント、管理画面もよく作られており、今後が楽しみです。

皆様も是非お試し下さい。

続編

ちょっとだけコミュニティ宣伝

LINE Developer CommunityではLINEや生成AI、クラウド等の情報が日々アウトプットされております。

皆様によるさくらのAI × LINE Botのノウハウはもちろん、LINEやチャットボットに関する知見のアウトプットを心よりお待ちしております。

イベント情報
勉強会アーカイブ他動画コンテンツ

12
5
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
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?