MASUDAQ BLOG
NO DEVELOPMENT NO LIFE.
C# でも動作するマルチエージェント フレームワーク AutoGen ラウンドロビン グループチャット編
複数のエージェントを連携させるグループチャット 前回は、マルチエージェント フレームワーク AutoGen for .NET を使用して簡単な壁打ちチャット実装の例を紹介しました。 今回は、より多くのエージェントを使用したグループチャットの実装例を説明したいと思います。 グループチャットを使用することで、複数のエージェントでコンテキストを共有し、エージェントを連携をさせてタスクを解決させることができます。 グループチャットは、IGroupChat の実装として、RoundRobinGroupChat、GroupChat が提供されています。 ラウンドロビン グループチャット RoundRobinGroupChat を使用することで、各エージェントをシーケンシャルに実行でき...
C# でも動作するマルチエージェント フレームワーク AutoGen
AutoGen for .NET AutoGen の情報を Web で調べると、Python コードの例が多く出てきますが、AutoGen for .NET といった C# 対応のもの提供されています。 AutoGen: https://microsoft.github.io/autogen/ AutoGen for .NET: https://microsoft.github.io/autogen-for-net/ Auto Gen for .NET は、Nuget パッケージとして公開されており、実際にコードを書く場合は、このパッケージをインストールして利用します。 AutoGen Nuget Package: https://www.nuget.org/pac...
.NET(C#) コンソールアプリで、Phi-3-vision を実行し画像を入力する
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 を実行する
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)の受信
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)の受信
中間層を介した 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 で応答をストリームで受信する
応答をストリームで受信 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 に転送する
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) する
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 =>{...
.NET コンソールアプリで、構成情報を appsettings.json からロードする
コンソール アプリにおける構成情報のロード 以前の記事で、コンソール アプリで、Generic Host を使うことで、appsettings.json から構成情報をロードできることを説明しました。 .NET コンソールアプリで、DI(Dependency Injection) する Generic Host を使うことで、DI(Dependency Injection) 等の多くの機能が使えますが、構成情報のロードは、多くの機能の一部に過ぎません。 検証やデモ等で、簡単なコンソール アプリを開発する場合は、Generic Host の実装は、オーバースペックになるため、今回は、構成情報のロードに絞って説明します。 ConfigurationBuilder による構...
最新の記事
- C# でも動作するマルチエージェント フレームワーク AutoGen ラウンドロビン グループチャット編
- C# でも動作するマルチエージェント フレームワーク AutoGen
- Blazor WebAssembly でのファイル ドラッグ&ドロップの実装 JavaScript との相互運用編
- Blazor WebAssembly の Bootstrap を最新にする
- Blazor WebAssembly でのファイル ドラッグ&ドロップの実装
- Entra ID においてアクセス許可へのユーザー同意を削除する
- .NET(C#) コンソールアプリで、Phi-3-vision を実行し画像を入力する
- .NET(C#) コンソールアプリで、Phi-3 を実行する
- Blazor WebAssembly から ASP.NET Core Web API を介した Azure OpenAI Service 応答ストリーム(Server-Side Events)の受信
- ASP.NET Core Web API を経由した Azure OpenAI Service 応答ストリーム(Server-Side Events)の受信
人気の記事
- .NET 8 RC1 を Visual Studio 2022 で利用する
- Entra ID においてアクセス許可へのユーザー同意を削除する
- Visual Studio 2022 で Sass(.scss) をコンパイルする
- .NET コンソールアプリで、構成情報を appsettings.json からロードする
- Windows のライセンス認証で、エラーコード 0x80072EE2 が発生
- Hyper-V と NTP(Linux ntpd) 時刻同期の問題
- .NET 8 コンソールアプリで、DI(Dependency Injection) する
- ASP.NET Core Web アプリの Bootstrap バージョンを最新にする
- stat=Deferred Connection refused by [127.0.0.1]
- Hyper-V でルーターを構成する