NISHIO Hirokazu[Translate]
p広聴AI2025-03-13~

o1 Pro
以下の内容が再利用しやすい知識としてまとめられます:
1. Azure OpenAI Serviceのモデルデプロイ
--model-version に具体的なバージョン番号(例: 2024-11-20 )を指定する必要がある。
--sku Standard GlobalStandard を指定し、合わせて --capacity などでスループットを管理する。
Embeddingモデルも同様に、 latest は使えず、正しいバージョン番号(例: 1 )を指定する。

2. Dockerのアーキテクチャ問題
Apple Silicon(M1/M2)などでビルドする際は、Azure上で動くx86_64用に docker buildx build --platform linux/amd64 ... のようにプラットフォーム指定が必要。

3. Key Vaultとアプリの権限設定
Web AppでKey Vaultのシークレットを参照する場合、Web Appに「マネージドID」を付与し、そのIDにKey Vaultの Key Vault Secrets User Key Vault Secrets Officer ロールを割り当てる必要がある。
az webapp identity assign でマネージドIDを有効化→ az role assignment create で当該IDにロール付与→ Web AppのApp Settingsに @Microsoft.KeyVault(SecretUri=...) を設定すると、シークレットが展開される(ただし、権限不足やロール割り当ての待ち時間などで即時に反映されないケースがある)。

4. Azure CLI実行時の注意点
CLIのデフォルトアプリ(Caller appid)がKey Vault操作の権限を持っていないときは、追加でロール割り当てが必要。
リソース作成やKey Vault設定の際にJSON出力をファイルに保存し、後から参照すると管理しやすい。

5. App Service PlanやSKUの選択
開発・テスト用途であればB1などのBasicプランが手軽。
負荷を考慮して適切に選ぶ必要がある(標準や上位プランも選択肢)。

6. 複数Web Appのデプロイ手順
サーバ用、クライアント用、管理用など用途別にWeb Appを作成してコンテナをデプロイ。
認証情報(例: BASIC認証)はKey Vaultに格納し、環境変数として参照すると管理が楽。

以上がAzure上でAIサービスやWebアプリをデプロイ・運用する際に汎用的に使えるポイントです。

nishio
いやー、Key Vault関連でトラブりまくってうまくいかないので、一旦Key Vaultなしでやることに方針転換しようと思う

>ビルド時に server:latest で作成しているのに、プッシュ時に client-admin:latest と別のタグを使用しているようです。Webアプリが参照しているイメージタグと一致しているか確認してください。
素人なのでこういうミスをしたりする

サーバサイドでconsole.logした時にログにでない問題
そもそもconsole.logを追加したものがデプロイできていないケースだった
別の話
>Azureポータルで「診断ログ」や「アプリケーション ログ(ファイルシステム)」が有効になっているか、ログレベルが十分か確認してください。

2025-03-17

いったん全部消してやり直してみる

$ az login
テナントの中のサブスクリプション一覧がでる
デフォルトのままでいいのでこのまま進める

リソースグループの作成
Azure OpenAI Serviceリソースの作成
>An existing resource with ID '...kouchou-ai-openai' has been soft-deleted. To restore the resource, you must specify 'restore' to be 'true' in the property. If you don't want to restore existing resource, please purge it first.
親切すぎるw
$ az cognitiveservices account purge --location japaneast --name kouchou-ai-openai --resource-group kouchou-ai-rg --subscription ...

モデルのデプロイ
これはCLIでできないのか
>作成したAzure OpenAI Serviceリソースに移動します。

Azure OpenAI Studioを開けと言ってるけどAzure AI Foundryでいいのかな?
o3-mini-high
Azure OpenAI Studioは、以前は独立したポータルでしたが、現在はAzure AI Foundryポータルに統合されています。
そのため、「Azure OpenAI Studioを開け」と指示されても、Azure AI Foundryポータルで同じ機能が利用できるので、基本的にはAzure AI Foundryで問題ありません。


