Встроенные адаптеры
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.