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
Azure OpenAIサービスでChatGPTをC#で使ってみる
Search
tomokusaba
April 22, 2023
Programming
3
1.2k
Azure OpenAIサービスでChatGPTをC#で使ってみる
.NETラボ勉強会2023年4月
Azure OpenAIサービスでChatGPTをC#で使ってみる
tomokusaba
April 22, 2023
Tweet
Share
More Decks by tomokusaba
See All by tomokusaba
GitHub Copilot の概要
tomokusaba
1
160
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
490
Azure AI Foundry Agent Serviceを使用してコードファースト アプリを構築する
tomokusaba
1
300
Part1 GitHubってなんだろう?その1
tomokusaba
3
960
Part1 GitHubってなんだろう?その2
tomokusaba
2
930
Part2 GitHub Copilotってなんだろう
tomokusaba
2
1.1k
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
2
930
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
340
Fluent UI Blazor 5 (alpha)の紹介
tomokusaba
0
270
Other Decks in Programming
See All in Programming
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
AWS Summit Japan 2024と2025の比較/はじめてのKiro、今あなたは岐路に立つ
satoshi256kbyte
0
120
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
990
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
390
効率的な開発手段として VRTを活用する
ishkawa
0
160
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
130
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
180
AIともっと楽するE2Eテスト
myohei
8
3k
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
350
PicoRuby on Rails
makicamel
3
140
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
220
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Six Lessons from altMBA
skipperchong
28
3.9k
The Invisible Side of Design
smashingmag
301
51k
The Pragmatic Product Professional
lauravandoore
35
6.7k
BBQ
matthewcrist
89
9.7k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Fireside Chat
paigeccino
37
3.5k
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 (プレビュー) の使用を開始する
おしまい おしまい