はじめに
promptfoo は、Large Language Model (LLM) アプリケーションの評価とレッドチームテストに特化したオープンソースのコマンドラインツールおよびライブラリです。promptfooは、信頼性の高いプロンプト、モデル、および検索ベースの生成(RAG)を構築し、自動化されたレッドチームテストと侵入テストを通じてアプリケーションを保護するためのツールの完全なセットを開発者に提供します、このツールは、テスト駆動開発アプローチを通じて、開発者が迅速に言語モデルを反復し、パフォーマンスを改善できるように設計されています。
機能一覧
- 自動レッドチームテストカスタマイズされたスキャンを実行し、セキュリティ、法的リスク、ブランドリスクを検出します。
- 品質評価ユースケースに特化したベンチマーキングを通じて、信頼できるヒントとモデルを構築する。
- 並行処理とキャッシュリアルタイムのリロードをサポートすることで、評価プロセスを高速化。
- コマンドラインインタフェースSDKやクラウドへの依存やログインは不要で、すぐに使い始めることができます。
- オープンソースコミュニティのサポートアクティブなオープンソースコミュニティに支えられ、本番環境では数百万人のユーザーが利用しています。
- ハイレベルの脆弱性とリスクの報告開発者が問題を特定し修正できるよう、詳細な脆弱性とリスクのレポートを作成します。
- 多言語サポートPython、Javascript、その他のプログラミング言語をサポート。
- 民営化事業すべてのアセスメントは、データのプライバシーを確保するためにローカルマシン上で実行されます。
ヘルプの使用
設置プロセス
- コマンドラインツールのインストール::
npm install -g promptfoo
- 初期化プロジェクト::
npx promptfoo@latest init
- テストケースの設定オープン
promptfooconfig.yaml
ファイルに、テストしたいプロンプトと変数を追加する。例
ターゲット
- id: 'example'
config.
メソッド: 'POST'
ヘッダ: 'Content-Type: application/json'
body: userInput: '{{prompt}}'
userInput: '{{prompt}}'
使用ガイドライン
- テストケースの定義中核となるユースケースと故障モードを特定し、これらのシナリオを表す一連のプロンプトとテストケースを準備する。
- 構成評価プロンプト、テストケース、APIプロバイダーを指定して評価を設定します。
- 運用評価コマンドラインツールまたはライブラリを使用して評価を実行し、各プロンプトに対するモデル出力を記録する。
プロンプトフーの評価
- 分析自動化要件を設定するか、構造化されたフォーマット/Web UIで結果を表示します。これらの結果を使用して、ユースケースに最適なモデルとプロンプトを選択します。
- フィードバックループより多くの事例やユーザーからのフィードバックを集めながら、テストケースを増やしていきましょう。
詳しい操作手順
- レッドチームテスト::
- カスタムスキャンを実行し、個人情報漏えい、安全でないツールの使用、クロスセッションデータ漏えい、直接および間接的なプロンプトインジェクションなど、一般的なセキュリティ脆弱性を検出します。
- レッドチーム・テストを開始するには、以下のコマンドを使用する:
バッシュ
npx promptfoo@latest redteam init
- 品質評価::
- ユースケースに特化したベンチマーキングを通じて、信頼できるヒントとモデルを構築する。
- 品質評価を実行するには、以下のコマンドを使用します:
バッシュ
promptfoo evaluate --config promptfooconfig.yaml