前回これはCLIでやった気がするな
パラメータが色々でトラブってたからWeb経由をお薦めされたのかな

前回作業した時、エンドポイントは https://kouchou-ai-openai.openai.azure.com だったのに
上記のコマンドで得たエンドポイントは https://japaneast.api.cognitive.microsoft.com/ で、なんかおかしいね
前者の方が正しいよな

.envに同じエンドポイントを書くことに関して
nishioembeddingとgpt4oに同じエンドポイントを指定していいの?どうやってリクエストを区別するんですか?
o3-mini-high同じエンドポイントを使っても問題ありません。
Azure OpenAI Serviceでは、1つのエンドポイントで複数のデプロイを管理しており、リクエスト時に「デプロイ名」を指定することで、どのモデル(gpt4oやembedding)を呼び出すかを区別します。


Azure App Serviceのセットアップ
App Service Planの作成

nishioApp Serviceを3つ立ち上げるけど、費用はどうなります?3倍?
o3-mini-highApp Serviceの料金は、個々のアプリの料金ではなく、App Service Plan単位で発生します。
つまり、同じプラン内に3つのアプリを配置すれば、必ずしも費用が3倍になるわけではありません。ただし、各アプリを別々のプランで立ち上げると、その分料金がかさむ可能性があります。
nishioAWSでいうと一つのEC2の中で3つのコンテナが動いてる感じですか?
o3-mini-highはい、その通りです。
同じApp Service Plan内に配置すると、1台のEC2上で複数のコンテナを動かすようなイメージで、リソースを共有するため、別々のプランを使わなければ費用は増えません。

サーバーコンポーネントのデプロイ
ここからビルド待ちがあるので3つ並列でやろうと思う
>リポジトリのクローン
ここ古い名前なので直す必要がある

$ docker buildx build --platform linux/amd64 -t kouchou-ai-server:latest ./server

>ビルドしたDockerイメージをローカルで実行してテストします

前回のマニュアルにはこれはなかったね、親切になった
>WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
そりゃそうだ
>pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings
> ADMIN_API_KEY
> PUBLIC_API_KEY
そりゃそうだ
このテストは逆効果だw

Dockerイメージの保存とアップロード

:
# Dockerイメージをtarファイルに保存 docker save kouchou-ai-server:latest -o kouchou-ai-server.tar # tarファイルをgzipで圧縮 gzip kouchou-ai-server.tar
Azure Container Registryがないとdocker pushができないのか...


Azure App Serviceへのデプロイ
:
# Dockerイメージをデプロイ az webapp config container set \ --resource-group kouchou-ai-rg \ --name kouchou-ai-server \ --multicontainer-config-type compose \ --multicontainer-config-file docker-compose.yml
docker-compose.ymlを新しく作るみたいなことを言ってるけど違うよね
前回なんて言ってた?
:
# サーバー用Web Appの作成 az webapp create \ --resource-group kouchou-ai-rg \ --plan kouchou-ai-plan \ --name kouchou-ai-server \ --deployment-container-image-name kouchouaiacr.azurecr.io/server:latest
そもそも前回はAzure Container Registryを作ってたのか

nishioすでにローカルで立ち上げる時ようにcompose.yamlがあるけどそれでいいのかな?
o3-mini-high基本的にはローカル用のcompose.yamlを利用しても問題ありません。ただし、Azure App Serviceで運用する際は以下の点を確認してください:
ファイル名:Azureでは通常「docker-compose.yml」として認識されるため、必要ならリネームしてください。
環境変数・ポート設定:本番環境用に適切な設定が反映されているか確認する必要があります。
適宜調整すれば、そのまま使うことも可能です。
nishio前回のマニュアルではそういうことはしていないのだけどシンプルにするためにこうなったのかな?
o3-mini-highそうです。前回は個々の設定を別々に行っていたかもしれませんが、今回はdocker-composeを使うことで設定を一元管理し、シンプルに運用できるように工夫されています。

ホントかなぁ、まあいいけど

