Aller au contenu

Retour à Guardrino

Intégration · Disponible

Le proxy compatible OpenAI

Votre application garde son code et ne change que son URL de base. Guardrino vérifie ce qui entre et ce qui sort.

Statut : disponible. Cette intégration est construite et testée. HisnLabs livre Guardrino aux entreprises du programme pilote ; certains réglages peuvent encore changer avant la diffusion générale.

Référence développeur · Guide d’installation · Plateformes d’IA · Fiche du modèle ouvert · Streaming · LiteLLM · Proxy de sécurité MCP · Tutoriel : application compatible OpenAI · Tutoriel : LiteLLM · Tutoriel : outils MCP

Essayez-le dès aujourd’hui Guardrino-t7 Open, une version antérieure de notre classifieur, est publique sur Hugging Face sous licence Apache-2.0. La démo fonctionne dans votre navigateur : ce que vous tapez reste sur votre appareil. Démo en direct · Fiche du modèle · La même démo sur Hugging Face

Vue d’ensemble

Guardrino expose POST /v1/chat/completions. Il vérifie la requête, la transmet à l’API de modèle que vous configurez, vérifie la réponse, puis la renvoie. Si une vérification échoue, l’application reçoit un refus à la place.

  • Entrée. Les tours de parole de l’utilisateur.
  • Contexte. Les résultats d’outils et les documents présents dans les messages, lus comme des données. Les images et fichiers passent d’abord par le service d’extraction : une instruction cachée dans une capture d’écran ou un PDF est jugée comme n’importe quel document.
  • Sortie. La réponse du modèle, avec les contrôles de sortie (canari, données personnelles, URL).

Utilisation

Pointez votre client vers Guardrino au lieu du fournisseur de modèle. Le corps de la requête ne change pas.

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 évalue une conversation dans son ensemble. Il prend le conversation_id dans l’en-tête X-Guardrino-Conversation, ou dans le champ user s’il n’y a pas d’en-tête : aucune modification du client n’est nécessaire.

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"}]}'

Configuration

Le proxy se règle dans le fichier de politique, section [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
RéglageRôle
upstreamL’API de modèle à laquelle Guardrino transmet les requêtes autorisées.
api_keyClé pour l’amont. Si elle est absente, la clé envoyée par l’appelant est transmise telle quelle.
buffer_outputÀ true, la réponse est retenue jusqu’à sa vérification. Voir la page sur le streaming.
block_statusStatut HTTP d’un refus : 400 par défaut, 403 si la valeur est 403.

Quand un message est refusé

Un refus revient au format d’erreur OpenAI : la gestion d’erreurs existante de votre application continue de fonctionner.

{
  "error": {
    "message": "The request was blocked by Guardrino policy.",
    "type": "guardrino_blocked",
    "param": null,
    "code": "content_blocked",
    "request_id": "req-42"
  }
}

Réponses en streaming

Demander un accès anticipé