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
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloudflare Workers で OpenAI の LINE Chatbotを作ってみた
Cloudflare Workersに触ってみたので、実際にアプリを作ってみました
koda
October 14, 2023
More Decks by koda
See All by koda
Lambda___Hono_で_OpenAI_の_LINE_Chatbotを作ってみた.pdf
koda
0
160
DevFest 2020 Ja - GitLab Review Apps with GKE
koda
2
210
Knowledge作ったよ
koda
0
350
DevFest in Shinshu 2019 - Abount DevOps in GCP
koda
0
560
Kubernetes_Hands-on.pdf
koda
3
910
Docker hands on
koda
1
580
個人でWebサービスを開発する際のWeb技術紹介
koda
1
150
DAP+Dockerで簡単環境構築
koda
0
310
Other Decks in Programming
See All in Programming
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.3k
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
100
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.4k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
360
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
350
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
480
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
180
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.3k
どこまでゆるくて許されるのか
tk3fftk
0
470
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
自作OSでスライド発表する
uyuki234
1
3.8k
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
220
ラッコキーワード サービス紹介資料
rakko
1
3.9M
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Designing for Timeless Needs
cassininazir
1
310
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
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!