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
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 CAFで考えるAIエージェント導入の進め方
tomokusaba
1
98
GitHub Copilot app時代の開発フロー
tomokusaba
0
52
オートマトンと字句解析でRoslynを読む
tomokusaba
0
150
GitHub Copilot appとGitHub Copilot CLIとVS CodeのCopilot Chat Agent Modeの使い分け
tomokusaba
0
150
GitHub Copilot app最速の発信の裏側
tomokusaba
1
550
自宅サーバの変遷
tomokusaba
0
870
Microsoft Build Keynoteふりかえり
tomokusaba
0
170
GitHub Copilot CLIでWebアクセシビリティを改善した話
tomokusaba
0
760
GitHub Copilot CLI で考える複数エージェント設計
tomokusaba
0
300
Other Decks in Programming
See All in Programming
ALB ログから Trace を気合で繋げる技術
fohte
7
770
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
240
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
0
360
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
2.2k
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
200
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
310
初めての模倣学習とVLA
natsutan
0
310
typoなんかねぇよ
raspython3
0
610
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
ソフトウェアラスタライザ
fadis
1
720
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
270
Site-Speed That Sticks
csswizardry
13
1.5k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
300
Ruling the World: When Life Gets Gamed
codingconduct
0
310
Believing is Seeing
oripsolob
1
200
Designing Experiences People Love
moore
143
24k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
490
How STYLIGHT went responsive
nonsquared
100
6.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
220
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
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 (プレビュー) の使用を開始する
おしまい おしまい