プロバイダー概要
プロバイダーは、NeoTavern が外部 AI サービスと通信する方法です: 言語モデル、音声合成、音声認識、画像生成です。
1 つのアダプターコントラクト
すべてのプロバイダー — OpenAI 互換のチャットエンドポイント、ネイティブの Anthropic 接続、NovelAI や KoboldAI などのコミュニティバックエンド、プラグイン登録のサービス — は、@neotavern/provider-sdk の同じ ProviderAdapter コントラクトを実装します。コアパイプラインはこのコントラクトしか知らないため、アプリケーションは単一のベンダーに縛られません。
アダプターは以下をサポートする必要があります:
- 構成の検証。
- 利用可能なモデルの一覧。
AbortSignalによるキャンセル。- 統一された生成イベントストリーム。
- 正規化されたエラー。
- タイムアウト。
- シークレットフリーのロギング。
- プラグイン SDK を通じた登録。
パイプラインはベンダーに関係なく 1 つのシェイプしか見ないため、ストリーミング、コンテキストシフティング、エラー処理などの機能はすべてのプロバイダーで同じように機能します。正確な要件はアダプターコントラクト を参照してください。
同梱アダプター
ディストリビューションには、OpenAI 互換エンドポイント、Anthropic、テキスト補完エンドポイント、NovelAI、KoboldAI、AI Horde、ローカルエコーアダプター用のアダプターが同梱されています。それぞれはアダプター に文書化されています。
ローカルトークン推定
トークンカウントはローカルでオフラインです。正確なトークナイザー(tiktoken、SentencePiece、Hugging Face トークナイザー JSON)はモデルごとに登録でき、プロバイダープラグインによる登録も含まれます。正確なトークナイザーが登録されるまで、ホストはスクリプト認識のヒューリスティックを使用し、カウントを近似としてマークします。
プロバイダーの拡張
コアは意図的にベンダー SDK 依存がありません。新しいプロバイダーはアダプターを書いて登録することで追加されます:
- コアプロバイダーは
@neotavern/provider-sdkのProviderRegistryを通じて登録します。 - プラグインプロバイダーはプラグイン SDK のバックエンド API(
api.providers.register(kind, factory))を通じて登録します。これにはproviders.register権限が必要です。登録はクリーンアップ関数を返し、プラグインが非アクティブ化すると自動的に削除されます。
これは、プライベートエンドポイント、セルフホストモデル、組み込みアダプターのないサービスのための文書化された経路です。生成されたプロバイダー SDK リファレンス は完全なコントラクトを文書化しています。