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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
NakamuraTakumi
May 17, 2024
Programming
0
140
LLMを型安全に使うTips
#TSKaigi_学生LT
TypeScriptでOpenAIのGPTなどのLLMを、型安全に扱うための手法を紹介します
NakamuraTakumi
May 17, 2024
Tweet
Share
More Decks by NakamuraTakumi
See All by NakamuraTakumi
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
8
1.4k
Other Decks in Programming
See All in Programming
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
260
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
100
Ruby and LLM Ecosystem 2nd
koic
1
1.4k
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
130
OTP を自動で入力する裏技
megabitsenmzq
0
130
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
130
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
270
Rethinking API Platform Filters
vinceamstoutz
0
2.9k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.1k
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
310
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
410
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
440
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
BBQ
matthewcrist
89
10k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
230
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
660
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Exploring anti-patterns in Rails
aemeredith
2
300
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
300
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
93
The Curse of the Amulet
leimatthew05
1
11k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
Being A Developer After 40
akosma
91
590k
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!