renameの必要性についてセカンドオピニオン
o3-mini-highデフォルトでは「docker-compose.yml」というファイル名で認識されるため、ローカルで「compose.yaml」としている場合はリネームするのが無難です。
どうしても「compose.yaml」を使いたい場合は、Azure CLI のオプション(例:--multicontainer-config-file)で明示的にファイル名を指定する必要があります。

そういう感じなら、明示的に指定するからrenameしなくていいか
:
# Dockerイメージをデプロイ az webapp config container set \ --resource-group kouchou-ai-rg \ --name kouchou-ai-server \ --multicontainer-config-type compose \ --multicontainer-config-file compose.yaml

nishioこのCLI側の手順ではimageをアップロードするタイミングがないような気がする
o3-mini-highCLIの手順では、Dockerイメージ自体のアップロード(push)は行っていません。
通常は、Docker HubやAzure Container Registryなどの外部レジストリに事前にイメージをプッシュし、CLIはそのレジストリ上のイメージを参照してApp Serviceを設定するためのものです。
nishio今回Azure Container Registryのインスタンス?を作っていない
o3-mini-highそうです。今回のガイドはシンプルな構成を重視しており、ACRを利用せずにローカルでビルド・保存したDockerイメージを直接アップロードする方法を採用しています。
nishioCLIでアップロードできる?ブラウザからしかできない?
o3-mini-high
CLIでは、ローカルのDockerイメージファイルを直接アップロードする機能は基本的に提供されていません。
通常は、コンテナレジストリ(ACRやDocker Hubなど)にイメージをプッシュし、そのイメージをApp Serviceから参照するか、もしくはブラウザのDeployment Centerを使ってローカルイメージをアップロードする形になります。


うえー、めんどくさ。ACR作成はそんなにつまづいてないから入れてもいいかもな

GitHub Actionsで差し込むことがお薦めされてる
じゃああれか、今手元でdocker buildxしてるけど、将来的にはGitHub Actionsでやるのがいいのか?

いやGitHub Actionsでビルドしても、それは結局ACRかDocker Hubかにpushして、そのトリガーでpullするってだけか。じゃあACRをセットアップする方がいいな。

o3-mini-high
Azure App Serviceへは直接ローカルファイルをアップロードできないため、一般的にはACR(Azure Container Registry)にDockerイメージをプッシュして利用します。
以下が簡単な手順です:

1. ACRの作成
$ az acr create --resource-group kouchou-ai-rg --name aikouchouacr --sku Basic

2. ACRにログイン
$ az acr login --name aikouchouacr

3. Dockerイメージのビルドとタグ付け
$ docker buildx build --platform linux/amd64 -t kouchou-ai-server:latest ./server

$ docker tag kouchou-ai-server:latest aikouchouacr.azurecr.io/kouchou-ai-server:latest

4. ACRへプッシュ
$ docker push aikouchouacr.azurecr.io/kouchou-ai-server:latest

5. App Serviceの設定
Azure Portalの「コンテナ設定」で、ソースとしてACRを選び、リポジトリ名とタグを指定します。

これにより、ACRからイメージを取得してApp Serviceでコンテナを実行できるようになります。

$ az acr update -n aikouchouacr --admin-enabled true
$ az acr credential show --name aikouchouacr --resource-group kouchou-ai-rg

:
az webapp config container set \ --resource-group kouchou-ai-rg \ --name kouchou-ai-server \ --docker-custom-image-name aikouchouacr.azurecr.io/kouchou-ai-server:latest \ --docker-registry-server-url https://aikouchouacr.azurecr.io \ --docker-registry-server-user <ACRユーザー名> \ --docker-registry-server-password <ACRパスワード>

再起動する
$ az webapp restart --resource-group kouchou-ai-rg --name kouchou-ai-server

サーバが起動したかどうかはログをみよう
:
# App Serviceのログを確認 az webapp log tail \ --resource-group kouchou-ai-rg \ --name kouchou-ai-server

ログが表示されないな。

-----

