BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

openai の v1 系での Azure OpenAI へのアクセス (Python)

11月6日の OpenAI Dev Day の時期に openai のライブラリ は v.0.x 系 (最終的には v0.28.1) から v1系にアップデートされました。 Azure OpenAI へのアクセス方法も breaking changes が発生しています。過渡期になり、openai のライブラリはバージョン指定…

Azure OpenAI のアクセスにネットワーク制限をする (サービスエンドポイント編)

今回は、Function App/App Service から Azure OpenAI へアクセスを仮想ネットワークのみにしたいというケースの話です。 Azure OpenAI へのアクセスを仮想ネットワークのみに限定することは可能ですが方法はいくつかあります。 そして Azure OpenAI のみに…

Visual Studioで File Scoped Namespaces をデフォルトに設定して無駄なネストをひとつ減らす (C#)

Visual Studio で file scoped namespaces の設定って今日の今まで毎回手作業で直してたんですが、VS の設定であるんじゃねーのかと思いついて気づいて調べたらありましたのでメモしておきます。 File Scoped Namespaces とは Visual Studio 2022 で File Sc…

OpenAI: 文章のトークン数を数える (C#, Python, Node)

OpenAI / Azure OpenAI でとりあえずトークン数を数えることってちょいちょいありますよね。今回は C#, TypeScript のついでに Python もメモしておこうかなという話です。 はじめに: トークンとは Python: tiktoken C# Tokenizer Semantic Kernel: GPT3Tok…

GitHub Apps を使って GitHub Actions のワークフローでトークンを生成する

「GitHub Actions で Pull request を作成するワークフローを起動したら、別のワークフローを Pull Request のトリガーで起動したい」を実現するのが今回のことの発端です。 GitHub Actions では、デフォルトで GITHUB_TOKEN ってのがあって便利に使えますが…

GitHub のログインをパスワードレス認証に設定してハッピーになる

2023年7月13日に、GitHub のログインでパスワードレス認証の機能がプレビューとして公開されました。パスワードなしで認証できるわけですが、パスワードの代わりとなるパスキーとなるものの具体的なのはこんな感じ。 Windows の PC を使ってるなら Windows H…

Azure AI Studio (Azure OpenAI Studio) へアクセスできるユーザーを追加する

Azure OpenAI の登場で新たに Azure に来たユーザーも増え、まだ操作が慣れていないとアクセス許可どうすんねんと思う人も増えただろうと思ってのネタになります。 Azure ポータルで設定・確認する Azure ポータルで IAM を変更 割り当てられたユーザーの確…

Azure Pipelines で matrix の値を動的に設定したい (Azure DevOps)

Azure Pipelines で、Job は依存関係を設定しない場合は並列で動作します。 同じ処理だけどパラメーターだけ異なるような Job を複数構成したい場合、matrix を使うことでいい感じに YAML を書くことができます。 今回は、その matrix を構成を動的にセット…

プロンプトエンジニアリングの基礎: 2/3 (C# +Azure.OpenAI SDK)

前回から引き続きで、DeepLearning.AIというサイトの無償コンテンツのひとつで OpenAI + Python の「ChatGPT Prompt Engineering for Developers」を受講して学んだことのまとめメモの2回目です。 プロンプトエンジニアリングの基礎: 1/3 (C# +Azure.OpenAI …

プロンプトエンジニアリングの基礎: 1/3 (C# +Azure.OpenAI SDK)

DeepLearning.AIというサイトでは、アカウントを登録するだけで AI に関する学習コンテンツがあります。 その中の無償コンテンツのひとつで OpenAI + Python の「ChatGPT Prompt Engineering for Developers」を受講してみました。 そこで学んだことを Azure…

Azure OpenAI で C# のSDK を使うとき最初に知っておきたい入門知識

今回は C# で OpenAI の SDK で ChatCompletion API を使ってチャットのサンプルコードを書きつつ、SDK を使うとき最初に知っておきたいいくつかの Tips を書きます。今回はざっくり以下を環境で話を進めます。 Azure OpenAI でモデルは GPT-3.5 以降のモデ…

Azure CLI で B2C のアプリのシークレットを更新する

Azure CLI で Azure AD B2C や Azure AD の app registration で作成したアプリのクライアントシークレットの更新方法のメモです。 ここでは B2C の話になっていますが、Azure AD でも全く一緒です。 Azure CLI で Azure AD B2C (または Azure AD) の操作を…

渡航メモ (2023年4月 - シアトル)

今年は COVID-19 も落ち着いて気楽にアメリカに行けるシーズンが戻ってきました。アメリカだといつもバタバタするので恒例のメモを書いておきました。 今回も飛行機は DELTA で、2023年4月17日に出発して4/22日に帰国しました。 事前準備 Delta FlyReady と …

Graph API で Azure AD B2C のユーザーを次回サインイン時にパスワードを強制変更させたいときの注意点 ( C# )

Azure AD B2C のユーザーが次回サインインするときにパスワードの変更を強制させるのを Graph API でセットしたいときの話です。 以下のドキュメントで、ドキュメントの先頭に必要な permission が書かれており、Permission type が Application の場合は Us…

Durable Functions で instanceId を確認したい (C# / Typescript / Python)

Durable Functions でたまに instanceId を取得したいときがあります。例えば Activity function で external Event の URL を作りたいときとか。私的にはあまり使わない Durable functions の Python ではどうだっけって気になったので、C# と Typescript …

HttpTrigger の Azure Functions でパスやリクエストヘッダーの値を使って DI する (C#)

今回は C# の Http Trigger の Azure Functions の DI する際の Tips です。 例えば、こんなパス /api/costomers/abc123/order にアクセスする際、abc123 が顧客の ID でその値を使って DI したいときとかの話です。後述しますがなんでも DI した方がいいっ…

Surface book 3 から ASUSU Zenbook S 13 OLED に替えた話

購入時から Surface Book 3 のスペックというか挙動の重さに不満があり、それでも月に1-2度しか使わないから約2年我慢してました。 がしかーし2022年末に Zenbook S 13 OLED (UM5302, AMD Ryzen 6000 series) に乗り換えました。 ベンチマークと使った感想を…

Cosmos DB Change Feed の Azure Functions (C#) 実装入門 2023 年編 (Function App / Cosmos DB Trriger)

2022年の後半に Microsoft.Azure.WebJobs.Extensions.CosmosDB の v4 が GA して実装方法も改良されたので、ここで改めて Cosmos DB の Change Feed の開発方法 ≒ Cosmos DB Trigger の Function App の実装の基礎や Tips を書いていきます。 なお、Change F…

GitHub Actions で ASP.NET MVC ( .NET Framework 4.8 ) を Azure App Service (Web App) へデプロイ

ASP.NET MVC ( .NET Framework 4.8 ) のアプリを GitHub Actions での CI/CD して Azure の App Service (Web Apps) へのデプロイするまでの方法を書いていきます。 ここら辺のドキュメントとか情報は少ないのが書こうと思ったモチベーションでした...と思っ…

C#: ビルドした exe や dll が AnyCPU / x86 / x64 かを確認する

ビルドして出力された exe や dll が AnyCPU / x86 / x64 を確認する方法はいくつかあります。 私は今回 Windows で Visual Studio が入ったローカル環境で試すので、手軽に確認できる corflags.exe を使っていきます。 実際に知りたいのは、諸条件下で msub…

ASRock B550 Steel Legend の BIOS を更新する

最近 PC の調子...というかグラボのドライバーがクラッシュする頻度がちょいちょいあって色々試しても改善しない中、BIOS のバージョン上げとくかってお気持ちになったのでその作業メモです。 事前準備 最新バージョンのダウンロード BIOS の更新 余談 事前…

Cosmos DB の Bulk Executor を使った一括インポート

概要: learn.microsoft.com チュートリアル: learn.microsoft.com ざっくりまとめ: サポートしてる API は、Azure Cosmos DB SQL API と Gremlin API 一括インポート API と一括更新 API SDK v2 だと外部 SDK が必要だが、SDK v3 ではサポートされているので…

GitHub Actions で Azure API Management の CI/CD (ASP.NET Core 6)

Azure API Management の裏に Web API があると、Web API の CI/CD と一緒に API Management の APIs も更新したいですよね。 公式ドキュメント ではめんどくさそうな実現方法が書かれていますが、APIs だけ更新したいなら Azure CLI で実現するのがシンプル…

GitHub Actions で OIDC を使って Azure にログインする

別のブログを書いてる時にこの操作が必要になったんですが、そっちで書くと主旨からずれるのでここで書くことにしました。 GitHub Actions で Azure へログインする際、従来は Azure 側で publish profile を使ったり secret をつかったりでしたが、有効期限…

ASP.NET Core 6 で Open API (Swagger) の定義ファイルを CLI で出力する (ローカル環境で実行編)

今回は ASP.NET Core 6 で Swashbuckle.AspNetCore の CLI を使って json または YAML で定義ファイルを出力するポイントを書いていきます。 ASP.NET Core 6 と書きましたが 3系や5系も基本的には一緒です。2系だと多少異なりますがもう使ってないと思うので…

Graph API で Azure AD B2C のコンシューマーユーザーを作成する (C#)

C# で B2C のユーザーを登録する方法を書いていきます。C# の話というよりは、Azure AD B2C の設定がほとんどって感じです。 事前に知っておきたい知識 ユーザーアカウントの種類 ユーザーアカウントの違い B2C でサービスプリンシパルの作成 Application の…

GitHub Actions の storage の容量がいっぱいになった時の対処方法とエコな運用 Tips

GitHub Actions を何気に使ってると、Storage の容量がいっぱいになって GitHub Actions がエラーで実行できなかったり、ストレージの課金をせねばあかんのかと迫られることがあります。 こんな時の確認方法や対処方法と、運用で考慮しておきたい Tips を書…

Azure Backup / Azure Site Recovery の入門知識

基本的に PaaS /Serverless しか使わないので Azure Backup / Azure Site Recovery は使うことはないんだが、勉強がてらざっくりまとめた内容のメモ。 雑なメモとして使ってる非公開ブログに書いたつもりが...間違ってこっちのブログに書いてたのを公開から…

Form Recognizer の更新情報 (2022年6月)

Microsoft Build 2022 に合わせて Form Recognizer にいくつかのアップデートがありました。 この時期のあるあるとして、公式ドキュメント の日本語は翻訳されておらず古い状態になってるので、英語のドキュメントを見る必要がある時期ですね。 ということで…

AMD の Smart Access Memory の設定を有効にする

Ryzen 3000系または5000系と Radeon RX 6000 系の組み合わせだと、Smart Access Memory という設定を有効にするとパフォーマンスがアップするそうなので設定してみました。そんなメモです。 ちなみに私のマザボは ASRock の B550 Steel Legend です。 半年前…