Azure OpenAI Service をノーコード開発してみる(1) ~ Logic Apps でサーバーサイド開発(構築編) ~

NTTデータ先端技術株式会社の原田です。

Azure OpenAI Service の学習にあたって試してみたフルノーコードによる開発のご紹介です。  
この記事は2023/11/15時点の情報で記載しています、アップデートにより変わってしまっている部分がありましたらご容赦ください。

今回は全6回の第1回~ Logic Apps でサーバーサイド開発(構築編)  ~になります。  

## 記事一覧
**第1回. Logic Apps でサーバーサイド開発(構築編)**  
第2回. Logic Apps でサーバーサイド開発(開発編)  
第3回. Power Platform でクライアントサイド開発  
第4回. ServiceNow でクライアントサイド開発  
第5回. Azure リソースのセキュリティ強化  
第6回. Azure OpenAI Service をノーコード開発してみるのまとめ  

## はじめに
構築するサーバーサイドシステムの構成です。  
Logic Apps にて OpenAI Service とチャットするための API を作成し、それをクライアントサイド開発にて使用する構成になっています。  
加えてセッションや履歴を保存するための Cosmos DB を構築していきます。  
![ba5646e2d90a56f9ec3b_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/d4ec74bd-827a-1d2d-0b29-c914ea5ab72a.png)

## OpenAI Service の構築
1. Azure ポータルの検索バーで [Azure OpenAI] を検索  
![ba5646e2d90a56f9ec3b_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/94ed73f2-832d-a3a7-3e5f-62ebbfc915c4.png)  
2. 開いたページで [作成] を選択  
3. 基本タブで下記の情報を入力して [次へ]×3 - [作成] を選択
* サブスクリプション : (入力済み)  
* リソースグループ : [任意のリソースグループ]  
* リージョン : [任意のリージョン] 検証用途であればリリースの早い米国リージョンがおススメ  
* 名前 : [任意の名前] エンドポイントの一部になるため一意である必要があります  
* 場所 : [任意の場所]  
* 価格レベル : [Standard S0]  
![ba5646e2d90a56f9ec3b_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/2ad851bc-213a-380d-faa1-944fc6c90b52.png)

4. 作成した OpenAI Service のページで [モデル デプロイ] - [展開の管理] を開く  
5. [新しいデプロイの作成] を選択しモデルをデプロイ   
![ba5646e2d90a56f9ec3b_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/72f64dbc-6624-4d30-b670-f240f5d1d291.png)  

## Cosmos DB の構築
1. Azure ポータルの検索バーで [Azure Cosmos DB] を検索  
![ba5646e2d90a56f9ec3b_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/dded7116-e715-ff91-4cf0-52dd8da88f30.png)
2. 開いたページで [作成] を選択  
3. API オプションの選択ページで [コア (SQL) - 推奨] を選択  
![ba5646e2d90a56f9ec3b_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/b469ca6b-1377-d9d1-8f64-ab18c915acf8.png)
4. Basics タブで下記の情報を入力して [レビュー + 作成] を選択   
* サブスクリプション : (入力済み)  
* リソースグループ : [任意のリソースグループ]  
* アカウント名 : [任意の名前] URIの一部になるため一意である必要があります  
* 場所 : [任意の場所]  
* 容量モード : [Serverless]  
![ba5646e2d90a56f9ec3b_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/7cf0b80e-7f89-bf9a-413a-0eb922d14869.png)
5. 作成した Cosmos DB のページで [データ エクスプローラー] を開く  
6. データエクスプローラーの [New Container] - [New Database] を選択  
7. [Database id] に任意のIDを入力して [OK] を選択  
![ba5646e2d90a56f9ec3b_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/11fd40d5-e2f8-88a1-b712-b7d6d6441f9a.png)
8. データエクスプローラーの [New Container] - [New Container] を選択  
9. 下記の情報を入力して [OK] を選択  
* Database id : [Use existing] を選択して [作成済みのDatabase] を指定  
* Container id : [User]  
* Partition key : [/UserId]  
![ba5646e2d90a56f9ec3b_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/2cda56ef-d2f1-6832-9434-e9b7f56c37c7.png)
10. 同じ手順で [Session] コンテナーを作成  
11. Session コンテナーの [Settings] を開き、[Time to Live] を設定(チャットセッションの継続時間)  
![ba5646e2d90a56f9ec3b_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/9610ffe8-11c3-ae18-d8d4-a0fda103391a.png)

## Logic Apps の構築
1. Azure ポータルの検索バーで [ロジック アプリ] を検索  
![ba5646e2d90a56f9ec3b_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/87ec6ff5-c685-f517-8ed8-fc4f088c1c73.png)
2. 開いたページで [追加] を選択  
3. 基本タブで下記の情報を入力して [確認及び作成] を選択  
* サブスクリプション : (入力済み)  
* リソースグループ : [任意のリソースグループ]  
* ロジック アプリ名 : [任意の名前]
* 地域 : [任意の地域]  
* ログ分析を有効化 : [いいえ]  
* プラン : [消費]  
* ゾーン冗長 : [無効]  
![ba5646e2d90a56f9ec3b_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620633/20d0f6c0-e980-e05f-edde-825ae5d15dee.png)

## 次回
次回は Logic Apps にチャット API を開発していきます。