% # ACRへのログイン
az acr login --name kouchouaiacr
zsh: command not found: #
Could not connect to the registry login server 'kouchouaiacr.azurecr.io'. Please verify that the registry exists and the URL 'https://kouchouaiacr.azurecr.io/v2/' is reachable from your environment.
Try running 'az acr check-health -n kouchouaiacr --yes' to diagnose this issue.

% az acr check-health -n kouchouaiacr --yes
Docker daemon status: available
Docker version: 'Docker version 20.10.22, build 42c8b31, platform linux/arm64'
Docker pull of 'mcr.microsoft.com/mcr/hello-world:latest' : OK
Azure CLI version: 2.70.0
2025-03-17 08:23:50.591717 An error occurred: CONNECTIVITY_DNS_ERROR
Failed to reach DNS for registry 'kouchouaiacr.azurecr.io'. Please check if the spelling is correct, if the CLI environment is on correct cloud and your network connectivity.

ACRが二つあるとログインに失敗する?不可解

---
o3-mini-high
Azure CLI では
--docker-custom-image-name → --container-image-name
--docker-registry-server-url → --container-registry-url
--docker-registry-server-user → --container-registry-user
--docker-registry-server-password → --container-registry-password
が推奨されています。今後は新しいオプションを使用してください。

---
ログが出ない問題、むしろAzure Portalのログストリームならつながることもある
つながらないこともある

admin
2025-03-17T08:52:06 Welcome, you are now connected to log-streaming service.Starting Log Tail -n 10 of existing logs ----/appsvctmp/volatile/logs/runtime/container.log 2025-03-17T08:51:15.3231533Z Configure Services : 08.51.15.322864 2025-03-17T08:51:16.7442581Z Configure : 08.51.16.743970 2025-03-17T08:51:17.6208151Z Setting Up Routes : 08.51.17.620555 2025-03-17T08:51:18.2362864Z Exiting Configure : 08.51.18.236021 2025-03-17T08:51:18.6132403Z warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 2025-03-17T08:51:18.6133451Z No XML encryptor configured. Key {fdf3c2ce-05ea-4c38-a6ba-9cffe3df9d1b} may be persisted to storage in unencrypted form. 2025-03-17T08:51:18.8348701Z Hosting environment: Production 2025-03-17T08:51:18.8359212Z Content root path: /opt/Kudu 2025-03-17T08:51:18.8533469Z Now listening on: http://0.0.0.0:8181 2025-03-17T08:51:18.8534039Z Application started. Press Ctrl+C to shut down.Ending Log Tail of existing logs ---Starting Live Log Stream --- 2025-03-17T08:53:06 No new trace in the past 1 min(s). 2025-03-17T08:53:50.5848228Z 2025-03-17T08:53:50.7628783Z > kouchou-ai-client-admin@0.1.0 start 2025-03-17T08:53:50.7629743Z > next start -p 4000 2025-03-17T08:53:50.7629784Z 2025-03-17T08:53:54.5458289Z ▲ Next.js 15.1.6 2025-03-17T08:53:54.5460079Z - Local: http://localhost:4000 2025-03-17T08:53:54.5460176Z - Network: http://169.254.132.3:4000 2025-03-17T08:53:54.5460215Z 2025-03-17T08:53:54.5460243Z ✓ Starting... 2025-03-17T08:53:56.3796807Z ✓ Ready in 3.9s 2025-03-17T08:55:06 No new trace in the past 1 min(s).

