メインコンテンツまでスキップ

AI プロバイダーの概要

Reveal SDK AI は、さまざまな大規模言語モデル(LLM)サービスと統合できるプロバイダーベースのアーキテクチャを採用しています。各プロバイダーは個別の NuGet パッケージとして配布されるため、必要なものだけをインストールできます。

利用可能なプロバイダー

プロバイダーNuGet パッケージ拡張メソッド
OpenAIReveal.Sdk.AI.OpenAI.AddOpenAI()
Azure OpenAIReveal.Sdk.AI.AzureOpenAI.AddAzureOpenAI()
AnthropicReveal.Sdk.AI.Anthropic.AddAnthropic()
Google GeminiReveal.Sdk.AI.Google.AddGoogle()

プロバイダーの仕組み

すべてのプロバイダーは IAIProvider インターフェースを実装し、IRevealAIBuilder のフルーエント API を通じて登録されます。SDK はキー付きサービスを使用した依存性注入を採用しており、複数のプロバイダーを同時に登録できます。

プロバイダーの登録

プロバイダーは AddRevealAI() の後に拡張メソッドをチェーンして追加します:

builder.Services.AddRevealAI()
.AddOpenAI(options =>
{
options.ApiKey = "your-api-key";
})
.AddAnthropic(options =>
{
options.ApiKey = "your-api-key";
});

デフォルトプロバイダー

特定のプロバイダーが指定されていない場合、SDK はデフォルトプロバイダーを使用します。appsettings.json で設定できます:

appsettings.json
{
"RevealAI": {
"DefaultProvider": "openai"
}
}

利用可能なプロバイダーキー: openaiazure-openaianthropicgoogle

設定のバインディング

すべてのプロバイダーは appsettings.jsonRevealAI セクションからの設定バインディングをサポートしています。コードで設定したオプションは設定ファイルの値よりも優先されます:

appsettings.json
{
"RevealAI": {
"DefaultProvider": "openai",
"OpenAI": {
"ApiKey": "sk-...",
"Model": "gpt-4.1"
},
"Anthropic": {
"ApiKey": "sk-ant-..."
}
}
}

複数プロバイダーの使用

複数のプロバイダーを登録でき、SDK はリクエストに基づいて適切なプロバイダーを解決します。以下のようなシナリオで便利です:

  • 異なる種類の分析に異なるモデルを使用する
  • フォールバックオプションを提供する
  • 簡単なタスクをより安価なモデルにルーティングしてコストを最適化する
builder.Services.AddRevealAI()
.AddOpenAI() // "openai" として登録
.AddAnthropic() // "anthropic" として登録
.AddGoogle(); // "google" として登録

カスタムプロバイダー

標準でサポートされていない LLM サービスと統合する必要がある場合は、カスタムプロバイダーを構築できます。