Перейти к содержанию

Приложение B. Провайдеры

При создании модели в AppSec.GenAI на шаге Настройка API мастера регистрации доступны шаблоны для шести встроенных провайдеров и опция Custom для произвольной модели. Выбор шаблона автозаполняет поля API Endpoint, Тип аутентификации, Шаблон запроса (JSON) и Путь к ответу (JSONPath) (см. Управление моделями).

Ниже приведены значения для каждого провайдера, ключевые особенности интеграции и список поддерживаемых моделей.


OpenAI (ChatGPT, GPT-4)

Параметр Значение
API Endpoint https://api.openai.com/v1/chat/completions
Тип аутентификации Bearer Token
Заголовок аутентификации Authorization: Bearer {{api_key}}
Поддерживаемые модели gpt-4o-mini, gpt-4o, gpt-4-turbo, gpt-4, gpt-3.5-turbo
Таймаут (мс) 60 000
Путь к ответу (JSONPath) choices[0].message.content
{
  "model": "gpt-4o-mini",
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ],
  "temperature": 0.7,
  "maxTokens": 4096
}

Anthropic Claude

Параметр Значение
API Endpoint https://api.anthropic.com/v1/messages
Тип аутентификации API Key
Заголовок аутентификации x-api-key: {{api_key}}
Доп. заголовок anthropic-version: 2023-06-01
Поддерживаемые модели claude-3-5-sonnet-20241022, claude-3-opus-20240229, claude-3-sonnet-20240229, claude-3-haiku-20240307
Таймаут (мс) 90 000
Путь к ответу (JSONPath) content[0].text (см. предупреждение)
{
  "model": "claude-3-5-sonnet-20241022",
  "maxTokens": 4096,
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ]
}

Корректировки после выбора шаблона

  • В поле Путь к ответу (JSONPath) замените автозаполненное значение choices[0].message.content на правильный для Anthropic путь: content[0].text.
  • В блоке Дополнительные настройки → Дополнительные заголовки (JSON) добавьте заголовок anthropic-version: 2023-06-01 — без него API возвращает ошибку.

DeepSeek

Параметр Значение
API Endpoint https://api.deepseek.com/v1/chat/completions
Тип аутентификации Bearer Token
Заголовок аутентификации Authorization: Bearer {{api_key}}
Поддерживаемые модели deepseek-chat, deepseek-coder
Таймаут (мс) 60 000
Путь к ответу (JSONPath) choices[0].message.content
{
  "model": "deepseek-chat",
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ],
  "temperature": 0.7
}

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

DeepSeek использует формат запросов и ответов, полностью совместимый с OpenAI Chat Completions API.


Sber GigaChat

Параметр Значение
API Endpoint https://gigachat.devices.sberbank.ru/api/v1/chat/completions
Тип аутентификации Bearer Token (OAuth2)
Заголовок аутентификации Authorization: Bearer {{api_key}}
Поддерживаемые модели GigaChat, GigaChat-Plus, GigaChat-Pro, GigaChat-Max
Таймаут (мс) 60 000
SSL verify false
Путь к ответу (JSONPath) choices[0].message.content
{
  "model": "GigaChat",
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ],
  "temperature": 0.7,
  "maxTokens": 4096,
  "stream": false
}

Особенности GigaChat

  • OAuth2-авторизация: предварительно получите Bearer-токен через https://ngw.devices.sberbank.ru:9443/api/v2/oauth и вставьте его в поле API Ключ / Токен.
  • SSL-сертификат: GigaChat использует сертификат Минцифры РФ — на стороне инфраструктуры может потребоваться verify=false для HTTPS-запросов.
  • Параметр stream: в шаблоне запроса обязательно должен быть указан "stream": false.

YandexGPT

Параметр Значение
API Endpoint https://llm.api.cloud.yandex.net/foundationModels/v1/completion
Тип аутентификации API Key
Заголовок аутентификации Authorization: Api-Key {{api_key}}
Поддерживаемые модели yandexgpt-lite/latest, yandexgpt/latest, yandexgpt-32k/latest
Таймаут (мс) 60 000
Путь к ответу (JSONPath) result.alternatives[0].message.text (см. предупреждение)
{
  "modelUri": "gpt://YOUR_FOLDER_ID/yandexgpt-lite/latest",
  "completionOptions": {
    "stream": false,
    "temperature": 0.7,
    "maxTokens": "4096"
  },
  "messages": [
    {"role": "user", "text": "{{prompt}}"}
  ]
}

