Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LLMを型安全に使うTips
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
NakamuraTakumi
May 17, 2024
Programming
170
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.6k
Other Decks in Programming
See All in Programming
Domain-Driven Transformation
hschwentner
2
2.3k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
810
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
340
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
300
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
34k
phperだってパンチカードでコーディングしたい
o0h
PRO
0
370
Railsバージョンを4倍にした話
optim
0
500
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
180
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
610
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Documentation Writing (for coders)
carmenintech
77
5.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Mind Mapping
helmedeiros
1
400
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
A Tale of Four Properties
chriscoyier
163
24k
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!