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
Azure OpenAIサービスでChatGPTをC#で使ってみる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tomokusaba
April 22, 2023
Programming
1.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azure OpenAIサービスでChatGPTをC#で使ってみる
.NETラボ勉強会2023年4月
Azure OpenAIサービスでChatGPTをC#で使ってみる
tomokusaba
April 22, 2023
More Decks by tomokusaba
See All by tomokusaba
Azure Copilot Resiliency Agentをいろいろ試してみる
tomokusaba
0
130
30代後半からでも遅くないキャリア形成
tomokusaba
0
300
GitHub Copilotで書いたコード、レビューはどうしてる?
tomokusaba
0
60
Azure CAFで考えるAIエージェント導入の進め方
tomokusaba
1
120
GitHub Copilot app時代の開発フロー
tomokusaba
0
83
オートマトンと字句解析でRoslynを読む
tomokusaba
0
180
GitHub Copilot appとGitHub Copilot CLIとVS CodeのCopilot Chat Agent Modeの使い分け
tomokusaba
0
230
GitHub Copilot app最速の発信の裏側
tomokusaba
1
600
自宅サーバの変遷
tomokusaba
0
940
Other Decks in Programming
See All in Programming
速習iPhone Duo対応
yuukiw00w
2
860
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
210
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
AHC070解法紹介
eijirou
0
140
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
910
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
200
iOSDC2026登壇資料.pdf
riofujimon
0
200
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
160
App Intentsのビルドプロセスを支える技術
kntkymt
0
460
MCP Appsでつくるチャット駆動な地図アプリ
nakamori1024
0
110
一人だけ、Kiroが静止する日
hideg
0
130
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
Building AI with AI
inesmontani
PRO
1
1.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Six Lessons from altMBA
skipperchong
29
4.5k
A better future with KSS
kneath
240
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Azure OpenAIサービスで ChatGPTをC#で使ってみる 株式会社SAKURUG エンジニアリングユニット 草場 友光 .NETラボ 2023年4月
自己紹介 • 普段は主にシステムをAzureにモダナ イズする仕事をしています。 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2023 Microsoft
MVP (Developer Technologies) • tomo_kusaba
宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。
注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • #dotnetlabでtweetすると右側に表示されます
今日の目的 • Azure OpenAIサービスでChat GPT(gpt-35-turbo)がプレビュー になっています。このモデルについてC#で使用する方法につい て解説します。 • GTP-4についても同様の方法で使用できますのでデモを行いま す。
• APIが今後も変更になる可能性がありますのでドキュメントや 実装から読み取りアプリケーションを実装する方法について解 説します。
セッションの動機 • Chat GPT(Azure OpenAI Service gpt-35-turbo含む)リ リース当初、C#でのコード例が少なかった。 • コード例はもっぱらPythonでの例が多かった。
• しかしながら、REST APIがある以上、C#から利用できないは ずがないと考え本セッションをやろうと決めた。 • 現在では状況が変わりプレイグラウンドでもC#のコード例が あるがそれ以前に企画されたセッションであることを留意して いただきたい。
Azure OpenAI サービスとは? • Azure OpenAIサービスはGPT-3、CodexなどOpenAIの強力 な言語モデルをREST APIとして使用できます。 • コンテンツの生成、まとめ、自然言語からコードへの翻訳など
ができる。 • REST API、Python SDK、またはAzure OpenAI Studioの Webベースのインターフェイスを介してサービスにアクセスで きる。 • C#ではREST APIを利用してサービスにアクセスする。
責任あるAI • Azure OpenAI使用できる生成モデルにはかなりの潜在的利益 があります。 • しかし、慎重な設計と熟考した軽減策がない場合有害なコンテ ンツが生成される可能性があります。 • 明確に定義したユースケースを示すことを申請者の要件とする
オンボードされた顧客に対して責任あるAI実装のガイダンスを 提供するなどです。
Azure OpenAIへのアクセス方法 • 現在、アクセスは制限されています。 • Microsoftと既存のパートナーシップ があるお客様、リスクが低いユース ケース、軽減策の取り入れに取り組ん でいるお客様が対象。 •
申請フォームを提出し承認される必要 があります。
新しいChatGPT(プレビュー)とは? • 会話型インターフェイス用に設計された言語モデル • 以前のモデルはテキストインとテキストアウト • プロンプト文字列を受け入れ、プロンプトに追加する入力候補を返し ていた • ChatGPTモデルではカンバセーションインとメッセージアウ
ト
Azure OpenAIモデルの種類 モデルファミリー 説明 GPT-4 GPT-3.5 を基に改善され、自然言語とコードを生成するだけでなく、 理解できるモデルのセット。 これらのモデルは現在プレビュー段階です。 (要別途申請)
GPT-3 自然言語を理解し、生成できるモデルのシリーズ。 これには、新しい ChatGPT モデル (プレビュー) が含まれます。 Codex 自然言語のコードへの変換を含め、コードを理解し、生成できるモデルの シリーズ。 埋め込み 埋め込みを理解し、使用できるモデルのセット。 埋め込みは、機械学習モ デルとアルゴリズムで簡単に利用できる特別な形式のデータ表現です。 埋め込みは、テキストの意味論的意味の情報密度の高い表現です。 現在、 異なる機能に対応する埋め込みモデルの 3 つのファミリ (類似性、テキ スト検索、コード検索) を提供しています。
GPT-4へのアクセス方法 • リクエストフォームの申請が承認されると使用できる
Azure OpenAIとOpenAIの比較 • Azure OpenAIはOpenAIとともにAPIを共同開発し互換性を確 保し一方から他方へスムーズな移行を保証します。 • Azure OpenAIを使用するとOpenAIと同じモデルを実行しな がらAzureのセキュリティ機能を使用できる。
• Azure OpenAIでは、プライベートネットワーク、リージョン の可用性、責任あるAIコンテンツのフィルター処理が提供され る。 • Azureならではのセキュリティ機能・ガバナンス機能が利用で きる。
ChatGPT(gpt-35-turbo)モデル • チャットのような特定のトランススクリプト形式でフォーマッ トされた入力を想定し、チャット内のモデルで記述されたメッ セージを表す入力候補を返します。 • モデルと対話するためのAPIとして2つのオプションがある • Chat Completion
API(推奨) • ChatML API
Chat Completion API • learn.microsoft.comより
ChatML API • learn.microsoft.comより
リソースの作成&モデルデプロイ • 前提条件ーAzure OpenAIサービスへのアクセス申請が承認済 みであること • リソースの作成 • Azure Portalなどからサブスクリプション・リソースグループ・リー
ジョン・名前・価格レベルを指定してリソースを作成する • モデルのデプロイ • Azure PortalまたはAzure OpenAI Studioから使用するモデルをデプ ロイする。
ChatGPTプレイグラウンド • Web画面でコードなしにAzure OpenAI機能を試すことができ る • パラメータを調整しながら素早く反復して実験することが可能 • いくつかの言語やコマンドでのコード例が示されておりこれに よってAPI仕様を確認することが可能
• 日本語ドキュメントより更新が早いことが多い プレイグラウンドを参考にコードを書く
ドキュメントについて • 基本的には公式ドキュメント (https://learn.microsoft.com/ja-jp/azure/cognitive- services/openai/how-to/chatgpt?pivots=programming- language-chat-completions)を参照 • ただし、日本語ドキュメントの翻訳は若干遅れる • Azure
OpenAI Studioプレイグラウンドの更新と比べ差異が あった場合は英語ドキュメント(US)を確認する
C#で実装するには(HttpClientで自力実装) • AzurePortalよりAPIキーを取得する
• どこにどんな内容のHTTPア クセスを行ったらよいかを 確認する • Azure OpenAI Studioのプ レイグラウンドで確認 •
.NETラボ勉強会2023年3月 の「何縫ねの。」さんの セッションを聞いたので HttpClientについてはバッチ リですね! C#で実装するには(HttpClientで自力実装)
C#で実装するには(HttpClientで自力実装) アクセス先URL HTTPヘッダー POST本文
• 応答はマークダウンで返っ てくる • Webなどに表示する際には これをHTMLに変換してあ げるとよい C#で実装するには(HttpClientで自力実装)
• POSTし成功すると以下のような応答がある C#で実装するには(HttpClientで自力実装) ここが表示すべき応答
C#で実装するには(HttpClientで自力実装) メソッドはPOST HTTPヘッダーを設定 リクエスト本文を設定 レスポンスをデシリアライズ マークダウンをHTMLに変換
C#で実装するには(HttpClientで自力実装) デモ
C#で実装するには(Azure.AI.OpenAIパッケージ) • Azure.AI.OpenAIライブラリ を使用する(Preview) • Azure.AI.OpenAIをNuget • プレイグラウンドのサンプル コードを参考にコードを書く
参考文献 • Azure OpenAI Service とは • Azure OpenAI Service
モデル • クイック スタート: Azure OpenAI Service で ChatGPT (プレ ビュー) と GPT-4 (プレビュー) の使用を開始する
おしまい おしまい