
🐢 LLM एजेंटों के लिए ओपन-सोर्स मूल्यांकन एवं परीक्षण लाइब्रेरी
[!IMPORTANT] Giskard v3 AI एजेंट्स के डायनामिक, मल्टी-टर्न परीक्षण के लिए डिज़ाइन किया गया एक नया रीराइट है। यह रिलीज़ बेहतर दक्षता के लिए भारी निर्भरताओं को हटाती है, साथ ही एक अधिक शक्तिशाली AI भेद्यता स्कैनर और बेहतर RAG मूल्यांकन पेश करती है — ये दोनों अब मूल रूप से
giskard-scan(बीटा) में शिप होते हैं, जिनकी v2 पर कोई निर्भरता नहीं है। केवल टेबुलर/ML मॉडल के लिए लीगेसी स्कैन v2-विशिष्ट बना हुआ है। Giskard v2 उपलब्ध है लेकिन अब सक्रिय रूप से अनुरक्षित नहीं है। प्रगति देखें → v3 घोषणा पढ़ें · रोडमैप
pip install giskard # checks (+ agents, llm, core)
pip install "giskard[scan]" # + vulnerability / quality scan
pip install "giskard[openai]" # provider SDK for LLM judges / generators
इसके लिए Python 3.12+ आवश्यक है।
| Extra | जोड़ता है |
|---|---|
टेलीमेट्री: giskard-core के माध्यम से वैकल्पिक एकत्रित एनालिटिक्स। कोई प्रॉम्प्ट या आउटपुट नहीं भेजा जाता।
Giskard इम्पोर्ट करने से पहले ऑप्ट आउट करें: export DO_NOT_TRACK=1 या export GISKARD_TELEMETRY_DISABLED=1।
विवरण: giskard-core README।
Giskard एक ओपन-सोर्स Python लाइब्रेरी है जो एजेंटिक सिस्टम के परीक्षण और मूल्यांकन के लिए है। v3 आर्किटेक्चर केंद्रित पैकेजों का एक मॉड्यूलर सेट है — प्रत्येक केवल उन्हीं निर्भरताओं को वहन करता है जिनकी उसे आवश्यकता है — जो किसी भी चीज़ को लपेटने के लिए स्क्रैच से बनाया गया है: एक LLM, एक ब्लैक-बॉक्स एजेंट, या एक मल्टी-स्टेप पाइपलाइन।
ये तीन आधारभूत लाइब्रेरियों पर निर्मित हैं — giskard-core (साझा उपयोगिताएँ और टेलीमेट्री), giskard-llm (प्रोवाइडर-अज्ञेय LLM रूटिंग), और giskard-agents (एजेंट और वर्कफ़्लो ऑर्केस्ट्रेशन) — जो स्वचालित रूप से खिंच जाती हैं और शायद ही कभी सीधे उपयोग की जाती हैं।
pip install giskard-checks
Giskard Checks एक हल्की लाइब्रेरी है जो LLM-आधारित सिस्टम के परीक्षण के लिए मूल्यांकन (evals) बनाने हेतु है — साधारण अभिकथन से लेकर LLM-एज़-जज आकलन तक। पारंपरिक यूनिट टेस्ट के विपरीत, evals गैर-नियतात्मक आउटपुट के लिए डिज़ाइन किए गए हैं, जहाँ एक ही इनपुट विभिन्न वैध प्रतिक्रियाएँ उत्पन्न कर सकता है।
Giskard Checks का उपयोग करें:
बिल्ट-इन इवल्स में स्ट्रिंग मिलान, तुलना, regex, सिमेंटिक समानता, और LLM-एज़-जज चेक (Groundedness, Conformity, LLMJudge) शामिल हैं।
(inputs) -> outputs (वैकल्पिक रूप से trace के साथ)giskard.agents.Generator वर्कफ़्लो/जजों के लिए एक LLM क्लाइंट है — यह giskard.checks इनपुट जनरेटर (LLMGenerator) जैसा नहीं है, जो उपयोगकर्ता संदेशों को संश्लेषित करते हैं।
import asyncio
from giskard.checks import Scenario, Groundedness
def get_answer(inputs: str) -> str:
return "Paris" # replace with your model / agent
async def main() -> None:
scenario = (
Scenario("test_france_capital")
.interact(inputs="What is the capital of France?", outputs=get_answer)
.check(
Groundedness(
name="answer is grounded",
context="France is in Western Europe. Its capital is Paris.",
)
)
)
result = await scenario.run()
result.print_report()
asyncio.run(main())
Groundedness एक LLM जज है — एक प्रोवाइडर extra इंस्टॉल करें (जैसे pip install "giskard[openai]") और संबंधित API कुंजी सेट करें। डिफ़ॉल्ट मॉडल: openai/gpt-4o-mini।
Suites, LLMJudge, मल्टी-टर्न परिदृश्यों और अधिक के लिए पूर्ण दस्तावेज़ देखें।
pip install "giskard[scan]" # या: pip install giskard-scan
Giskard Scan एजेंटिक सिस्टम के लिए रेड-टीमिंग और भेद्यता स्कैनिंग परत है। यह आपके एजेंट के सादे-भाषा विवरण से स्वचालित रूप से प्रतिकूल परीक्षण सुइट उत्पन्न करता है, जिसमें प्रॉम्प्ट इंजेक्शन, हानिकारक सामग्री, स्टीरियोटाइप, गलत सूचना आदि शामिल हैं।
Giskard Scan का उपयोग करें:
generate_suite में अपने स्वयं के ScenarioGenerator इंस्टेंस पास करें, या उन्हें vulnerability_suite_generator_registry पर पंजीकृत करेंimport asyncio
from giskard.scan import vulnerability_scan
async def my_agent(inputs: str) -> str:
# Replace with your agent / model call
return f"Echo: {inputs}"
async def main() -> None:
await vulnerability_scan(
target=my_agent,
description="A customer support chatbot for an e-commerce platform.",
languages=["en"],
)
asyncio.run(main())
स्कैन जनरेटर को भी उपरोक्त Checks जजों की तरह एक LLM प्रोवाइडर extra और API कुंजी की आवश्यकता होती है।
Giskard v2 में Scan (स्वचालित भेद्यता पहचान) और RAGET (RAG मूल्यांकन परीक्षण सेट जनरेशन) शामिल थे।
LLM एजेंट्स के लिए, दोनों को v3 में giskard-scan द्वारा प्रतिस्थापित किया गया है: v2 LLM स्कैन के स्थान पर vulnerability_scan का उपयोग करें, और RAGET के स्थान पर quality_scan (साथ में KnowledgeBase) का उपयोग करें।
v3 ML मॉडल के साथ भी काम करता है — किसी एक को टारगेट के रूप में लपेटें और giskard-checks या giskard-scan से उसका मूल्यांकन करें। नीचे दिए गए उदाहरण जो कवर करते हैं, वह v2-विशिष्ट स्वचालित टेबुलर स्कैन है — वह डिटेक्टर सुइट जो giskard.Model + giskard.Dataset का निरीक्षण करता है और प्रदर्शन, पूर्वाग्रह और मजबूती की समस्याओं का स्वतः पता लगाता है — साथ ही giskard.testing ML परीक्षण सुइट और Giskard Hub। इनकी v3 के लिए कोई योजना नहीं है।
pip install "giskard[llm]>2,<3"
अपना मॉडल लपेटें और स्कैन चलाएँ:
import giskard
import pandas as pd
# Replace my_llm_chain with your actual LLM chain or model inference logic
def model_predict(df: pd.DataFrame):
"""The function takes a DataFrame and must return a list of outputs (one per row)."""
return [my_llm_chain.run({"query": question}) for question in df["question"]]
giskard_model = giskard.Model(
model=model_predict,
model_type="text_generation",
name="My LLM Application",
description="A question answering assistant",
feature_names=["question"],
)
scan_results = giskard.scan(giskard_model)
display(scan_results)
अपने नॉलेज बेस से स्वचालित रूप से प्रश्न, संदर्भ उत्तर और संदर्भ उत्पन्न करें:
import pandas as pd
from giskard.rag import generate_testset, KnowledgeBase
# Load your knowledge base documents
df = pd.read_csv("path/to/your/knowledge_base.csv")
knowledge_base = KnowledgeBase.from_pandas(df, columns=["column_1", "column_2"])
testset = generate_testset(
knowledge_base,
num_questions=60,
language="en",
agent_description="A customer support chatbot for company X",
)
हम AI समुदाय से योगदान का स्वागत करते हैं! आरंभ करने के लिए यह गाइड पढ़ें, और Discord पर हमारे संपन्न समुदाय से जुड़ें।
प्रगति का अनुसरण करें और प्रतिक्रिया साझा करें: v3 घोषणा · रोडमैप
🌟 हमें एक स्टार दें, इससे प्रोजेक्ट को दूसरों द्वारा खोजे जाने में मदद मिलती है और हमें शानदार ओपन-सोर्स टूल बनाने के लिए प्रेरित रखता है! 🌟
❤️ यदि आपको हमारा काम उपयोगी लगता है, तो कृपया GitHub पर हमें स्पॉन्सर करने पर विचार करें। मासिक स्पॉन्सरशिप के साथ, आप एक स्पॉन्सर बैज प्राप्त कर सकते हैं, इस readme में अपनी कंपनी प्रदर्शित कर सकते हैं, और अपनी बग रिपोर्ट को प्राथमिकता दिलवा सकते हैं। यदि आप चाहते हैं कि हम किसी परामर्श परियोजना में शामिल हों, एक कार्यशाला चलाएँ, या आपकी कंपनी में एक वार्ता दें, तो हम एकमुश्त स्पॉन्सरशिप भी प्रदान करते हैं।
giskard-checks और निर्भरताएँ |
scan | giskard-scan |
openai / anthropic / … | प्रोवाइडर SDKs (वैकल्पिक निर्भरताओं के लिए pyproject.toml देखें) |
| Status | Package | Description |
|---|
| ✅ Beta | giskard-checks | परीक्षण और मूल्यांकन — परिदृश्य API, बिल्ट-इन चेक, LLM-एज़-जज |
| ✅ Beta | giskard-scan | एजेंट भेद्यता स्कैनर + RAG/गुणवत्ता मूल्यांकन — रेड टीमिंग, प्रॉम्प्ट इंजेक्शन, जेलब्रेक और हानिकारक सामग्री (vulnerability_scan, v2 Scan का उत्तराधिकारी), साथ ही नॉलेज-बेस गुणवत्ता मूल्यांकन (quality_scan, v2 RAGET का उत्तराधिकारी) |