Azure OpenAI Serviceの日本語記事まとめ
Azure OpenAI Serviceについての日本語記事のまとめです。主に公式ドキュメント以外のブログやZenn/Qiitaの記事をまとめています。ボリュームが多いので、目次から気になる項目を選択してご覧ください。
※長く使える知見のまとめにしたかったので一過性のニュース的な記事や内容が重複している機能紹介記事などは意図的に掲載していません。
この記事はGitHubで管理されています。まとめへの追加修正はプルリクエストまたはIssuesでお気軽にお寄せください!
また、以前に本記事をご覧いただき、そこからの差分を知りたい場合はGitHubのHistoryも併せてご覧いただけると把握しやすいかと思います。
概要
まずはここから
Azure OpenAI Service を使い始める
Azure OpenAI Serviceの概要から実際のリソースデプロイ、プレイグラウンドとAPIでの呼び出しまでを解説した記事です。Azure OpenAI Serviceをどのように準備してどのように使うのか、概略を掴むのに最適な記事です。
Azure OpenAI Service の最初の一歩: Azure版 ChatGPT を Azure OpenAI Studio のチャット用プレイグラウンドで試す
Azure OpenAI Serviceの概要から実際のリソースデプロイ、プレイグラウンドでの利用を解説した記事です。特にプレイグラウンドツールのAzure OpenAI Studioについて詳しく解説しています。
ChatGPT - Azure OpenAI 大全
Azure OpenAI ServiceについてX上で数多くの情報発信をされているHirosato Gamoさん渾身のChatGPTとAzure OpenAIサービス全体について纏められた132ページの資料です。
Azure OpenAI Serviceのラーニングパスまとめメモ
Microsoftの無料EラーニングプラットフォームMicrosoft Learnで提供されているAzure OpenAI Serviceについての学習コンテンツをまとめた記事です。公式教材で体系的に学びたい人におすすめです。
生成 AI アプリケーションの開発を始めるために必要な全知識を学べる 12 講座
様々なLLMの基礎から主にAzure OpenAIに関することが学べる無料のラーニングパスです。
日本語もサポートしていて、Microsoftでクラウド・アドボケイトを務める寺田佳央さんが日本語訳をされています。
非常に充実した内容で、Azure OpenAIのハンズオンやサンプルなどコンテンツがあふれるほど含まれています。
本家OpenAI と Azure OpenAIの違い
[比較表] Azure OpenAIと本家OpenAI APIの比較表
とりあえずこれを知っておけばOKという違いを見やすい表形式でまとめた記事です。
本家 OpenAI と Azure OpenAI Service の ChatGPT API の比較
利用規約から価格やAPIインターフェースまで幅広く詳細に比較が記載されています。
CTOの視点から見たAzure OpenAI ServiceとOpenAIのChatGPT APIの深堀り比較
現役CTOの視点から、性能、セキュリティ、料金、サポートなどの要素について詳しく分析し、自社でのアーキテクチャ選定と使い分けを紹介しています。自社への導入を考えている方は必見です。
Azure OpenAI Service と OpenAI 本家で同じモデルに同じプロンプトを投げて時間はかってみた
タイトルの通りです。 この記事内では言及されていませんが、本家OpenAIと異なりAzure OpenAI Serviceにはリソースの「リージョン」の考え方があるので、利用者から近いリージョンにデプロイすることで本家OpenAI以上に返答速度が速くなる可能性があります。
API
Azure OpenAIの最新APIスキーマを確認する方法
Azure OpenAI に REST API を使用して質問するサンプルコードの作成方法
アプリを作るときはライブラリやSDKを使うことが多いと思いますが、REST APIでの呼び出しはサービスとのインターフェイスを理解する上で大切です。
この記事で紹介されているAPI呼び出しはAzureポータルのAzure CLIから実行する方法のため、ローカルの開発環境がなくても試せます。
Azure OpenAIでJSON Modeを使う!
Azure OpenAI Service の使用中に発生する可能性がある一般的なエラー コードについて
日本マイクロソフトのサポートチームブログです。
Azure OpenAI Serviceの使用中に発生する可能性がある一般的なエラーコードの内容や原因、解決策について記載されています。
プロンプトエンジニアリング
[メモ] 責任あるAIのためのプロンプトエンジニアリング
各種Prompt Engineeringの日本語実例集(Zero-CoT、mock、ReAct、ToT、Metacog、Step Back、IEPなど)
Azure Open AI Service で SQL を生成するプロンプト例
Embeddings
Azure OpenAI Embedding モデルを利用し最も関連性の高いドキュメントを見つける方法
【AzureOpenAI】Embedding(埋め込み化)で熊本のおいしいお店を探してみた
Azure OpenAI Service と Azure Cache for Redis でベクトル検索を行う
Cognitive Searchの生成AI用ベクトルDBの構築手順書
【Golang】Azure OpenAI で Embedding したベクトルを使って、自前検索エンジンを作ろう
Fine-tuning
Azure OpenAI ServiceのChatGPTモデルでのFine-Tuningを試してみた
リソース管理
全般
Azure Open AIのコーポレートガバナンスについて考える
Azure OpenAI Serviceで扱われるデータの種類・処理・保持について整理した記事です。Azure OpenAI Serviceに対してリクエストしたデータがどのような流れを経て処理されるのがを理解するのに役立ちます。
デプロイ
Azure OpenAI ServiceリソースをTerraformで作成する
コードとしてのインフラストラクチャ(IaC:Infrastucture as Code)のための人気ツールであるTerraformを使ってAzure OpenAI Serviceのリソースをデプロイする方法が記載されています。
認証
Azure OpenAI ServiceのRBACについてまとめた
ここもAzure特有の機能ですが、Azure共通の認証基盤であるAzure ADを使ったRole Based Access Control(RBAC)についての記事です。Azure OpenAI Serviceのリソースに対してAzure ADを使用して権限を管理する方法が記載されています。
Azure OpenAI Service でマネージド ID を使う
ユーザーだけでなくリソース間でもAzure AD認証を使用することができます。この記事ではApp Serviceに設定したマネージドIDをコードから参照してAzure OpenAI Serviceを使用する方法が記載されています。
Azure OpenAI ServiceのAPIキーを無効化する
特に何も考えずにAzure OpenAI Serviceをデプロイするとそのリソース固有のAPIキーが自動生成されますが、セキュリティ的には使用できるのであればマネージドID/Azure AD認証を使用することが推奨です。
この記事ではAPIキーの無効化する方法について記載されています。
Azure OpenAI ServiceでAzure AD認証を使ってみる (Python)
クォーター
Azure OpenAI Service の クォータ管理
2023年6月まではモデルのデプロイごとにクオーターが固定だったのですが、アップデートによって全体の枠の中でユーザーが各デプロイに上限を割り振れるようになりました。その機能についての説明です。
Azure OpenAI Service の Chat Completion API を JMeter で負荷テストしてみた
実際問題どれくらい使ったらクオーター制限に引っ掛かるの?という実験記事です。Azrure OpenAI Serviceはスロットリングウィンドウが1分でリセットされるため、1リクエストあたりのリクエストトークンを増やしてタスクを複雑にし、生成に時間をかけるようにすることでその間にスロットリングウィンドウがリセットされる場合があるというのが興味深いです。
モデル/バージョン
Azure OpenAI Service で GPT-4 API を使う
GPTの次世代モデルであるGPT-4について利用法が記載されています。APIを使うとなっていますが、GPT-4の利用申請方法やPythonのSDKを使った呼び出しなども記載されています。
Azure OpenAI Service のレガシーモデルと今後のモデル選択戦略
Azure OpenAI Serviceってリリースから半年くらいしか経ってないのにもうレガシー扱いのモデルが出てきてるんですよね・・・。というわけで今後モデルはどう選んでいったらいいのかという内容の記事です。
Azure OpenAI Service の gpt-35-turbo と gpt-4 の 2023 年 6 月 バージョン (0613)
0613というバージョンのgpt-35-turboとgpt-4モデルが新しくリリースされました。前バージョンである0301との比較を各項目で行っています。
OpenAIのモデルアップデートに備えて評価Notebookを作る
OpenAIのモデルアップデートに備えてPrompt Flowでモデルの評価フローを作る
トークン
OpenAI 言語モデルで日本語を扱う際のトークン数推定指標
C# で Azure OpenAI Service のトークン数を数えよう
監視
Azure OpenAIのプロンプトをノーコードで監視したい!
Azure OpenAI Serviceの死活監視は可能なのか
アーキテクチャ
ネットワーク
Azure OpenAI Serviceにプライベートエンドポイントから接続する
これがあるから本家OpenAIではなくAzure OpenAI Serviceを選択する企業も多い、ネットワーク閉域化ができるAzureの「プライベートエンドポイント」。Azure OpenAI Serviceにも対応しています。
Azure OpenAI Serviceを拠点から閉域で使う方法
こちらの記事は上記のプライベートエンドポイントの記事に加えてVPN経由でオンプレミスからも疎通ができるようにする方法も記載されています。DNSをどう構成するか、VNET設計をどうするかというところまで詳しく解説されています。
API Management
Azure OpenAI ServiceからのHTTPステータスに応じて、Azure API Managementで再試行したりフォールバックしたりしたい
タイトルの通りです。API Managementを使って1つのAzure OpenAI Serviceがエラーを返しても別のAzure OpenAI Serviceにフォールバックする仕組みを作る方法が記載されています。
Azure API Management でAzure OpenAI のChatGPTを取り扱う
API Management内であらかじめOpenAIの認証情報をセットしておいて通信するような構成を作る方法が記載されています。
OpenAI PythonライブラリをAzure API Managementと共に使うメモ
Azure API ManagementをAzure OpenAI Serviceとクライアントの間にデプロイするアーキテクチャはよくあるパターンですが、クライアントのSDKによってはAPI Managementのエンドポイントが/openaiで終わる必要や、認証ヘッダーを変換する必要があります。その場合のAPI Managementの構成方法が記載されています。
Azure OpenAI Serviceをバックエンドサービスとして構成したAzure API ManagementのAPIに対し、Streamを有効にしたリクエストを投げたらHTTP 500を返してしまうことがある
Azure OpenAI ServiceのStreamをtrueにしてリアルタイムでチャットが流れるようにしておくとServer Side Event(SSE)が使用されるが、その場合にAPI Managementで一定の設定(トークン数チェックなど)をしているとHTTP 500が返ってしまう事象(バグではなくドキュメントにも記載がある仕様)についての記事です。
負荷分散
Azure OpenAI Serviceへの負荷分散
Azure OpenAI Serviceってクオーター制限が結構厳しいんですよね、ってことで複数のOpenAIリソースの間で負荷分散をしましょう。という記事です。Azure Load BalancerなどAzureのサービスと連携して負荷分散を行う方法が記載されています。
Retrieval Augmented Generation(RAG)アーキテクチャ
Microsoft が Azure Cognitive Search による RAG システムの定量評価結果を公表
LangChainでCognitive SearchのベクトルDBと連携させたRAGを構築する
新しくなった ChatGPT × Cognitive Search を使ったエンタープライズサーチ
Azure Cognitive Search × Azure OpenAI Service エコシステム
SDK / ライブラリ
全般
Langchain・Semantic Kernel・guidanceでエージェント機能を実装して比較してみた。
OpenAIライブラリ
Azure.AI.OpenAI パッケージで OpenAI と Azure OpenAI Service に繋ぐときの違い
Azure OpenAI Service の C# SDK (ChatGPT でも使えます)
openai の v1 系での Azure OpenAI へのアクセス (Python)
本家OpenAIのPythonライブラリはバージョンが1系にアップデートされたタイミングでいくつかの破壊的変更が入りました。
バージョン1系のライブラリを使ってAzure OpenAI Serviceにアクセスする方法が記載されています。
Azure OpenAI Service の Completions で入力で渡したテキストを結果に含める方法
OpenAIClientのCompletionsでリクエストを行うと通常はGPTからの出力のみしかレスポンスに含まれませんが、入力したプロンプトもレスポンスに含ませる方法が記載されています。
Semantic Kernel
Semantic Kernel が Copilot stack との連携を明確化しプラグインエコシステムと統合
Azure OpenAI Service を便利に使うための Semantic Kernel を試してみよう on C#
Semantic Kernel のスキルを外部ファイルで定義して読み込む
Semantic Kernel のネイティブ スキルを試してみよう
Semantic Kernel のスキルを好きにカスタマイズしよう (余談です)
Semantic Kernel でトークンを数える
Semantic Kernel でプランナーを使って自発的に解決策を考えて実行する AI を作ってみよう
Semantic Kernel のテンプレートをプログラムでレンダリングする方法とテンプレートの文法
Semantic Kernel で Open AI の Embeddings を使う (あいまい検索出来てすげーやつ)
Semantic Kernel で自作スキルをクラスライブラリ形式で共有したい
Semantic Kernel でトークンの限界を超えるような長い文章を分割してスキルに渡して結果を結合したい
Semantic Kernel の WithMemoryStorage と WithMemory の違い
Semantic Kernel で Bing Chat みたいに自然言語から検索をして結果を自然言語で返したい
Semantic Kernel の Plan ディープダイブ
Semantic Kernel で Plan を進捗情報も含めて永続化したい
Semantic Kernel の 0.17.230626.1-preview のネイティブ関数の引数に関する新機能
Semantic Kernel を使ってアプリ内に AI を組み込んでみた
Semantic Kernel の Function calling サポートを試してみよう
LangChain
LangChain の Vectorstore として Azure Cache for Redis を使ってベクトルの格納と検索を行う
LangChainとGPTで質疑応答を楽にしたい!
LangChainとAzure OpenAI版GPTモデルの連携部分を実装してみる
特定機能
Vision
Azure OpenAI Service で GPT-4 Turbo with Vision を使う
Assitant API
Add your data(On your data)
独自ナレッジをノーコードでChatGPTに連携!Azure OpenAI「Add your data」
Azure OpenAI on your data でノーコードで ChatGPT 対応エンタープライズサーチを構築する
Azure OpenAI Service On Your Data の仕組みと使う上で気を付けるべきポイント
Azure OpenAIの「Add your data」で出来ること出来ないこと
Azure OpenAIの「Add your data」をAPIとして使う!
Azure OpenAI on your dataのAPIでハマった点
Azure OpenAI Service On your data でベクトル検索を行う
Function calling
Azure OpenAIでFunction Callingを使う!
Azure OpenAIのAPIにtoolsプロパティが追加されたぞ!
Azure OpenAI の Function calling を Golang で試す
Azure OpenAI に Function calling が来たので .NET SDK で動作確認してみた
自作したChatGPT規格のプラグインをFunction callingを使って呼び出す方法
OpenAI に毎回返事をしてほしくないという要望を実現してみよう
コンテンツフィルター
Azure OpenAI Service の設定可能なコンテンツフィルター
Power Platform連携
全般
Power Platform × Azure OpenAI の価値
Power Platform から VNet を使用して Azure OpenAI へ通信する
Power Platform から Azure OpenAIの新機能「Add your data」を利用する
Power Platform から Azure OpenAI の Function Calling を利用してみよう
Power Apps
Power Apps で ChatGPT と連携する実用的なアプリを作ってみました
Azure OpenAI Service の SDK を利用し、フロントエンドを Power Apps にする
Power Apps で ChatGPT のマークダウンの回答を上手く表示する
Power Apps で AI Builder 経由で ChatGPT 連携する (会話履歴と文脈に基づいた回答を生成する)
Power Automate
Power Platform から Azure OpenAI Service 経由で ChatGPT を利用してみる
Power Automate から Azure OpenAI にリクエストをする際に文字列を分割する
Azure OpenAI Serviceの各モデルには最大トークン数が決められており、入力出力できる文字数に上限があります。
それを超えた文量を扱いたい場合、再起的要約と呼ばれる手法があります。
再起的要約は入力文を分割してそれぞれモデルで要約を行い、出力文を結合してさらに要約することで上限を超えた文量を扱うことができます。
Power Virtual Agents
Power Virtual Agents を使用して Azure OpenAI Service の ChatGPT と連携し、会話履歴と文脈に基づいた回答を生成する方法
PVA と Azure OpenAI の ChatGPT:会話履歴の管理術
Azure OpenAI の 「Add your data」と Power Virtual Agents の 「Boost conversations」を比べてみた
ハンズオン資料/サンプル
ハンズオン資料
まだOpenAI使ったことないの?この記事で全員ハンズオンさせてやんよ!
Azure DevOpsを使用してAzure Static Web AppsにアプリをデプロイしてAzure OpenAI Serviceを使うハンズオンです。Azure DevOpsもAzure Static Web Appsも無料枠があるので、Azure OpenAI Service分の課金だけで試すこともできそうです。
デジタル庁 ChatGPTを業務に組み込むためのハンズオン
すでに環境が準備された状態での主にプロンプトエンジニアリングをテーマとしたエンドユーザー目線のハンズオンです。補足としてRAGアーキテクチャについても少しだけ触れられています。
Azure OpenAI Service を利用した ChatGPT お試し環境の構築
とりあえず閉域化したChatGPTを作りたい!という方はこちら。
Azure OpenAI Service を利用した ChatGPT お試し環境にログ出力機能を追加する
上記の閉域化ChatGPTにAPI Managementをデプロイしてログ出力機能を追加するハンズオンです。
Azure OpenAI Service を用いた Function Calling のハンズオン
pythonを使用してAzure OpenAI ServiceのFunction Callingの基礎を体験できるハンズオンです。
Azure OpenAI ✖️ LINE MessagingAPI を使って自分だけのAIチャットボットを作ろう!
サンプル
Azure OpenAIのサンプルまとめ
主にGitHubで公開されているデプロイ・実行可能なサンプルソリューションがまとめられています。
Azure OpenAI Samples Japan
公式情報にはなりますが、Azure OpenAI Serviceリファレンスアーキテクチャの実装サンプルリポジトリです。
azureopenai-essential-notebooks
筆者がオーナーになっているAzure OpenAIを使ったさまざまなシナリオの基本を学ぶためのプリミティブなJupyter Notebookサンプル集です。
ChatGPT-Prompt-Sample-Japanese
Azure OpenAIには限りませんが、ChatGPTで使用できるシナリオ別プロンプトサンプル集です。
社内向けChatGPTを費用を押さえつつ爆速で構築する方法をMicrosoftが提供してくれていた件
Microsoftの公式リポジトリで公開されているChatGPTサンプルアプリをデプロイして使う方法が記載されています。
Azure-Samples/azure-search-openai-demo でログを有効にする
公式サンプルのAzure-Samples/azure-search-openai-demoリポジトリにログ出力機能を追加する方法が記載されています。
Azure OpenAI を使った知識埋め込み型QAボットのサンプルをいじってみた
【Azure OpenAI開発】 Azureサービスを組み合わせてPDFと対話する簡単なアプリケーションを構築する
【Azure OpenAI開発】Static Web Apps × Azure Functionsを使って、WebアプリケーションにAzure OpenAIを組み込む
Redmine で課題が起票された際に Azure OpenAI Service を利用して自動返信する
超長文をChatGPTに要約させてみる
ChatGPT にプログラムを分析・可視化させてみた
【ChatGPT縛りプレイ】システム開発をさせてみた
OpenAIとMicrosoft Graph Search APIでM365の組織内データを検索するRAGアプリを作る
事例
【事例大全】Azure OpenAI を利用する Digital Native/Startup まとめ
番外編
Copilot
Microsoft の Copilot stack とは何か
AI Copilot の時代が到来 - Copilot stack による LLM 中心アプリ開発
Azure Cognitive Search を ChatGPT Plugin 経由で呼び出し、AI オーケストレーターと統合する
Open Interpreter
Open Interpreterをは簡単にいうと本家OpenAIのCode Interpreterと同じようなことをオープンソースツールのOpen Interpreterを使ってローカルPC+各種LLMモデルでもできるようにしようというものです。LLMモデルはAzure OpenAI Serviceのモデルにも対応しています。
Azure OpenAI Service + Open Interpreterやってみたレポート
ついに来たローカルAIデータ分析! Open InterpreterとAzure OpenAI Serviceで機密データも安全にハンドリング
その他
ChatGPT のプラグイン "Code Interpreter" でセキュリティインシデントを分析する
Code InterpreterでMicrosoft Sentinelのインシデント一覧を分析するサンプルシナリオです。
Pandas AIをAzure OpenAI Serviceで動かす
Discussion