Проксирование запросов с данными через Jay Guard
Вы можете использовать Jay Guard в качестве прокси-сервера для отправки запросов к языковым моделям напрямую.
Для этого реализован метод: POST /api/dataguard/public/{serviceName}/{proxyPath}.
При этом Jay Guard будет обнаруживать сущности в запросе, отправку которых нужно контролировать:
- пропускать (
allow); - блокировать (
block); - маскировать сущности перед отправкой (
redact).
Как происходит проксирование
Процесс обработки запроса:
- Jay Guard получает и разбирает пользовательский запрос.
- Анализирует запрос на наличие сущностей, настроенных в правилах фильтрации.
- Определяет применимые правила и их действия (
allow,redact,deny). - В зависимости от правила:
deny— блокирует запрос и возвращает уведомление.redact— заменяет найденные сущности на плейсхолдеры.allow— оставляет запрос без изменений.
- Если запрос не заблокирован, отправляет его в LLM.
- Получает полный ответ от модели (или обрабатывает его частями при потоковой передаче).
- Если применялось маскирование (
redact), восстанавливает исходные данные в ответе. - Возвращает результат пользователю.
Запрос к эндпоинту
POST /api/dataguard/public/{serviceName}/{proxyPath}
-
{serviceName}— имя сервиса, к которому нужно проксировать запрос, напримерopenai. Возможные значения:gigachat;mlp— для моделей, размещенных в Caila;openai;yandexgpt.
-
{proxyPath}— эндпоинт, куда нужно проксировать запрос, например/v1/chat/completion.
Заголовки
| Заголовок | Описание |
|---|---|
X-DATA-GUARD-API-KEY | Ключ доступа, скопированный в интерфейсе Jay Guard. |
Запрос может содержать другие заголовки, зависящие от сервиса, к которому проксируется запрос с данными.
Тело
Поля тела запроса зависят от сервиса, к которому вы обращаетесь. Пример для модели Claude, которая размещена в Caila:
{
"data": {
"messages": [
{
"role": "user",
"content": "Привет"
}
]
},
"config": {
"model": "claude-3-5-sonnet"
}
}
Примеры запросов к другим моделям вы найдете в соответствующем разделе.