Перейти к основному содержимому

Встроенные адаптеры

NeoTavern поставляет набор адаптеров провайдеров из коробки. Они живут в packages/provider-sdk/src/adapters/, по одному файлу на адаптер, и регистрируются в основном ProviderRegistry по виду провайдера.

OpenAI-совместимый

Файл: openaiCompatible.ts — вид openai-compatible.

Нацелен на любой сервер, предоставляющий API OpenAI /v1/chat/completions и /v1/models: сам OpenAI, OpenRouter, LM Studio, сервер llama.cpp, Ollama с эндпоинтом /v1, vLLM и подобные. Он использует только глобальный fetch и парсер SSE из SDK; API-ключ отправляется, но никогда не логируется.

Anthropic

Файл: anthropic.ts — вид anthropic.

Нацелен на нативный Anthropic Messages API. Это единственное документированное исключение из правила «без SDK вендора»: используется @anthropic-ai/sdk, потому что API — расширенное мышление и поддержку бета-заголовков — официальный SDK обрабатывает точнее. Он поддерживает кэш промптов и адаптивное мышление и объявляет wire-возможность assistantPrefill.

Text Completion

Файл: textCompletion.ts — вид text-completion.

Нацелен на локальные или самодеплоенные backend, предоставляющие устаревшую конечную точку OpenAI /v1/completions: text-generation-webui («ooba»), koboldcpp, vLLM, Ollama, сервер llama.cpp и подобные. В отличие от чат-адаптеров, он потребляет сериализованный промпт: конвейер промптов рендерит instruct-формат и передаёт адаптеру одно сообщение пользователя, содержимое которого — готовый промпт, а адаптер отправляет его в /completions. API-ключ необязателен для локальных серверов и никогда не логируется.

NovelAI

Файл: novelai.ts — вид novelai.

Нацелен на API генерации текста NovelAI (POST {baseUrl}/ai/generate с Bearer-ключом). Генерация не стриминговая — один delta плюс терминальное событие done, что соответствует единому контракту потока. API не предлагает обнаружение моделей, поэтому listModels возвращает настроенную модель. Адаптер помечен как экспериментальный, потому что поверхность параметров NovelAI развивается; сопоставлены только устоявшиеся сэмплеры.

KoboldAI

Файл: koboldai.ts — вид koboldai.

Нацелен на нативный API сервера KoboldAI/Kobold (POST {baseUrl}/api/v1/generate). Генерация не стриминговая; загруженная модель считывается из /api/v1/model для обнаружения. Типичным локальным установкам API-ключ не нужен.

AI Horde

Файл: aiHorde.ts — вид ai-horde.

Нацелен на AI Horde (stablehorde.net) — асинхронный краудсорсинговый кластер. Задание отправляется через /api/v2/generate/text/async, затем опрашивается через конечную точку статуса до завершения; цикл опроса перепроверяет сигнал вызывающей стороны и дедлайн простоя, поэтому зависшее задание прерывается вместо бесконечного опроса. Анонимное использование допускается с более низким приоритетом; API-ключ отправляется как заголовок apikey, когда он настроен.

Echo

Файл: echo.ts — вид echo.

Полностью офлайн-провайдер для тестов, демо и проверки стримингового конвейера без сети и API-ключа. Он стримит последнее сообщение пользователя обратно слово за словом. Он также реализует необязательные методы речи, изображений и транскрипции, что делает его полезным образцом для написания адаптера, покрывающего каждую модальность.

Хелпер промпта

Файл: prompt.ts — экспортирует promptFromMessages, общий хелпер, сериализующий массивы сообщений в формы промптов, которые отправляют адаптеры. Сам по себе он не адаптер.

О точном интерфейсе ProviderAdapter, который реализуют все перечисленные, см. Контракт адаптера и генерируемый справочник Provider SDK.