Корректировки после выбора шаблона

  • В поле Путь к ответу (JSONPath) замените автозаполненное значение choices[0].message.content на правильный для YandexGPT путь: result.alternatives[0].message.text.
  • В шаблоне запроса замените YOUR_FOLDER_ID на идентификатор вашего каталога в Yandex Cloud.

Нестандартный формат

YandexGPT использует собственный формат запроса, несовместимый с OpenAI. Ключевые отличия:

  • Вместо model — поле modelUri вида gpt://FOLDER_ID/MODEL/latest.
  • Вместо messages[].content — поле messages[].text.
  • Параметры генерации вложены в объект completionOptions.

HuggingFace

Параметр Значение
API Endpoint https://api-inference.huggingface.co/models/{model}/v1/chat/completions
Тип аутентификации Bearer Token
Заголовок аутентификации Authorization: Bearer {{api_key}}
Поддерживаемые модели meta-llama/Llama-3.1-8B-Instruct, mistralai/Mistral-7B-Instruct-v0.3, google/gemma-2-9b-it
Таймаут (мс) 120 000
Путь к ответу (JSONPath) choices[0].message.content
{
  "model": "meta-llama/Llama-3.1-8B-Instruct",
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ],
  "maxTokens": 4096,
  "temperature": 0.7
}

Особенности HuggingFace

  • Имя модели зашито в URL (/models/<model_name>/v1/chat/completions). При смене модели нужно изменить и URL, и поле model в шаблоне запроса.
  • HuggingFace Inference API может быть недоступен 30–60 секунд при первом запросе (cold start). Рекомендуемое значение Таймаут (мс)120000.

Custom (свой контракт)

Если модель не относится ни к одному из встроенных провайдеров, выберите в поле Провайдер опцию Custom (свой контракт). Все поля останутся пустыми — заполните их вручную:

  • API Endpoint — адрес HTTP-эндпоинта модели.
  • Тип аутентификации — Bearer Token, API Key или другой способ.
  • API Ключ / Токен — ключ доступа.
  • Шаблон запроса (JSON) — тело HTTP-запроса с плейсхолдером {{prompt}} (для CV-моделей — {{image_file}}).
  • Путь к ответу (JSONPath) — путь к тексту ответа в JSON-структуре.
  • Таймаут (мс) — таймаут одного запроса к модели.

Опция Custom позволяет подключить произвольную модель с HTTP API: локально размещённые модели (Ollama, vLLM), сторонние API, корпоративные шлюзы и т. п.

Пример: локальная модель через Ollama

Ollama предоставляет OpenAI-совместимый API.

Поле Значение
API Endpoint http://host.docker.internal:11434/v1/chat/completions
Тип аутентификации Без аутентификации
Таймаут (мс) 120 000
Путь к ответу (JSONPath) choices[0].message.content
{
  "model": "llama3",
  "messages": [
    {"role": "user", "content": "{{prompt}}"}
  ],
  "temperature": 0.7,
  "maxTokens": 4096
}

Пример: vLLM (OpenAI-совместимый сервер)

vLLM также предоставляет OpenAI-совместимый API.

Поле Значение
API Endpoint http://<server>:8000/v1/chat/completions
Тип аутентификации Bearer Token (опционально)
Таймаут (мс) 60 000
Путь к ответу (JSONPath) choices[0].message.content

Сводная таблица провайдеров

Провайдер Аутентификация Формат API Таймаут SSL Особенности
OpenAI Bearer Token OpenAI Chat 60 с Стандартный Эталонный формат запросов и ответов
Anthropic Claude API Key (x-api-key) Anthropic Messages 90 с Стандартный Требуется anthropic-version; правка JSONPath на content[0].text
DeepSeek Bearer Token OpenAI Chat 60 с Стандартный OpenAI-совместимый API
Sber GigaChat Bearer Token (OAuth2) OpenAI Chat 60 с verify=false OAuth2-токен; сертификат Минцифры; "stream": false
YandexGPT API Key (Authorization) YandexGPT (собственный) 60 с Стандартный modelUri, completionOptions; поле text вместо content; правка JSONPath
HuggingFace Bearer Token OpenAI Chat 120 с Стандартный Имя модели в URL; cold start до 60 с
Custom Настраивается Настраивается Настраивается Настраивается Произвольный API (Ollama, vLLM и др.)

Плейсхолдер {{prompt}}

Во всех шаблонах запросов плейсхолдер {{prompt}} автоматически заменяется на текст атакующего промпта при выполнении сканирования. Для CV-моделей используется плейсхолдер {{image_file}} (см. Управление моделями → Плейсхолдеры).