MASUDAQ BLOG

NO DEVELOPMENT NO LIFE.

Blazor WebAssembly の Bootstrap を最新にする

2024/10/12
★★

Blazor WebAssembly テンプレート Bootstrap ライブラリの最新化 過去に以下サイトの記事でASP.NET Core Web アプリケーションをテンプレートで作成した際の Bootstrap ライブラリを最新化する方法を説明しました。 ASP.NET Core の Bootstrap を最新にする やり方はほとんど変わらないですが、今回は、Blazor WebAssembly テンプレートの Bootstrap ライブラリを最新化する方法を説明します。 Blazor WebAssembly テンプレートでの Bootstrap ライブラリ参照 Blazor WebAssembly テンプレート生成後のコードでは、wwwroot/index.ht...

Blazor WebAssembly でのファイル ドラッグ&ドロップの実装

2024/10/06
★★

Blazor WebAssembly でのファイル ドラッグ&ドロップの実装の検討 Blazor WebAssembly では、JavaScript との相互運用ができるため公開されている情報や各種 JavaScript のライブラリを使用すれば、ファイル ドラッグ&ドロップの実装ができます。 JavaScript を使用すれば、ほとんどのことは実現できると思いますが、今回は、あえて JavaScript の力を借りずに、Blazor WebAssembly で提供されている範囲で実装する方法を順を追って検討し実現していきたいと思います。 InputFile コンポーネント Blazor WebAssembly 標準では、ファイルの操作に InputFile コンポーネン...

Entra ID においてアクセス許可へのユーザー同意を削除する

2024/09/16
★★

要求されているアクセス許可へのユーザーの同意 Entra ID で認証を実装すると、認証時に同意画面が表示されるようになります。 これは、OAuth をベースとした Entra ID の同意のフレームワークにより実現されており、以下の記事にどのようなものなのかの概要の記載があります。 https://jpazureid.github.io/blog/azure-active-directory/azure-ad-consent-framework/ どのユーザーが同意を行ったかの確認は、[Azure Portal] - [エンタープライズ アプリケーション] から対象のアプリを選択し、[セキュリティ] - [アクセス許可] で確認できます。API の種類、クレーム(...

.NET(C#) コンソールアプリで、Phi-3-vision を実行し画像を入力する

2024/06/08
★★★

Phi-3-vision 前回は、Microsoft Research が開発した SLM(Small Language Model) Phi-3 を .NET(C#) でローカル実行する方法を説明しました。 .NET 8 コンソールアプリで、Phi-3 を実行する 前回は、テキスト入力をサポートするモデルを使用しましたが、今回は、画像入力をサポートするモデル Phi-3-vision を使用したコード例を説明します。 今回も Hugging Face で公開されている ONNX 形式のモデルを使用したいと思います。2024/06 現在では、以下のモデルが公開されています。 microsoft/Phi-3-vision-128k-instruct-onnx-cpu ...

.NET(C#) コンソールアプリで、Phi-3 を実行する

2024/06/02
★★★

Phi-3 ラインナップ Phi-3 は、Microsoft Research が開発した SLM(Small Language Model) と呼ばれるコンパクトな言語モデルです。最大の特徴としては、モデルが公開されており、PC レベルでのリソースでも動作するため、言語モデルをローカルで実行することができます。エッジへの言語モデルの組み込みが可能です。 小さくても強力: 小規模言語モデル Phi-3 の大きな可能性 現在(2024/06)、Phi-3 モデルのラインナップは、以下のようになっています。 No. モデル パラメータ数 モデル名 コンテキスト長 1 Phi-3-mini 3.8B Phi-3-Mini-128K-Instruc 128K ...

Blazor WebAssembly から ASP.NET Core Web API を介した Azure OpenAI Service 応答ストリーム(Server-Side Events)の受信

2024/03/10
★★★

Blazor WebAssembly から中間層を介した Server-Sent Events の受信 前回、Azure OpenAI Service からのストリーム応答を ASP.NET Core Web API を介して、フロントエンド アプリで受信する方法を説明しました。 ASP.NET Core Web API を経由した Azure OpenAI Service 応答ストリーム(Server-Side Events)の受信 前回は、フロントエンド アプリを .NET コンソール アプリで実装しましたが、今回は、フロントエンド アプリに Blazor WebAssembly を使用した例を説明します。 Blazor WebAssembly を使用することで、...

ASP.NET Core Web API を経由した Azure OpenAI Service 応答ストリーム(Server-Side Events)の受信

2024/03/08
★★★★

中間層を介した Server-Sent Events 前回、Azure OpenAI Service からの応答をストリームで受信する方法を説明しました。Azure OpenAI Service では、応答を Server-Sent Events で受信でき、順次、回答の部分文字列を取得でき、取得した文字列を順次レンダリングすることができます。 Azure OpenAI Client Library で応答をストリームで受信する ただし、Azure OpenAI Service を利用したシステムを構築する場合では、前回の例のようなフロントエンドから直接 Azure OpenAI Service へ要求を行うシーンは少ないと思います。 多くのシステムでは、以下のように...

Azure OpenAI Client Library で応答をストリームで受信する

2024/03/05
★★

応答をストリームで受信 Azure OpenAI client library for .NET では OpenAIClient クラスの GetChatCompletionsStreaming メソッドで、生成された回答をストリームで取得できます。ストリーム取得することで、生成された回答の文字を順次取得することができます。 Azure OpenAI client library for .NET では、以下のようなコードで、ストリームで応答を受信できます。 OpenAIClient openAIClient = new(new Uri(aoaiEndpoint), new AzureKeyCredential(aoaiApiKey));ChatCompletionsOp...

Azure OpenAI Client Library HTTP ログ出力を LoggerFactory に転送する

2024/02/25
★★

Azure OpenAI client library for .NET ログ出力の有効化 Azure OpenAI client library for .NET のログ出力を有効化する方法を以下の記事で説明しました。 Azure OpenAI Client Library HTTP ログ出力の有効化 この記事では、AzureEventSourceListener.CreateConsoleLogger、AzureEventSourceListener.CreateTraceLogger メソッドを使用して、ログの出力先を指定していました。また、これらのメソッドの引数で、ログレベルを設定していました。 今回は、Azure OpenAI client library ...

.NET 8 コンソールアプリで、DI(Dependency Injection) する

2024/02/24
★★

Host.CreateDefaultBuilder と Host.CreateApplicationBuilder 以前の記事で、コンソール アプリで依存性の注入をするために、Generic Host を使う方法を説明しました。 .NET コンソールアプリで、DI(Dependency Injection) する ここで、以下のようなコードを説明しました。 // IHostBuilder ベース public class Program { public static void Main(string[] args){ IHost host = Host.CreateDefaultBuilder(args).ConfigureServices(services =>{...

profile image

Masudaq


趣味は、プログラミング。Microsoft 技術を中心に、フルスタックエンジニアとして日々鍛錬しています。