client
2025-03-17T08:48:53 Welcome, you are now connected to log-streaming service.Starting Log Tail -n 10 of existing logs ----/home/LogFiles/__lastCheckTime.txt (https://kouchou-ai-client.scm.azurewebsites.net/api/vfs/LogFiles/__lastCheckTime.txt)03/17/2025 08:47:13/home/LogFiles/kudu/trace/c2a2216e2cb4-c522ab4a-31c3-44b4-8dae-bd0dd87d61cf.txt (https://kouchou-ai-client.scm.azurewebsites.net/api/vfs/LogFiles/kudu/trace/c2a2216e2cb4-c522ab4a-31c3-44b4-8dae-bd0dd87d61cf.txt) 2025-03-17T08:48:52 Startup Request, url: /api/logstream/, method: GET, type: request, pid: 776,1,5, ScmType: None/home/LogFiles/2025_03_17_lw1sdlwk000C43_default_docker.log (https://kouchou-ai-client.scm.azurewebsites.net/api/vfs/LogFiles/2025_03_17_lw1sdlwk000C43_default_docker.log) 2025-03-17T08:44:56.888979144Z 2025-03-17T08:44:56.889594374Z > kouchou-ai-client@0.1.0 build 2025-03-17T08:44:56.889598946Z > next build 2025-03-17T08:44:56.889601478Z 2025-03-17T08:45:09.723432943Z ??? Next.js 15.1.6 2025-03-17T08:45:09.743210166Z 2025-03-17T08:45:09.834319984Z Creating an optimized production build .../home/LogFiles/2025_03_17_lw1sdlwk000C43_docker.log (https://kouchou-ai-client.scm.azurewebsites.net/api/vfs/LogFiles/2025_03_17_lw1sdlwk000C43_docker.log) 2025-03-17T08:46:31.303Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 100.3545987 sec 2025-03-17T08:46:48.895Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 117.9464186 sec 2025-03-17T08:47:05.550Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 134.6007097 sec 2025-03-17T08:47:27.022Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 156.0733663 sec 2025-03-17T08:47:49.023Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 178.0737392 sec 2025-03-17T08:48:14.332Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 203.3826478 sec 2025-03-17T08:48:31.846Z INFO - Waiting for response to warmup request for container kouchou-ai-client_0_4abf5642. Elapsed time = 220.8968595 sec 2025-03-17T08:48:42.925Z ERROR - Container kouchou-ai-client_0_4abf5642 for site kouchou-ai-client did not start within expected time limit. Elapsed time = 231.948246 sec 2025-03-17T08:48:43.097Z ERROR - Container kouchou-ai-client_0_4abf5642 didn't respond to HTTP pings on port: 3000, failing site start. See container logs for debugging. 2025-03-17T08:48:43.347Z INFO - Stopping site kouchou-ai-client because it failed during startup.Ending Log Tail of existing logs ---Starting Live Log Stream --- 2025-03-17T08:49:54 No new trace in the past 1 min(s).

serverがエラー

o3-mini-high
ログから見ると、コンテナが起動時に必要な設定情報(特に、ADMIN_API_KEY、PUBLIC_API_KEY、OPENAI_API_KEY など)が不足しているため、アプリケーション側で Pydantic によるバリデーションエラーが発生しています。その結果、アプリケーションが正しく起動できず、HTTP の ping にも応答できず、最終的に起動タイムアウトとなっています。

【対策】

必須環境変数の設定
アプリケーションが起動時に必要とする環境変数(ADMIN_API_KEY、PUBLIC_API_KEY、OPENAI_API_KEY など)を、Azure App Service の「構成」→「アプリ設定」から設定してください。

:
az webapp config appsettings set \ --resource-group kouchou-ai-rg \ --name kouchou-ai-server \ --settings ADMIN_API_KEY="admin" PUBLIC_API_KEY="public" OPENAI_API_KEY="..."

多分これバリデーションでUSE_AZUREのときにはなくてもOKにするとかした方がいいのかも


なんか色々エラーのようなものが出たりしてたけど他の作業をしているうちに気がついたら完了していた

おっ、処理が始まったっぽいぞ

問題はレポート作成がちゃんと進んでいるのか、裏でエラーで落ちてるのか、というところだな
あとclientはまだ表示されない

今日の進捗
一旦リソースグループを消してやり直し
Key Vaultを使わない路線のシンプルなドキュメント(ver.3)を生成してそれに従う
Azure Container Registryも使わないドキュメントだったが、それはブラウザ操作が必須になって手間なのでACRは使うことにしてドキュメント再生成した
管理画面からCSVをアップロードして処理開始することはできた。ただし十分な時間が経っても完了しないのでサーバサイドでエラーで死んでるのだと思う。アプリケーションの出すエラーログがデフォルトではログストリームに流れないようなので原因は不明。
clientはまだ起動しない。多分serverに接続するのにAzure App Serviceの中ではlocalhostを通した通信ができないのだと思う

2025-03-18
Azure環境にデプロイするのとAzure OpenAI Serviceを使うのは独立の話だよねという話
確かにそれはそう
ちょうどリポジトリも色々変わったことだしリポジトリごとゼロからやってみるか

fork
cloneして.envにOpenAIのAPIキーをいれてdocker-compose up

>Attaching to kouchou-ai-api-1, kouchou-ai-client-1, kouchou-ai-client-admin-1
> Error response from daemon: driver failed programming external connectivity on endpoint kouchou-ai-api-1 (0ad5b0eeabca84ef698349ed3093339034298f7711c03d847781b61a2b7a55d4): Bind for 0.0.0.0:8000 failed: port is already allocated
おっとどこかで8000番が使われている

$ sudo lsof -i :8000

古いサーバが生きてたので殺してから再度docker up

localhost:4000で管理画面が出る
localhost:8000でAPIのOKがでる
localhost:3000でクライアントが出ないが...
ビルドに時間がかかってただけみたい
:
kouchou-ai-client-1 | kouchou-ai-client-1 | > kouchou-ai-client@0.1.0 build kouchou-ai-client-1 | > next build kouchou-ai-client-1 | kouchou-ai-client-1 | ▲ Next.js 15.1.6 kouchou-ai-client-1 | kouchou-ai-client-1 | Creating an optimized production build ...
...
:
kouchou-ai-client-1 | ✓ Compiled successfully kouchou-ai-client-1 | Linting and checking validity of types ... kouchou-ai-client-1 | kouchou-ai-client-1 | ./components/report/ClientContainer.tsx kouchou-ai-client-1 | 30:6 Warning: React Hook useEffect has a missing dependency: 'fetchReport'. Either include it or remove the dependency array. react-hooks/exhaustive-deps kouchou-ai-client-1 | kouchou-ai-client-1 | info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/app/api-reference/config/eslint#disabling-rules kouchou-ai-client-1 | Collecting page data ... kouchou-ai-client-1 | Generating static pages (0/4) ... kouchou-ai-client-1 | Generating static pages (1/4) kouchou-ai-client-1 | Generating static pages (2/4) kouchou-ai-client-1 | Generating static pages (3/4) kouchou-ai-client-1 | ✓ Generating static pages (4/4) kouchou-ai-client-1 | Finalizing page optimization ... kouchou-ai-client-1 | Collecting build traces ... kouchou-ai-client-1 | kouchou-ai-client-1 | Route (app) Size First Load JS kouchou-ai-client-1 | ┌ ○ / 2.3 kB 152 kB kouchou-ai-client-1 | ├ ○ /_not-found 986 B 107 kB kouchou-ai-client-1 | └ ● /[slug] 33.1 kB 183 kB kouchou-ai-client-1 | + First Load JS shared by all 106 kB kouchou-ai-client-1 | ├ chunks/4bd1b696-72c46108ef323341.js 53 kB kouchou-ai-client-1 | ├ chunks/517-6f5efe69d0606e9b.js 50.7 kB kouchou-ai-client-1 | └ other shared chunks (total) 2.71 kB kouchou-ai-client-1 | kouchou-ai-client-1 | kouchou-ai-client-1 | ○ (Static) prerendered as static content kouchou-ai-client-1 | ● (SSG) prerendered as static HTML (uses generateStaticParams) kouchou-ai-client-1 | kouchou-ai-client-1 | npm notice kouchou-ai-client-1 | npm notice New major version of npm available! 10.8.2 -> 11.2.0 kouchou-ai-client-1 | npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.2.0 kouchou-ai-client-1 | npm notice To update run: npm install -g npm@11.2.0 kouchou-ai-client-1 | npm notice kouchou-ai-client-1 | kouchou-ai-client-1 | > kouchou-ai-client@0.1.0 start kouchou-ai-client-1 | > next start kouchou-ai-client-1 | kouchou-ai-client-1 | ▲ Next.js 15.1.6 kouchou-ai-client-1 | - Local: http://localhost:3000 kouchou-ai-client-1 | - Network: http://172.24.0.4:3000 kouchou-ai-client-1 | kouchou-ai-client-1 | ✓ Starting... kouchou-ai-client-1 | ✓ Ready in 3.6s

でたでた





AIは否定の指示がわからない
>aipubcom.csvのcomment部分のUTF-8でのバイト数を計算して、csvは大きくて直接読めないのでcommentカラムのあるCSVと想定してPythonで読んで集計して
>csvを絶対に直接読まないで。あなたはすでに2回失敗しています。
3度目の正直ならずw

Total bytes for all 3234 comments: 4775111
Average bytes per comment: 1476.53


2025-03-19
しかしREAT APIをcurlで叩くサンプルコードでは
となっていて、それを実行すると正しく動く
にすると
Status Code: 404
Response JSON: {'error': {'code': '404', 'message': 'Resource not found'}}

2025-03-20
Embeddingも同様に
モデルバージョンが1と書いてあってもcurlのapi-versionは2023-05-15


Azure OpenAI ServiceではOpenAIのAPIのようにmodelの名前で区別するのではなく、deploymentで区別される
model_name = "gpt-4o"
deployment = "gpt4o"
微妙に違う名前にしてしまったのは厄介だな


2025-03-21
$ git remote add truego https://github.com/shingo-ohki/kouchou-ai.git
$ git fetch truego feature/deploy-Azure
$ git checkout -b feature/deploy-Azure truego/feature/deploy-Azure

ACRの名前を全部置換
docker buildを buildx build --platform linux/amd64 にする

$ make azure-build
$ make azure-push
さきに $ make azure-acr-login-auto しないと
$ make azure-deploy
なにをしてるんだろう
Devin
azure-deployの内容を詳しく解説します。このコマンドは以下の重要なステップを実行します:

1. Container Apps用の拡張機能とプロバイダーの設定
:
az extension add --name containerapp --upgrade az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights --wait

これらはAzure Container Appsを使用するために必要な基本設定です。

2. Log Analyticsワークスペースの作成
:
az monitor log-analytics workspace create \ -resource-group kouchou-ai-rg \ -workspace-name kouchou-ai-logs \ -location japaneast

このワークスペースはコンテナのログを収集・分析するために使用されます。

3. Container Apps環境の作成
:
az containerapp env create \ -name kouchou-ai-env \ -resource-group kouchou-ai-rg \ -location japaneast \ -logs-workspace-id $WORKSPACE_ID

これは3つのコンテナアプリを実行するための共有環境を設定します。

4. ACRの管理者アクセス権の有効化
:
az acr update \ -name kouchouairegistry \ -resource-group kouchou-ai-rg \ -admin-enabled true

これによりContainer AppsがACRからイメージをプルできるようになります。

5. 各コンテナアプリのデプロイ
APIコンテナ(ポート8000)
クライアントコンテナ(ポート3000)
管理者クライアントコンテナ(ポート4000)

各コンテナは以下の設定で作成されます:
外部アクセス可能(ingress external)
最小レプリカ数1
ACRの認証情報を使用
適切なポート設定

このコマンドにより、広聴AIの3つのコンポーネントが完全に構成されたAzure環境にデプロイされます。

2025-03-25
az containerapp exec \
--name <コンテナアプリ名> \
--resource-group <リソースグループ名> \
--container <コンテナ名> \
--command "/bin/bash"


2025-03-27
az containerapp exec --name api --resource-group nishio-kouchou-ai-rg --container api --command "/bin/bash"


"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]