Приложение 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 |
Пример: 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}} (см. Управление моделями → Плейсхолдеры).