ONNX

ONNX Runtime GenAI を使用すると、.NET Agent Framework アプリケーションで互換性のあるモデルをローカルで実行できます。 モデルの実行をホスト上に維持する必要があるオフライン開発、デバイス上の推論、またはデプロイに使用します。

Note

現在の ONNX クライアントは、関数呼び出しをサポートしていません。 エージェントに渡される関数ツールは無視されます。

前提条件

  • .NET 8 以降。
  • ONNX ランタイム GenAI 用にエクスポートされたモデル。
  • 選択したモデルに対して十分なローカル メモリと互換性のある実行プロバイダー。

パッケージをインストールする

dotnet add package Microsoft.ML.OnnxRuntimeGenAI
dotnet add package Microsoft.Agents.AI --prerelease

Configuration

ONNX_MODEL_PATH="<path-to-onnx-runtime-genai-model-directory>"

ONNX に基づくエージェントを作成する

ONNX Runtime GenAI 用にエクスポートされたモデルをダウンロードし、モデル ディレクトリに ONNX_MODEL_PATH ポイントします。

// E.g. C:\repos\Phi-4-mini-instruct-onnx\cpu_and_mobile\cpu-int4-rtn-block-32-acc-level-4
var modelPath = Environment.GetEnvironmentVariable("ONNX_MODEL_PATH") ?? throw new InvalidOperationException("ONNX_MODEL_PATH is not set.");

// Get a chat client for ONNX and use it to construct an AIAgent.
using OnnxRuntimeGenAIChatClient chatClient = new(modelPath);
AIAgent agent = chatClient.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");

// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

モデル ファイル、実行プロバイダー、量子化、使用可能なメモリによって、ハードウェアの互換性とパフォーマンスが決まります。 再配布する前に、モデル ライセンスを確認します。

Tools

現在の ONNX クライアントは、関数呼び出しまたはプロバイダーホスト型ツールをサポートしていません。

次のステップ