Allgemeine Einführung
promptfoo ist ein Open-Source-Befehlszeilen-Tool und eine Bibliothek für die Evaluierung und das Red-Teaming von Large Language Model (LLM)-Anwendungen. Es bietet Entwicklern ein komplettes Set von Werkzeugen für die Erstellung von zuverlässigen Prompts, Modellen und Retrieval-basierten Generierungen (RAGs) und die Sicherung von Anwendungen durch automatisierte Red-Team-Tests und Penetrationstests. promptfoo unterstützt eine Vielzahl von LLM-API-Anbietern, darunter OpenAI, Anthropic, Azure, Google, Das Tool wurde entwickelt, um Entwicklern zu helfen, die Leistung ihrer Sprachmodelle durch einen testgetriebenen Entwicklungsansatz schnell zu verbessern und zu iterieren.
Funktionsliste
- Automatisierte Red-Team-TestsKundenspezifische Scans durchführen, um Sicherheits-, Rechts- und Markenrisiken zu erkennen.
- QualitätsbewertungErstellung zuverlässiger Hinweise und Modelle durch anwendungsspezifisches Benchmarking.
- Gleichzeitigkeit und CachingBeschleunigung des Bewertungsprozesses durch Unterstützung des Nachladens in Echtzeit.
- BefehlszeilenschnittstelleKeine SDKs, Cloud-Abhängigkeiten oder Anmeldungen erforderlich, um schnell loslegen zu können.
- Unterstützung der Open-Source-GemeinschaftUnterstützt von einer aktiven Open-Source-Community für Millionen von Benutzern in Produktionsumgebungen.
- Berichterstattung über Schwachstellen und Risiken auf höchster EbeneGenerieren Sie detaillierte Schwachstellen- und Risikoberichte, um Entwicklern zu helfen, Probleme zu identifizieren und zu beheben.
- Mehrsprachige UnterstützungUnterstützung für Python, Javascript und andere Programmiersprachen.
- Privatisierter BetriebAlle Bewertungen werden auf lokalen Rechnern durchgeführt, um den Datenschutz zu gewährleisten.
Hilfe verwenden
Ablauf der Installation
- Installation von Befehlszeilentools::
npm install -g promptfoo
- Initialisierungsprojekt::
npx promptfoo@latest init
- Konfigurieren von Testfällen: Öffnen
promptfooconfig.yaml
fügen Sie die Eingabeaufforderungen und Variablen hinzu, die Sie testen möchten. Beispiel:
Ziele.
- id: 'Beispiel'
Konfig.
Methode: 'POST'
headers: 'Inhalt-Typ: application/json'
body: userInput: '{{Prompt}}'
benutzereingabe: '{{Eingabeaufforderung}}'
Richtlinien für die Verwendung
- Definieren von TestfällenIdentifizieren Sie die wichtigsten Anwendungsfälle und Fehlermöglichkeiten und bereiten Sie eine Reihe von Aufforderungen und Testfällen vor, die diese Szenarien darstellen.
- Bewertung der KonfigurationEinrichten von Auswertungen durch Angabe von Prompts, Testfällen und API-Anbietern.
- Operative BewertungAusführen der Auswertung mit einem Befehlszeilentool oder einer Bibliothek und Aufzeichnung der Modellausgabe für jede Eingabeaufforderung.
promptfoo auswerten
- AnalyseAutomatisierungsanforderungen einrichten oder die Ergebnisse in einem strukturierten Format/Web-UI anzeigen. Verwenden Sie diese Ergebnisse, um das Modell und die Eingabeaufforderungen auszuwählen, die am besten zu Ihrem Anwendungsfall passen.
- Rückkopplungsschleife: Erweitern Sie Ihre Testfälle, wenn Sie mehr Beispiele und Benutzerfeedback sammeln.
Detaillierte Vorgehensweise
- Red Team Test::
- Führen Sie benutzerdefinierte Scans durch, um häufige Sicherheitslücken zu erkennen, wie z. B. PII-Lecks, unsichere Toolverwendung, sitzungsübergreifende Datenlecks, direkte und indirekte Prompt Injections und mehr.
- Verwenden Sie den folgenden Befehl, um den Red-Team-Test zu starten:
bash
npx promptfoo@latest redteam init
- Qualitätsbewertung::
- Erstellen Sie zuverlässige Tipps und Modelle durch anwendungsspezifisches Benchmarking.
- Verwenden Sie den folgenden Befehl, um die Qualitätsbewertung durchzuführen:
bash
promptfoo evaluate --config promptfooconfig.yaml