Observed since 20 Oct, 20:02 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
adversaria
Adversarial Testing Harness for Large Language Models
Python SDK for Adversaria - Adversarial Testing Harness for LLMs.
pip install adversaria
Note: This SDK requires the Adversaria CLI to be installed:
cargo install adversaria
from adversaria import Adversaria
# Create client
client = Adversaria()
# Run tests
result = client.run(
provider="openai",
model="gpt-4",
api_key="sk-..." # Optional, uses OPENAI_API_KEY env var
)
# Check results
print(f"Risk Score: {result.risk_score}/100")
print(f"Successful Attacks: {result.successful_attacks}/{result.total_attacks}")
# Save report
report_path = result.save_report("./reports")
print(f"Report saved: {report_path}")
Main client class for running security tests.
client = Adversaria(config_path=None)
Methods:
run(provider, model, suites=None, api_key=None)Run security tests against an LLM.
Arguments:
provider (str): Provider name ('openai', 'anthropic', 'ollama')model (str): Model namesuites (list, optional): List of suite IDs to runapi_key (str, optional): API key (uses env var if not provided)Returns: TestResult
list_suites()List available attack suites.
Returns: List[Suite]
list_reports(directory="./reports")List available reports.
Returns: List[str] - List of report file paths
load_report(filepath)Load a report from file.
Returns: TestResult
Test execution results.
Attributes:
id (str): Unique test run IDmodel (str): Model testedprovider (str): Provider usedtimestamp (str): Test timestamprisk_score (int): Overall risk score (0-100)total_attacks (int): Total attacks executedsuccessful_attacks (int): Number of successful attacksfailed_attacks (int): Number of failed attacksduration_ms (int): Execution time in millisecondsraw_data (dict): Full report dataMethods:
save_report(directory="./reports")Save report to directory.
Returns: str - Path to saved report
import os
from adversaria import Adversaria
# Set API key
os.environ["OPENAI_API_KEY"] = "sk-..."
# Run test
client = Adversaria()
result = client.run(provider="openai", model="gpt-4")
if result.risk_score > 50:
print("⚠️ High risk detected!")
result = client.run(
provider="openai",
model="gpt-4",
suites=["prompt_injection", "jailbreak"]
)
providers = [
("openai", "gpt-4"),
("anthropic", "claude-3-opus-20240229"),
]
for provider, model in providers:
result = client.run(provider=provider, model=model)
print(f"{provider}/{model}: {result.risk_score}/100")
client = Adversaria()
# List all reports
reports = client.list_reports()
# Load latest report
if reports:
result = client.load_report(reports[0])
print(f"Risk Score: {result.risk_score}/100")
cargo install adversaria)MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pyyaml>=6.0 | runtime |
bdist_wheel · 4.51 KB · Python py3
sdist · 4.41 KB · Python source
Observed since 20 Oct, 20:02 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:891610b133e29ae4fa2f88b1f8e6edcb9446cf3140643a049f06460daa7caeeb