guardrails هو إطار عمل Python يساعد في بناء تطبيقات ذكاء اصطناعي موثوقة من خلال أداء وظيفتين رئيسيتين:
guardrails Hub عبارة عن مجموعة من المقاييس المعدة مسبقًا لأنواع محددة من المخاطر (تسمى "أدوات التحقق"). يمكن دمج أدوات التحقق المتعددة معًا في حراس الإدخال والإخراج التي تعترض مدخلات ومخرجات LLM. تفضل بزيارة guardrails Hub للاطلاع على القائمة الكاملة للمدققين ووثائقهم.
pip install guardrails - ai
قم بتنزيل وتكوين guardrails Hub CLI.
pip install guardrails -ai
guardrails configure
قم بتركيب حاجز الحماية من مركز guardrails .
guardrails hub install hub:// guardrails /regex_match
قم بإنشاء حارس من الدرابزين المثبت.
from guardrails import Guard , OnFailAction
from guardrails . hub import RegexMatch
guard = Guard (). use (
RegexMatch , regex = "(?d{3})?-? *d{3}-? *-?d{4}" , on_fail = OnFailAction . EXCEPTION
)
guard . validate ( "123-456-7890" ) # Guardrail passes
try :
guard . validate ( "1234-789-0000" ) # Guardrail fails
except Exception as e :
print ( e )
الإخراج:
Validation failed for field with errors: Result must match (?d{3})?-? *d{3}-? *-?d{4}
تشغيل guardrails متعددة داخل الحرس. أولاً، قم بتثبيت guardrails اللازمة من مركز guardrails .
guardrails hub install hub:// guardrails /competitor_check
guardrails hub install hub:// guardrails /toxic_language
ثم قم بإنشاء حارس من guardrails المثبتة.
from guardrails import Guard , OnFailAction
from guardrails . hub import CompetitorCheck , ToxicLanguage
guard = Guard (). use_many (
CompetitorCheck ([ "Apple" , "Microsoft" , "Google" ], on_fail = OnFailAction . EXCEPTION ),
ToxicLanguage ( threshold = 0.5 , validation_method = "sentence" , on_fail = OnFailAction . EXCEPTION )
)
guard . validate (
"""An apple a day keeps a doctor away.
This is good advice for keeping your health."""
) # Both the guardrails pass
try :
guard . validate (
"""Shut the hell up! Apple just released a new iPhone."""
) # Both the guardrails fail
except Exception as e :
print ( e )
الإخراج:
Validation failed for field with errors: Found the following competitors: [['Apple']]. Please avoid naming those competitors next time, The following sentences in your response were found to be toxic:
- Shut the hell up!
دعنا نستعرض مثالًا حيث نطلب من ماجستير إدارة الأعمال إنشاء أسماء حيوانات أليفة مزيفة. للقيام بذلك، سنقوم بإنشاء Pydantic BaseModel الذي يمثل بنية المخرجات التي نريدها.
from pydantic import BaseModel , Field
class Pet ( BaseModel ):
pet_type : str = Field ( description = "Species of pet" )
name : str = Field ( description = "a unique pet name" )
الآن، قم بإنشاء حارس من فئة Pet
. يمكن استخدام Guard لاستدعاء LLM بطريقة بحيث يتم تنسيق الإخراج إلى فئة Pet
. تحت غطاء محرك السيارة، ويتم ذلك عن طريق إحدى الطريقتين:
from guardrails import Guard
import openai
prompt = """
What kind of pet should I get and what should I name it?
${gr.complete_json_suffix_v2}
"""
guard = Guard . for_pydantic ( output_class = Pet , prompt = prompt )
raw_output , validated_output , * rest = guard (
llm_api = openai . completions . create ,
engine = "gpt-3.5-turbo-instruct"
)
print ( validated_output )
هذا يطبع:
{
"pet_type": "dog",
"name": "Buddy
}
يمكن إعداد guardrails كخدمة مستقلة تقدمها Flask مع guardrails start
، مما يسمح لك بالتفاعل معها عبر REST API. يعمل هذا الأسلوب على تبسيط عملية تطوير ونشر التطبيقات التي تعمل guardrails .
pip install " guardrails -ai"
guardrails configure
guardrails create --validators=hub:// guardrails /two_words --name=two-word-guard
guardrails start --config=./config.py
# with the guardrails client
import guardrails as gr
gr.settings.use_server = True
guard = gr.Guard(name='two-word-guard')
guard.validate('this is more than two words')
# or with the openai sdk
import openai
openai.base_url = "http://localhost:8000/guards/two-word-guard/openai/v1/"
os.environ["OPENAI_API_KEY"] = "youropenaikey"
messages = [
{
"role": "user",
"content": "tell me about an apple with 3 words exactly",
},
]
completion = openai.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
)
بالنسبة لعمليات نشر الإنتاج، نوصي باستخدام Docker مع Gunicorn كخادم WSGI لتحسين الأداء وقابلية التوسع.
يمكنك التواصل معنا على Discord أو Twitter.
نعم، يمكن استخدام guardrails مع حاملي شهادات LLM الخاصة والمفتوحة المصدر. راجع هذا الدليل حول كيفية استخدام guardrails مع أي ماجستير في القانون.
نعم، يمكنك إنشاء أدوات التحقق الخاصة بك والمساهمة بها في guardrails Hub. راجع هذا الدليل حول كيفية إنشاء أدوات التحقق الخاصة بك.
يمكن استخدام guardrails مع Python وJavaScript. تحقق من المستندات حول كيفية استخدام guardrails من JavaScript. نحن نعمل على إضافة الدعم للغات الأخرى. إذا كنت ترغب في المساهمة في guardrails ، يرجى التواصل معنا على Discord أو Twitter.
نحن نرحب بالمساهمات في guardrails !
ابدأ بالتحقق من مشكلات Github وراجع دليل المساهمة. لا تتردد في فتح قضية، أو التواصل إذا كنت ترغب في إضافة إلى المشروع!