.NET Core
OpenAI / Azure OpenAI でとりあえずトークン数を数えることってちょいちょいありますよね。今回は C#, TypeScript のついでに Python もメモしておこうかなという話です。 はじめに: トークンとは Python: tiktoken C# Tokenizer Semantic Kernel: GPT3Tok…
C# でひとつのソリューションの中に複数のプロジェクトがあるのはよくあると思います。そしてTarget framework のデフォルトの言語のバージョンを上位バージョンにあげることってよくありますよね。 今回は「Directory.Build.props で指定することでソリュー…
Azure Functions で、本番環境でのログレベルと、ローカルの PC でデバッグでログレベルは変えたいときにどう設定するかのお話です。 2021年7月時点で C# の Azure Functions v3.x (バージョンに関する詳しいことはここ)での話です。 ログレベルの設定は、…
ASP.NET Core のルーティングについての簡単な自分用メモです。ようは Endpoint Routing についてです。 タイトルでは ASP.NET Core 5 と書きましたが Endpoint Routing は v2.2 で追加されて以前の Routing 機能よりパフォーマンスの向上もしているので使わ…
2020 年は1月から9月の間で Cognitive Services の Vision カテゴリーの中の OCR の機能がちょろちょろとアップデートしてました。 OCR の今までのアップデートを振り返りつつ、最新の Read API v3.1 Preview2 を試してみます。 Cogbot #29でもお話しした内…
先日 Cogbot でお話しした際にコーディングだけですましてしまったので、そのフォローアップとして話した内容やコードをまとめました。 はじめに Echo Bot の作成 EchoBot の Adaptive dialog を書いてみる root.dialog の追加 出力ディレクトリに常にコピー…
前回は AAD B2C の設定をするだけで力尽きました。今回は Console App を使って、前回設定した Azure AD B2C のユーザーの情報やカスタム属性を取得・変更してみましょう。 カスタム属性は、前回 Tenant という名前の属性を追加したってことを前提に、Tenant…
Azure AD B2C では、ユーザーの情報として Email や表示名、姓、名といったの一般的な Claim があります。それに加えて独自の Claim を追加することができます。 それがカスタム属性です。 Azure Portal からでは、カスタム属性を作成することがはきますが、…
Entity Framework Core では、はるか昔 (v2.0) に Global Query Filters (グローバルクエリフィルター)という Cool な機能が追加されました。 わかりやすそうなユースケースとして 論理削除されたデータはデフォルトで除外して、データを取得する マルチテ…
Azure Cosmos DB の Change Feed は、データの変更を検知してイベントを発火できる超便利な機能です。Azure Functions の Cosmos DB Trigger を使うことで超簡単に利用できます。 個人的には近年 RDB はほぼ使ってなくて Cosmos DB ばっか使ってるわりに Cha…
.NET Interactive で C# が Jupyter Notebook 上で動くのは結構前からありましたが、PowerShell も使えるようになったらしいので試してみました。 (ちなみに普段 PowerShell は滅多に使いまてん...) 準備 conda update .NET Core 3.1 SDK のインストール d…
前回 Slack 側の準備と送信したいメッセージの json フォーマットを作りました。 blog.beachside.dev 今回は本題の Azure Functions の Custom Bindings を実装します。 作った順にコードを解説していきますが、コード全部は下の方にリンク張ってます。 Azur…
C# では .NET Core 3系にて Json のシリアライザーとして System.Text.Json が生まれました。 長らくお世話になった Json.NET - Newtonsoft とのお別れです。 多少お作法が異なるので、個人的に気になった点を整理してみました。 TL;DR 基本的な使い方 準備 …
自分のアプリから Slack への通知を、Azure Functions の Custom Bindings を使って作ります。 Slack の Incoming Webhook を使うことで簡単に Slack へ送信できるため、Logic Apps ...いやそれより Functions で HTTP Request 投げた方が早いですが、時間を…
Azure Functions には、バインディング ( bindings ) という仕組みがあります。これを使うことでいちいち細かいコードを書かなくても設定と少量のコードで、Queue トリガーを指定したり、Cosmos DB からデータを取得したり登録したりできます。 bindings の…
Azure Functions の拡張機能である Durable Functions にはいくつかの実装パターンがありますが、ここでは Human interaction pattern を取り上げます。 今年の1月頃に書きかけてから、書くほどのことでもないなーと放置してたブログを更新しました...あの頃…
Microsoft Inspire で HoloLends 使った翻訳デモがあったりして盛り上がりを感じたので久々に触ってみようと思いました。 今回は、話した音声を Speech to Text でテキスト化して表示するコンソールアプリを作ります。 プロジェクト作成と Nuget のインスト…
犬種の画像分類の学習モデルを ASP.NET Core に組み込みんで画像分類できるようにします。 Azure の Custom Vision で画像の分類器を秒殺で作成することで(盛りました、作成に数分くらいです)、TensorFlow の画像分類のモデル作成のターンでは、機械学習の…
犬種の画像分類の学習モデルを C# のコンソールアプリに組み込みんで画像分類できるようにします。 Azure の Custom Vision で画像の分類器を秒殺で作成することで(盛りました、作成に数分くらいです)、TensorFlow の画像分類のモデル作成のターンでは、機…
ASP.NET Core 2.2 で In-Memory にデータをキャッシュしておくための専用の機能のひとつ、System.Runtime.Caching/MemoryCache の使い方について軽く整理してみました。 In-Memory キャッシュの利用ガイドライン コーディング Nuget Package のインストール …
.NET Core のプロジェクトでなんか作っててもバージョン情報は、csproj でちょいちょいーっとしか管理してなかったので多少なりとも知っておきたいなーと感じました。 とゆーことで最近(NuGet 4.0 以降、MSBuild 15.1 以降)の.NET Core でのバージョン管理…
前回書いた Azure Functions の DI の方法だと、ASP.NET Core ではよく使う appsettings.json の読み込みがデフォルトで設定されていません。 local.setting.json ローカルデバッグ用の環境変数の設定はできるけど、 で困るのは Array とか object に対応し…
気づけば Azure Functions V2 のC#で DI ( Dependency Injection )が正式にサポートされましたね。依存性の注入とか依存関係の注入とか、MSのドキュメントだと依存関係の挿入とかってやつです。 実装のざっくりな要点は以下だと思ってます。 Startup.cs で D…
最近(2019/4ごろ) Azure Bot Service でチャットボットを作成してソースをダウンロードし、デバッグしても動かないということがあったのでちょっと調べてみました。 このエラーの対処もまた色々な変更ですぐに対処方法が変わるでしょうけど、メモしておきま…
Azure Bot Service では、WebChat とか外からの接続は Bot Channel 経由でなります。 WebChatとかだとここが Cold Start するので、たまーにアクセスすると初回のみ遅くて残念(一昔前よりはだいぶ早くなったけど!)。 ならば定期的にヘルスチェックして Co…
Cosmos DB の一意キー制約(Unique Key Constraints)について、実装方法やエラー時の挙動を調べたメモです。 いきなり余談ですが、 一昔前に Cosmos DB で Collection と呼ばれていたものは、Azure の Portal だとまだ "Collection" と表現されていますが、…
ローカル環境だけで開発が進めれるよう Azure Cosmos DB Emulator があります。 接続文字列は固定なので、ASP.NET Core で使うなら appsettings.Development.json とかに直接接続文字列書いたりも許容範囲化と思いますし、便利に使えそうだと思っています。 …
Azure Functions V2 の Release pipeline の作成その2です。前回はローカルにデプロイしましたが、今回は Blob にデプロイするバージョンです。前回より実践的な方法となります。 ただ、2018年12月時点だと Azure DevOps で Azure Functions V2 の Run From …
今回は、Zip デプロイ・Run From Package の CI/CD パイプラインを作ります。具体的には、Azure DevOps 上で Build Pipelines と Release Pipelines を構築します。 以前の回で作成した Azure Functions V2 のプロジェクトを使ってやります。
今回は Azure Function Core Tools の CLI を使って Blob Storage へ Zip デプロイ、Run From Package する方法のメモです。前回作成したプロジェクトを使って進めていきます。