Skip to main content

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

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

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

Secret scanning は、次のリポジトリに使うことができます:

  • パブリック リポジトリ (無料)
  • GitHub Advanced Security が有効な で GitHub Enterprise Cloud を使用している組織のプライベート リポジトリと内部リポジトリ
  • Enterprise Managed Users の GitHub Enterprise Cloud のユーザー所有リポジトリ

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

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

Note

コパイロット シークレット スキャン の レギュラー エクスプレション ジェネレーター を使用するには、GitHub Copilot のサブスクリプションは必要ありません。 コパイロット シークレット スキャン 機能は、GitHub Advanced Security のライセンスを持つGitHub Enterprise Cloud企業のプライベート リポジトリで使用できます。

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

入力処理

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

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

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

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

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

正規表現で [結果を使用] をクリックすると、正規表現と入力した例 (入力した場合) がメイン カスタム パターン フォームにコピーされます。 そこで、パターンのドライ ランを実行して、リポジトリ全体または組織全体でパターンがどのように実行されるかを確認できます。リポジトリまたは組織のカスタム パターンを定義する方法の詳細については、「シークレット スキャンのカスタム パターンの定義」を参照してください。

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

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

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

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

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

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

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

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

次のステップ

参考資料