تكامل · متاح
الوكيل المتوافق مع OpenAI
يحتفظ تطبيقك بشيفرته ويغيّر عنوانه الأساسي فقط. يفحص جاردرينو ما يدخل وما يخرج.
الحالة: متاح. هذا التكامل مبنيّ ومُختبَر. تسلّم HisnLabs جاردرينو إلى الشركات المشاركة في البرنامج التجريبي، وقد تتغيّر بعض الإعدادات قبل الإتاحة العامة.
مرجع المطوّرين · دليل التثبيت · منصات الذكاء الاصطناعي · بطاقة النموذج المفتوح · البث · LiteLLM · وكيل أمان MCP · درس: تطبيق متوافق مع OpenAI · درس: LiteLLM · درس: أدوات MCP
جرّبه اليوم Guardrino-t7 Open، نسخة سابقة من المصنِّف، متاح للعموم على Hugging Face بترخيص Apache-2.0. يعمل العرض التجريبي في متصفحك: ما تكتبه يبقى على جهازك. عرض تجريبي مباشر · بطاقة النموذج · العرض نفسه على Hugging Face
نظرة عامة
يوفّر جاردرينو المسار POST /v1/chat/completions. يفحص الطلب، ثم يمرّره إلى واجهة النموذج التي تضبطها، ثم يفحص الرد ويعيده. وإذا فشل أحد الفحوص يتلقى التطبيق رفضًا بدلًا من الرد.
- المُدخَل. أدوار المستخدم في المحادثة.
- السياق. نتائج الأدوات والمستندات داخل الرسائل، وتُقرأ بوصفها بيانات. وتمرّ أجزاء الصور والملفات أولًا بخدمة الاستخراج، فيُحكم على تعليمة مخفية في لقطة شاشة أو ملف PDF كما يُحكم على أي مستند.
- المُخرَج. ردّ النموذج، مع فحوص المخرجات (الرمز الكناري، والبيانات الشخصية، والروابط).
الاستخدام
وجّه عميلك إلى جاردرينو بدلًا من مزوّد النموذج. يبقى متن الطلب كما هو.
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
)يقيّم جاردرينو المحادثة كاملةً. يأخذ 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_key | مفتاح الواجهة الأمامية. إن غاب، يُمرَّر المفتاح الذي أرسله المستدعي. |
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"
}
}