Интеграция · Доступно
Прокси, совместимый с OpenAI
Приложение сохраняет свой код и меняет только базовый URL. Guardrino проверяет то, что входит, и то, что выходит.
Статус: доступно. Эта интеграция создана и протестирована. HisnLabs передаёт Guardrino компаниям-участникам пилота; некоторые настройки могут измениться до общего выпуска.
Developer reference · Install guide · AI platforms · Open model card · Потоковая передача · LiteLLM · Прокси безопасности MCP · Руководство: приложение, совместимое с OpenAI · Руководство: LiteLLM · Руководство: инструменты MCP
Try it today Guardrino-t7 Open, an earlier version of our classifier, is public on Hugging Face under Apache-2.0. The demo runs in your browser: what you type stays on your device. Live demo · Model card · Same demo on Hugging Face
Обзор
Guardrino предоставляет POST /v1/chat/completions. Он проверяет запрос, передаёт его настроенному вами API модели, проверяет ответ и возвращает его. Если проверка не пройдена, приложение получает отказ.
- Ввод. Реплики пользователя.
- Контекст. Результаты инструментов и документы в сообщениях, которые читаются как данные. Изображения и файлы сначала проходят через службу извлечения текста, поэтому инструкция, спрятанная в скриншоте или PDF, оценивается как любой документ.
- Вывод. Ответ модели с проверками вывода (канарейка, персональные данные, URL).
Использование
Направьте клиент на Guardrino вместо поставщика модели. Тело запроса не меняется.
from openai import OpenAI
# The only change: the base URL (and the key your Guardrino deployment expects).
client = OpenAI(base_url="https://guardrino.example/v1", api_key="YOUR_KEY")
reply = client.chat.completions.create(
model="your-model",
messages=[{"role": "user", "content": "Summarise this ticket."}],
user="conversation-7f3a", # becomes the conversation_id
)Guardrino оценивает беседу целиком. Идентификатор conversation_id берётся из заголовка X-Guardrino-Conversation, а при его отсутствии из поля user, так что менять клиент не нужно.
curl https://guardrino.example/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-H "X-Guardrino-Conversation: conversation-7f3a" \
-d '{"model": "your-model", "messages": [{"role": "user", "content": "Hello"}]}'Настройка
Прокси настраивается в файле политики, в разделе [proxy].
block_status = 403 # answer a refused message with HTTP 403 (default 400)
[proxy]
upstream = "https://llm.example/v1" # the model API Guardrino forwards to
api_key = "UPSTREAM_KEY" # optional: when unset, the caller's key is passed through
buffer_output = false # true: hold the reply until it has been checked| Параметр | Значение |
|---|---|
upstream | API модели, которому Guardrino передаёт разрешённые запросы. |
api_key | Ключ для вышестоящего API. Если его нет, передаётся ключ вызывающей стороны. |
buffer_output | При true ответ удерживается до завершения проверки. См. страницу о потоковой передаче. |
block_status | HTTP-статус отказа: по умолчанию 400, при значении 403 — 403. |
Когда сообщение отклонено
Отказ возвращается в формате ошибки OpenAI, поэтому существующая обработка ошибок в приложении продолжает работать.
{
"error": {
"message": "The request was blocked by Guardrino policy.",
"type": "guardrino_blocked",
"param": null,
"code": "content_blocked",
"request_id": "req-42"
}
}