Skip to main content

正規表現を定義するためのAIの責任ある使用

レギュラー エクスプレション ジェネレーター の機能と制限事項について説明します。これは、secret scanning の機能を拡張するカスタム パターンを定義するのに役立ちます。

この機能を使用できるユーザーについて

コパイロット シークレット スキャンは、次のリポジトリで使用できます。

  • GitHub Advanced Security が有効な GitHub Enterprise Cloud を使用している組織のパブリック、プライベート、および内部リポジトリ

AI を使用した正規表現の生成について

Secret scanning は、リポジトリをスキャンして、パートナーのプログラムの定義済みのシークレットのセットと、ユーザー定義のカスタム パターンを探します。 カスタムパターンは正規表現で書式設定されています。

正規表現は、ユーザーが記述するのが難しい場合があります。 レギュラー エクスプレション ジェネレーター を使用すると、正規表現を知らなくてもカスタム パターンを定義できます。 既存のカスタム パターン ページ内で生成 AI エクスペリエンスを起動して、検出するパターンのテキスト説明を入力し、検出されるはずの文字列の例 (省略可能) を含めると、一致する正規表現を取得できます。

入力処理

ユーザーは、検出する内容のテキスト説明と、検出されるはずの文字列の例 (省略可能) を入力します。

応答の生成と出力の書式設定

レギュラー エクスプレション ジェネレーター は、GPT-3.5-Turbo と GitHub Copilot API を使用して、入力に一致する正規表現を生成します。

このモデルでは、ユーザーがレビューするために、最大 3 つの正規表現が返されます。 正規表現をクリックすると、AI によって生成された正規表現のわかりやすい説明を取得できます。

一部の結果は非常に似ている場合があり、一部の結果では、パターンが検出することを意図したシークレットのすべてのインスタンスが見つからない場合があります。 また、正規表現ジェネレーターが無効または不適切な結果を生成する可能性もあります。

正規表現で [結果を使用] をクリックすると、正規表現と入力した例 (入力した場合) がメイン カスタム パターン フォームにコピーされます。 そこで、パターンのドライ ランを実行して、リポジトリ全体または組織全体でパターンがどのように実行されるかを確認できます。

AI を使用して正規表現を生成するときのパフォーマンスの向上

レギュラー エクスプレション ジェネレーター のパフォーマンスを向上させ、いくつかの制限に対処するために採用できる、さまざまな対策があります。 レギュラー エクスプレション ジェネレーター の制限事項の詳細については、「AI を使用して正規表現を生成する場合の制限事項」を参照してください。

レギュラー エクスプレション ジェネレーター を、代替ではなく、ツールとして使用する

レギュラー エクスプレション ジェネレーター は、正規表現を自分で記述せずにカスタム パターンを作成するための強力なツールですが、手動入力の代わりではなく、ツールとして使用することが重要です。 組織全体またはリポジトリ全体でドライランを実行して、結果のパフォーマンスを慎重に検証する必要があります。 組織のリポジトリを代表する 1 つまたは複数のリポジトリでパターンを実行することをお勧めします。 場合によっては、ニーズをより完全に満たすように、生成された正規表現を変更することが有益な場合があります。 使用するカスタム パターンの決定は最終的にユーザーの責任です。

AI を使用して正規表現を生成する場合の制限事項

レギュラー エクスプレション ジェネレーター を使用したときに、入力の説明や例などの要因に応じて、さまざまなレベルのパフォーマンスになる可能性があります。 secret scanning で検索したいすべてのパターンが正規表現に組み込まれるように、説明をできるだけ具体的に記述し、パターンに一致するさまざまな種類のトークンの例を提供する必要があります。

また、レギュラー エクスプレション ジェネレーター で使用されるモデルは、主に英語で記述された自然言語コンテンツに対してトレーニングされています。 その結果、英語以外の言語で自然言語入力プロンプトをジェネレーターに提供すると、パフォーマンスが異なる場合があります。

レギュラー エクスプレション ジェネレーター は、構造化パターンを検出する正規表現の作成にのみ適しています。

参考資料