Azure OpenAI Service を試してみる (2)

というわけで続きをやっていきましょう(プレイグラウンドで試すぐらいは前回しておけばよかった)

Azure OpenAI Studioで早速触ってみましょう。とりあえず試すにはプレイグラウンドが簡単です。プレイグラウンドはStudio内で(ブラウザで)モデルのCompletions API(入力候補って翻訳されてる)にプロンプト等を投げてテキストを生成したりできます。

続きを読む

Azure OpenAI Service を試してみる

Azure OpenAI ServiceがGAしたということで試してみようかなと思ったり。

ちなみにGAしたとはいえ、記事にある通りMicrosoftの責任あるAIの原則に沿って利用目的や適用例を説明してアクセスを申請する必要があります。

※なおアクセス申請のフォームでいろいろ問われたり説明されたりしますが、最初は期待通り動作するか等の検証・開発するのが前提で、その後本番環境に展開する際に再度申請するという流れのようです。あと1サービス・アプリ毎に申請が必要です。

※データやプライバシーなどについてはこちら:Data, privacy, and security for Azure OpenAI Service – Azure Cognitive Services | Microsoft Learn 一応、不正使用の監視やコンテンツフィルタリングについて制限付きアクセスが行われるのですが、Microsoftの制限付きアクセスフレームワークによって管理される適格基準に従って人間によるレビューやデータログに関するプロセスをオプトアウトすることが申請でできるようです。気になる人はちゃんとドキュメント読んでください。

というわけでポチポチやっていきましょう。ぽちぽちと言いつつ最終的に作っていくものは申請した内容のモノなので、あまり逸脱できませんが。
※ ChatGPTちょっと試したいみたい!な人は本家OpenAIのほうでアカウント作ってトライアルしたほうが断然楽ですよ。

続きを読む

Visual Studio 2022 の IntelliCode の入力候補の適用キーを変えたい

Visual Studio 2022のIntelliCodeですが、バージョン上がるたびに学習度合いも良くなったのか結構いい入力候補の提案をしてくれるようになりました。

さてそんな便利な機能ですが、唯一の難点は候補を反映するのがTabキーなのですよね。
image

さらさらとコード書いててインデントするのにTab打とうとしたらIntelliCodeの候補が出てて同意からの反映されてしまってぐぬぬ、みたいなのは誰しも経験があることではないでしょうか?

そんなIntelliCodeをオフにしてイライラ避けたいけどメリットもあるしなぁ、という方に朗報。任意のキーにすることはできませんが、Tabキーから右矢印キーに変更することは可能です。

ツール → オプションのIntelliCodeの詳細で「右矢印の行全体の入力候補を適用する」にチェックすればOKです。
image

これでTabキーじゃなくて右矢印キーになりました。

image

任意のキーにはできないけど、まぁこれで多少使い勝手がよくなるなら。。

参考

Microsoft Graph Explorer でテナントを切り替える

Microsoft Graph API のちょっとしたテストができる Microsoft Graph Explorer というツール(Webサイト)があります。

REST APIを扱うクライアントコードを書かなくても実行できるので、とても便利なツールですが、実行ユーザーが複数のテナントに所属している場合、意図したテナントで実行できない場合があります。

何もサインインせずにGraph Explorerにアクセスするとサンプルデータなサンドボックス環境なので(それはそれで影響を与えずにテストできるから便利なのですけど)、自テナントのデータを見たいとかになるとサインインするわけですが、サインイン時やサインイン後にGraph Explorer上でテナントを切り替えることができません。既定のテナントが操作したいテナントでない場合、大変困ってしまいます。

が、実はUI上はまだ無いみたいですがURL直指定だとテナント指定できます。

上記のURLのようにテナントID(IDでないとダメ)を指定してからサインインするとそのテナントになります。

image

面倒くさいという人はソースがPublicリポジトリにあるので、Cloneして自前で展開して設定したりするといいですよ。

