NISHIO Hirokazu[日本語][English]

p広聴AI2025-03-13~

NEXT_PUBLIC_

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

    • Apple Silicon(M1/M2)などでビルドする際は、Azure上で動くx86_64用に docker buildx build --platform linux/amd64 ... のようにプラットフォーム指定が必要。
  2. Key Vaultとアプリの権限設定

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

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

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

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

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

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

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

サーバサイドでconsole.logした時にログにでない問題

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

2025-03-17 ver.1 ver.2 広聴AI (Digital Democracy 2030) 簡易Azure導入ガイド (ver.3)

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

$ 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リソースに移動します。 image

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

image image

image 前回これはCLIでやった気がするな

  • パラメータが色々でトラブってたからWeb経由をお薦めされたのかな

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

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

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

nishio.iconApp Serviceを3つ立ち上げるけど、費用はどうなります?3倍? o3-mini-high.iconApp Serviceの料金は、個々のアプリの料金ではなく、App Service Plan単位で発生します。 つまり、同じプラン内に3つのアプリを配置すれば、必ずしも費用が3倍になるわけではありません。ただし、各アプリを別々のプランで立ち上げると、その分料金がかさむ可能性があります。 nishio.iconAWSでいうと一つのEC2の中で3つのコンテナが動いてる感じですか? o3-mini-high.iconはい、その通りです。 同じ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を新しく作るみたいなことを言ってるけど違うよね 前回なんて言ってた? https://gist.github.com/nishio/bd2e30d604c3dad4b8aafe620fbf3635#2-web-appの作成サーバー用 :

# サーバー用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.iconすでにローカルで立ち上げる時ようにcompose.yamlがあるけどそれでいいのかな? o3-mini-high.icon基本的にはローカル用のcompose.yamlを利用しても問題ありません。ただし、Azure App Serviceで運用する際は以下の点を確認してください:

  • ファイル名:Azureでは通常「docker-compose.yml」として認識されるため、必要ならリネームしてください。
  • 環境変数・ポート設定:本番環境用に適切な設定が反映されているか確認する必要があります。 適宜調整すれば、そのまま使うことも可能です。

nishio.icon前回のマニュアルではそういうことはしていないのだけどシンプルにするためにこうなったのかな? o3-mini-high.iconそうです。前回は個々の設定を別々に行っていたかもしれませんが、今回はdocker-composeを使うことで設定を一元管理し、シンプルに運用できるように工夫されています。

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

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

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

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

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

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

  • $ az acr create --resource-group kouchou-ai-rg --name aikouchouacr --sku Basic
  1. ACRにログイン

  • $ az acr login --name aikouchouacr
  1. 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

  1. ACRへプッシュ

  • $ docker push aikouchouacr.azurecr.io/kouchou-ai-server:latest
  1. 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.icon 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がエラー image

https://gist.github.com/nishio/7745a8449c0688976db9aebfb5aa398e o3-mini-high.icon ログから見ると、コンテナが起動時に必要な設定情報(特に、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にするとかした方がいいのかも

zshで#をコメントにする

なんか色々エラーのようなものが出たりしてたけど他の作業をしているうちに気がついたら完了していた https://gist.github.com/nishio/df0513d9ac5219e848390315d08d03fe

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

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

今日の進捗

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

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

https://github.com/digitaldemocracy2030/kouchou-ai fork https://github.com/nishio/kouchou-ai 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で管理画面が出る image 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

image でたでた

image image

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 image しかしREAT APIをcurlで叩くサンプルコードでは https://japaneast.api.cognitive.microsoft.com/openai/deployments/gpt4o/chat/completions?api-version=2024-10-21 となっていて、それを実行すると正しく動く https://japaneast.api.cognitive.microsoft.com/openai/deployments/gpt4o/chat/completions?api-version=2024-11-20 にすると Status Code: 404 Response JSON: {'error': {'code': '404', 'message': 'Resource not found'}}

2025-03-20 Embeddingも同様に image モデルバージョンが1と書いてあってもcurlのapi-versionは2023-05-15 https://kouchou-ai-openai.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2023-05-15

Azure OpenAI ServiceではOpenAIのAPIのようにmodelの名前で区別するのではなく、deploymentで区別される

  • model_name = "gpt-4o"
  • deployment = "gpt4o"
  • 微妙に違う名前にしてしまったのは厄介だな

Azure OpenAIでレポートの作成を可能にする by nishio · Pull Request #107 · digitaldemocracy2030/kouchou-ai

2025-03-21 Azure 環境に簡単にセットアップできるようにする by shingo-ohki · Pull Request #115 · digitaldemocracy2030/kouchou-ai $ 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.icon 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を使用するために必要な基本設定です。

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

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

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

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

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

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

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

各コンテナは以下の設定で作成されます:

  • 外部アクセス可能(ingress external)
  • 最小レプリカ数1
  • ACRの認証情報を使用
  • 適切なポート設定

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

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

https://app.devin.ai/sessions/895b427620ef45c79a992efb319d31ac✅

2025-03-27 広聴AIからのサルベージ az containerapp exec --name api --resource-group nishio-kouchou-ai-rg --container api --command "/bin/bash"


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]