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
LLMを型安全に使うTips
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
NakamuraTakumi
May 17, 2024
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLMを型安全に使うTips
#TSKaigi_学生LT
TypeScriptでOpenAIのGPTなどのLLMを、型安全に扱うための手法を紹介します
NakamuraTakumi
May 17, 2024
More Decks by NakamuraTakumi
See All by NakamuraTakumi
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
8
1.5k
Other Decks in Programming
See All in Programming
プロポーザルを書いてもらう
pvcresin
0
560
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
330
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.9k
Google Apps Script で Ruby を動かす
kawahara
0
280
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
210
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
240
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
190
Android CLI
fornewid
0
230
テーブルをDELETEした
yuzneri
0
150
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
440
Building a Meta Ray-Ban display app
akkeylab
0
170
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Are puppies a ranking factor?
jonoalderson
2
3.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
450
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
300
Faster Mobile Websites
deanohume
310
32k
RailsConf 2023
tenderlove
30
1.5k
sira's awesome portfolio website redesign presentation
elsirapls
0
330
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
Transcript
Takumi Nakamura (@nyatinte) 2024/5/17 #TSKaigi_学生LT LLMを型安全に使う Tips
About Me GitHub: nyatinte X: nyatinte にゃちんてと読みます Takumi Nakamura (@nyatinte)
(にゃちんて) 横浜市立大学データサイエンス学部4年 フリーランスでWebエンジニアをやっています 最近は生成AIのスタートアップで働いています TypeScript歴3年目突入 TSKaigiにも参加していました!
LLM + TypeScriptで アプリを作りたい
TypeScriptについて 教えて TypeScriptは JavaScriptの… かしこまりました。 TypeScriptは… 出力の不安定さ ユーザー LLM
私5月11日にTSKaigiというTypeScriptのカン ファレンスに参加しました。 TypeScriptに関するノウハウを得ることが でき、とても有意義な時間を過ごすできまし た。 また、参加者の人々と交流することで、モ チベーションが高めることができました。 LLMを使った擬似アプリをTSで実装したい 「LLMを利用した日本語添削ツール」 添削
型変換 誤字を含む日本語文章
Level1 工夫なしで実装する
None
型と出力フォーマットの差が 生じた時に気付けない 型アサーション(as)
Level2 TypeChat
None
Zodスキーマでレスポンスを定義 ↑を解析し、型の文字列に レスポンスのバリデーション失敗 時に、自動でリトライ
Zod スキーマ宣言とバリデーション
送信されるプロンプト
送信されるプロンプト Zodスキーマの 情報が含まれる
TypeChatの限界 変換タスクに特化している 型に変換はできるが、文章の校閲までは行えない OpenAIとAzure OpenAIのサポートはあるが、他のLLMのサポートは微妙 createFetchLanguageModelを使えば実現はできるが、型付きSDKの恩恵 を受けられない AnthropicのClaude3 Opusなどの強力なモデルが登場しているので痛い
出典: Chatbot Arena Leaderboard(2024/05/14) https://chat.lmsys.org/
Level3
求められる機能 型と出力フォーマットは常に一致する LLMの出力はバリデーションされ、安全に扱える リトライ機能 特定のLLMに依存しない 変換タスク以外もこなすことができる
型と出力フォーマットを一致させる
zod-to-ts Zodスキーマでレスポンスを定義 スキーマが文字列に変換される
None
型と出力フォーマットの 一致 リトライ機構 レスポンスの バリデーション
求められる機能 型と出力フォーマットは常に一致する → zod-to-ts LLMの出力はバリデーションされ、安全に扱える → zod リトライ機能 → ts-retryなど
特定のLLMに依存しない → OK 変換タスク以外もこなすことができる → OK
Thank you for listening!