おまけ

永遠のPreviewっぽいAzure Resource Explorer も、もしテナント切り替えがうまくいかない場合とかあればURLで以下のようにテナントIDを指定すると切り替えられます。

Readmeだと一覧が見れたりするっぽいんですけどね。(というかもともとテナント一覧表示されて切り替えられてたんですけど、動かなくなってるので)

Azure AD テナントを削除するときにエンタープライズアプリケーションが削除できない

Azure ADテナント(Azure AD B2Cを含む)を削除するときにはいろいろ手順を踏まないといけませんが、その中でも面倒なのが Microsoftのファーストパーティーアプリケーション(Microsoft First Party Application) とかいうやつです。
テナント削除時は登録したユーザーやアプリケーションなど関連リソースは全部消してからでないとテナント削除できませんが、このファーストパーティーアプリケーションは削除が無効化されてたりします。

ちゃんと(?)削除する場合は松村さんが書いてるPowerShellとかで削除するといいですが、もう削除しようとしているテナントの為にAzure PowerShell環境用意したり、Cloud Shellがんばったりするの面倒ですよね。

Microsoft ファーストパーティー以外のアプリは削除しておかないといけませんが、Microsoftファーストパーティーのアプリはサインインさえできなくなっていれば実は問題ない感じです。

というわけで「ユーザーのサインインが有効になっていますか?」を「いいえ」にして保存すれば無理に削除しなくてもテナント削除できる可能性があります。

という感じで削除したい場合に試してみてください。

続きを読む

TerraformでWeb Appsにカスタムドメイン名を設定したい

TerraformでAzure App ServiceのWeb Appsにカスタムドメイン名(特にネイキッドドメイン)を設定したい場合、AレコードにIPアドレスを設定する必要がありますが、App Serviceの受信IPアドレスを簡単にとれません。

Azure Resource Manager(ARM)上は一応 inbound_ip_address があるんですけどTerraform上で扱えないんですよね。以前は無理やりoutbound_ip_address (送信IPアドレス)の最初の要素を使ったりしてましたが(受信IPアドレスが最初に入ってた)不確かで実際最近はそんなことはないのでうまく設定できない状況でした。

で、どうしたものか悩んでたら ‘web apps名’.azurewebsites.net を正引きしてIPアドレスを取得すれば確実、ということらしく hashicorp/dns で取得したIPアドレスを使えばいいようです。

resource "azurerm_linux_web_app" "example" {
  name                = "example"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_service_plan.example.location
  service_plan_id     = azurerm_service_plan.example.id

  site_config {}
}

data "dns_a_record_set" "app_ip_address" {
  host = azurerm_linux_web_app.example.default_hostname
}

resource "azurerm_dns_a_record" "dns_a" {
  # ...
  target_resource_id  = data.dns_a_record_set.app_ip_address.addrs[0]
}

他にはTraffic ManagerのAzureリソースのエンドポイントでApp Serviceが使えたらそもそもこんな苦労しなくていいのに、とか思いますけど。。
たまにTerraform触るたびにいろいろ嵌りますね。

追記

しばやん氏からのタレコミによるとそもそもAzure REST API Specからしてinbound IP addressは欠落してるぽい。(resource Explorerとかで見るとちゃんとあるのでSpec側のミス)

APIの実装って大変ですね

Microsoft.Azure.WebJobs.Extensions.EventHubs を 5.x にする

.NET 6.0 もリリースされて Azure Functions Runtime v4 もでたということで手元のアレコレをアップデートしてたのですが、IoT HubトリガーやEvent Hubsトリガーで使う Microsoft.Azure.WebJobs.Extensions.EventHubs 5.0.0 が出ていたのでついでに更新することにしたのですが、少し手直しが必要になったのでメモしておきます。
(現状、Visual StudioでIoT HubトリガーなFunctionsを追加すると 4.3.0 が使われるので更新すると同じことをしないといけないはず)

続きを読む