Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloudflare Workers で OpenAI の LINE Chatbotを作ってみた
Search
koda
October 14, 2023
Programming
0
1.6k
Cloudflare Workers で OpenAI の LINE Chatbotを作ってみた
Cloudflare Workersに触ってみたので、実際にアプリを作ってみました
koda
October 14, 2023
Tweet
Share
More Decks by koda
See All by koda
Lambda___Hono_で_OpenAI_の_LINE_Chatbotを作ってみた.pdf
koda
0
110
DevFest 2020 Ja - GitLab Review Apps with GKE
koda
2
160
Knowledge作ったよ
koda
0
270
DevFest in Shinshu 2019 - Abount DevOps in GCP
koda
0
500
Kubernetes_Hands-on.pdf
koda
3
830
Docker hands on
koda
1
520
個人でWebサービスを開発する際のWeb技術紹介
koda
1
99
DAP+Dockerで簡単環境構築
koda
0
270
Other Decks in Programming
See All in Programming
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
1
140
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
2.8k
SwiftUI API Design Lessons
niw
1
290
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
3
470
趣味全開のAITuber開発
kokushin
0
200
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
3
3.7k
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
160
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
6.5k
Compose Hot Reload is here, stop re-launching your apps! (Android Makers 2025)
zsmb
1
520
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
160
ComposeでWebアプリを作る技術
tbsten
0
110
SEAL - Dive into the sea of search engines - Symfony Live Berlin 2025
alexanderschranz
1
140
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Agile that works and the tools we love
rasmusluckow
328
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
The Cult of Friendly URLs
andyhume
78
6.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Transcript
Cloudflare Workers で OpenAI の LINE Chatbotを作ってみた 2023-10-14 Koda Cloudflare
Meetup Nagano
Hello!! ❏ 「Web」とか「Cloud」が専門のエンジニア ❏ アジャイル大好きなスクラムマスター ❏ プログラミングも大好き ❏ 各種クラウド系の技術コミュニティに参加 I’m
Koda
Chat GPTしてますか? • 無料だと3時間ごとに25メッセージ まで • Googleアカウントでサインアップし てしまったのでアカウント共有もで きない •
息子くんに、対話型AIなどに触れて 上手く使えるようにしたい(でも、もう一 個契約するのもな〜)
? OpenAIのAPIを呼び出す インタフェースを作って 提供しよう!
LINE Chatbotで提供 • 息子くんのスマートフォンは利用時間の制限 をかけている(中学生なので) • LINEは無制限にしている • ウェブサイトで提供も考えたがブラウザを無 制限にするのは、、、、
• チャットボットで提供すると制限とか考えな くて良い 完成イメージ
とはいっても、忙しいし 作っている暇はないなぁ、、、 (言い訳)
Cloudflare Workersワークショップ ServerlessDays Tokyo 2023に参加 https://tokyo.serverlessdays.io/ Day2のワークショップで Cloudflare Workers +
Honoに触った そんなある日
こんなに簡単なら、ちょっと 作ってみるか!! →半日くらいでできました!
技術スタック • Cloudflare Workers ◦ エッジでバックエンドを動かせるサービス ◦ 超速&超お安い(無料でかなり遊べる) • Hono
◦ Cloudflare Workersでバックエンドを開発しやすくしてくれるExpressに似たフレーム ワーク • TypeScript ◦ npm create hono@latest {projectname} で雛形を作成すると、初めからTypeScript が使える環境になっている • OpenAI API • Line Messaging API https://github.com/koda-masaru/chat-bot <作成したコード一式>
Demo
作ってみての感想 • デプロイが一瞬で終わって直ぐに反映されるのは、開発者体験としてはか なり良い! • 環境の用意なども簡単なので、ちょっとしたものをサクッと作るにはとて も良さげ • Honoがすごく良かった ◦
Expressを知っていれば苦労しない ◦ APIGateway+Lambdaな環境など、いろんな所で使えるので、今後は Honoメインで使っていきたい
• Node.jsに完全に互換の環境ではないため、@line/bot-sdkが使えなかった ◦ LINE APIをコールする部分は自前で実装 • 処理途中の Canceled の原因特定に時間がかかった(c.executionCtx.waitUntilを使う) ◦
waitUntilで実行しても処理がキャンセルされてしまう ◦ BundledモデルではCPUの利用時間が50ミリ秒以内 ▪ 外部APIを呼び出す時間は含まれないという記載もあったが途中でabortしてしまう ◦ Unboundモデル(有料プラン)では30秒実行可能だが外部への通信時間を含む ▪ 外部のAPIに依存している場合、30秒で終わることを保証できない ◦ WorkersのQueueで処理すれば良いのか? ▪ Queueも30秒でタイムアウトしてしまうという記載があるので変更しても意味はなさそう 作ってみての感想
癖はあるけど 面白い
Any Questions? Thanks!