Перейти к содержимому

Назад к Guardrino

Интеграция · Доступно

Прокси, совместимый с 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
ПараметрЗначение
upstreamAPI модели, которому Guardrino передаёт разрешённые запросы.
api_keyКлюч для вышестоящего API. Если его нет, передаётся ключ вызывающей стороны.
buffer_outputПри true ответ удерживается до завершения проверки. См. страницу о потоковой передаче.
block_statusHTTP-статус отказа: по умолчанию 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"
  }
}

Потоковые ответы

Запросить ранний доступ