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
Staiinlessの紹介
Search
karasu
June 01, 2025
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Staiinlessの紹介
karasu
June 01, 2025
More Decks by karasu
See All by karasu
Streamsyncの紹介(streamlitの代替になるのか?)
seiyeah78
0
470
Other Decks in Technology
See All in Technology
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
1
150
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
800
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
560
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
220
The seven pitfalls of AI (revised version)
ufried
0
170
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
250
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
290
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
140
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
0
100
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
560
猫でもわかるKiro Web
kentapapa
1
160
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Building AI with AI
inesmontani
PRO
1
1.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
A Soul's Torment
seathinner
8
3.7k
The SEO Collaboration Effect
kristinabergwall1
1
580
Thoughts on Productivity
jonyablonski
76
5.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
540
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
Speed Design
sergeychernyshev
33
2.1k
Producing Creativity
orderedlist
PRO
348
41k
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
Building Adaptive Systems
keathley
44
3.2k
Transcript
AI SDKの開発を楽にしよう Stainlessの紹介 2025.4.3 大内聖也 株式会社ディー・エヌ・エー + GO株式会社
AI 目次 • APIとクライアント開発 ◦ スキーマ駆動開発とOpenAPI • Stainlessについて ◦ 特徴・使い方とか
• Demo(できたら) • 良かった点・惜しいなと思う点 • まとめ
AI API開発: よくある形 • REST API: 4原則を守って開発されたAPI ▪ 統一インターフェース •
統一的に決められたルールに則る(GET, PUT, POST, DELETE) ▪ アドレス可能性 • URIを通してリソースを一意的に表現できること ▪ 接続性 • 別のリソースへの遷移が可能である ▪ ステートレス性 • 状態を保持せず、各APIごとに独立している • 例 ◦ GET example.com/users => usersの一覧を取得する ◦ POST example.com/users => usersのリソースを新規作成する ◦ PUT(PATCH) example.com/users/1 => usersでid = 1のリソースを更新する ◦ DELETE eample.com/users/1 => usersでid=1のリソースを削除する • ユースケース ◦ サーバ・クライアントが密( APIはinternalで公開しない = 利用者側が限定される) ◦ クライアントとAPI開発が同じチーム
AI API開発: よくある形 • GraphQL ◦ APIに対してクエリ言語を提供することで必要なリソースを得ることができる ▪ REST APIと違い(極端に言えば)1つのリソースで1つのURLでOK
• そこにクエリする(usersのidとtitleの一覧ください、みたいな) ◦ 柔軟性がありクライアント側で必要な項目やリソースを選択可能 ◦ 専用のGraphQLサーバ・専用のクライアントを用意する ▪ サーバは同時にアグリゲーションの役割をこれ一つで果たす • BFFやユニバーサルBFFという位置づけとも見れる ◦ REST APIと違いセキュリティをちゃんと考える必要あり • 例 ◦
AI スキーマ駆動開発 • 殆どの場合、APIの定義書を作る = それが正となる ◦ 例: OpenAPI •
定義書をベースにAPIやクライアントの型など、雛形の生成を行いそれを用いてクライアン トやAPIのロジックを作り込んでいく ◦ 雛形が統一的に生成できるので、実装の漏れが発生しにくい ◦ => これをスキーマ駆動開発という • OpenAPIだと専用のジェネレータで、定義書のjsonやyamlからいい感じにやってくれる ◦ openapi-generator(多言語対応) ◦ openapi-ts(TypeScript特化) • 例 ◦ フロントエンド ▪ TypeScriptとfetch(or Axios)でクライアントを生成 ◦ バックエンド ▪ Golangで各エンドポイント、リクエスト・レスポンスの型(struct)を生成 ▪ PythonとFastAPIで...
AI 多言語対応させるのは大変 • 作る以外にもやることは多い ◦ バージョン管理(タグとか) ◦ staging→productionリリース(それ必要??) ▪ CD/CI環境
▪ 配布方法(pythonならpip install ….とか) ◦ 専用の開発環境 ◦ などなど。。。。 • 多言語に対応する場合、それだけ用意・保守していかないといけなくなる ◦ APIとして外部への提供を行っているサービスならなおさら ◦ 注力すべきなのはドメイン、それ以外に開発コストを割くのはもったいない => stainlessを使ってちょっと楽しましょう
AI Stainless • API仕様(OpenAPIなど)を元にして、高品質なSDKを自動生成するサービス ◦ 元Stripe(決済サービス)の方が立ち上げた • 利用企業 ◦ CloudFlare
◦ Open AI : openai-python はこれで作っている ▪ 他、いろんな企業が使っていて実績も多そう • イメージ •
AI 特徴 特徴 内容 自動コード生成 OpenAPI等、複数言語のSDKを自動生成 メンテナンス性 コードがクリーンに保たれ、手動メンテのコストが削減 強力な型サポート 厳格な型定義を自動で生成
CI/CD統合 GitHub ActionsなどのCIと連携して、API更新時に自動で SDKをリリース可能 バージョニング管理 APIバージョン別にSDKを分けて出力可能 手動追加 手動で独自のコードも追加できる
AI WEB IDE • WEB上で統合された開発環境が提供されており、ローカルでの開発環境は基本不要 •
AI 目次 DEMO
AI 良かった点 • 言語独自仕様によるギャップの吸収 ◦ 例: GO言語ではゼロ値という値を与えず初期化するとデフォルト値が入る ▪ bool: false
▪ int: 0 ▪ string: “”(空文字) ◦ boolであれば、falseを実際セットしたのかセットせず初期化されたのか不明 ▪ これを検知できる仕組みが必要 • パッケージ管理システムも対応 ◦ pyplやnpmパッケージのpublishまで行ってくれるのは便利 ◦
AI 惜しいなという点 • 完全にプライベートにするのはできない? ◦ stagingで作成されるSDKのリポジトリがstainless-sdksというorganization ◦ Stainless側に管理されている可能性 ◦ 気になる人や企業は気になってしまうかも
• Open APIのdocだけでできると思ったら、違った ◦ stainless-configという専用の設定ファイル(yaml)が必要 ◦ doc読んで、stainless独自の設定になれる必要あり ▪ 充実してるので読み込んでいけばそこまで難しくなさそう
AI まとめ • SDK開発サービスStainlessの紹介 • クライアント開発の多言語化の難しさ・大変さとその解消 • Open API(REST API)との相性はかなり良さそう
• 開発環境は提供してくれるので、簡単に始められるのは良いなと思います