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

プロバイダー概要

プロバイダーは、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-sdkProviderRegistry を通じて登録します。
  • プラグインプロバイダーはプラグイン SDK のバックエンド API(api.providers.register(kind, factory))を通じて登録します。これには providers.register 権限が必要です。登録はクリーンアップ関数を返し、プラグインが非アクティブ化すると自動的に削除されます。

これは、プライベートエンドポイント、セルフホストモデル、組み込みアダプターのないサービスのための文書化された経路です。生成されたプロバイダー SDK リファレンス は完全なコントラクトを文書化しています。