Duo インスピレーションハブ

Duoのアイデア: プロンプトと戦略

説明

コラボレーティブ・アイデアハブへようこそ。データプロフェッショナルが共有・学習・革新できるダイナミックなワークスペースです。このページでは、データ分析・自動化・コンプライアンスに関連するアイデアや実践例を探索できます。自分のインサイトや経験を貢献することで、データ主導の環境での私たちの集合的な理解と効果を高めることに専念する活気あるコミュニティの構築に貢献できます。

はじめに

急速に進化するデータ分析の分野において、コラボレーションと知識共有はイノベーションと継続的改善を促進するために不可欠です。コラボレーティブ・アイデアハブは、データ愛好者がアイデアを交換し、プロジェクトを紹介し、互いの経験から学び合う中心的な場です。

このハブは、GitLab 18.5で導入されたDuo Planner Agent(ベータ)とDuo Security Analyst Agent(ベータ)を含む最新のGitLab Duo機能と、GitLab全体のエンジニアリングチームからの実証済みプロンプトで更新されています。

1. データ分析支援

  • 探索的データ分析(EDA): DuoはユーザーにいかにしてEDAを実施するか、PythonまたはSQLコードスニペットを提案したり、統計モデルと可視化の結果を説明したりする手助けができます。
    • プロンプト: 「年齢・収入・購入履歴の列を持つデータセットがあります。可視化と要約統計を含む探索的データ分析を実行するPythonコードを提案していただけますか?」
  • SQLクエリ生成: Snowflake CopilotまたはDuoは複雑なSQLクエリの記述、パフォーマンス向上のための最適化、さまざまなクエリ構造の説明を支援できます。
    • プロンプト: 「過去6ヶ月で3回以上購入した顧客の平均注文額を計算するSQLクエリを書いてください。」
  • 統計分析: 仮説検定・回帰分析・相関計算などの統計手法の説明または実行を支援します。
    • プロンプト: 「平方フィートと寝室数に基づいて住宅価格を予測するためのPythonでの線形回帰の実行方法を説明していただけますか?」

2. データドキュメントの自動化

  • コード説明: PythonやRやSQLのスクリプトや関数の詳細な説明や要約を生成できます。
    • プロンプト: 「株価の移動平均を計算するこのPython関数をわかりやすい言葉で説明していただけますか?」
  • プロジェクトドキュメント: ワークフロー・コードベース・データパイプラインプロセスを要約することでプロジェクトドキュメントの作成を自動化します。
    • プロンプト: 「Snowflakeからデータを取得し、Pythonで変換してからTableauダッシュボードに結果をアップロードするこのデータパイプラインの要約を生成してください。」
  • 用語集の作成: データプロジェクトで使用する主要な用語・関数・データセット変数の用語集を自動的に生成します。
    • プロンプト: 「ETL・データウェアハウス・正規化・機械学習などの用語を含むデータプロジェクトの用語集を作成してください。」

3. コードのトラブルシューティングと最適化

  • デバッグ: Python・R・SQLコードの問題を診断し、解決策を提案し、データワークフローの一般的なエラーを修正します。
    • プロンプト: 「日付列で2つのpandas DataFrameをマージしようとするとエラーが発生します。こちらがコードです。何が問題かを特定するのを手伝っていただけますか?」
  • コードのリファクタリング: 可読性とパフォーマンスを向上させるためのコードの最適化とリファクタリングの推奨事項を提供します。
    • プロンプト: 「データセットの統計を計算するこのPythonコードがあります。可読性とパフォーマンスの改善を提案していただけますか?」

4. ワークフローとプロセスの最適化

  • パイプライン監視: ログを分析し、データパイプラインの障害・遅延・異常に関するインサイトを提供します。
    • プロンプト: 「このデータパイプラインのエラーログを分析し、ETLプロセスが変換ステップの途中で失敗した可能性のある原因を提案してください。」
  • 手順の自動化: ETLタスクやデータ検証などの一般的なプロセスを実行するスクリプトを生成することで、ワークフローの一部を自動化します。
    • プロンプト: 「CSVファイル内の欠損データをチェックして結果をログに記録するプロセスを自動化するPythonスクリプトを生成してください。」
  • ベストプラクティスのガイダンス: データガバナンス・コードレビュー・ドキュメントプロセスを改善するための推奨事項を見つけます。
    • プロンプト: 「データサイエンスプロジェクトでバージョン管理を管理・文書化するためのベストプラクティスは何ですか?」

5. TableauまたはBIダッシュボードとレポートのサポート

  • 分析
    • 計算フィールドの作成
      • プロンプト: 「Tableauで過去12ヶ月の売上データのローリング平均を表示する計算フィールドの作成を手伝っていただけますか?」これにより、ウィンドウ関数・LOD(詳細レベル)・日付書式設定などに役立てることができます。
    • カスタムSQLクエリの作成
      • プロンプト: 「Snowflakeからデータを取得し、Tableauダッシュボードに提供する前に過去30日分の結果をフィルタリングするクエリを書いてください。」
    • チームが関連するKPIと指標を特定するのを支援
      • プロンプト: 「顧客維持と売上成長に焦点を当てた小売ダッシュボードの主要業績評価指標(KPI)を提案してください。」
  • レポートの要約: データのインサイトや分析結果をステークホルダー向けに簡潔でわかりやすい言葉で要約します。
    • プロンプト: 「地域別の総売上・顧客解約率・最も売れた商品など、このデータセットの主要な調査結果を要約してください。」
  • ドキュメント
    • ダッシュボードの説明を書く
      • プロンプト: 「カスタマーサクセスの達成目標に関するレポートダッシュボードがあります。2文の説明を書いてください。」
    • 指標の定義を書く
      • プロンプト: 「これら5つの指標の1文の定義を書いてください:(リストを含める)。」
  • パフォーマンスと問題
    • 読み込みパフォーマンス
      • プロンプト: 「Tableauワークブックの読み込みが遅くなる一般的な原因と、パフォーマンスの問題をトラブルシューティングする方法は何ですか?」

6. データに対する自然言語クエリ

  • 会話型アナリティクス: SQLやコードを書くことなく、データについて自然言語で質問して関連する結果やインサイトを受け取ることができるようにします。
    • プロンプト: 「このデータセットに基づいて、今年Q2の総売上はいくらで、Q1とどう比較されますか?」
  • データ要約の生成: 外れ値・主要なトレンド・要約統計を自動的に強調表示したデータセットの要約を生成します。
    • プロンプト: 「平均・中央値・標準偏差などの主要な統計と、顕著なトレンドや外れ値を含むこのデータセットを要約してください。」

7. データセキュリティとコンプライアンスの強化

  • コンプライアンスクエリ: チームが遵守する必要があるデータガバナンス・プライバシー法(GDPRなど)・セキュリティプロトコルについての迅速な回答やリマインダーを提供します。
    • プロンプト: 「ヨーロッパで顧客データを保存する際に遵守する必要がある主なデータプライバシー規制は何ですか?」
  • ポリシーの作成: 組織のニーズに合わせたデータセキュリティとコンプライアンスポリシーの作成または改善を支援します。
    • プロンプト: 「アクセス制御・暗号化・安全なバックアップに焦点を当てた組織のデータセキュリティポリシーの草案作成を手伝ってください。」

8. その他の分析ユースケース

  • 正規表現(Regex)
    • プロンプト: 「ローカル部分とドメインの両方を正しくキャプチャするメールアドレスにマッチするregexパターンを書くのを手伝ってください。」
  • Cronジョブのスケジュール設定
    • プロンプト: 「毎日午前3時にPythonスクリプトを実行するcronジョブの書き方は?」
  • データクレンジングスクリプト
    • プロンプト: 「CSVファイルから重複を削除して、クレンジングされたデータを新しいファイルに保存するPythonスクリプトを提供していただけますか?」
  • APIリクエストのフォーマット
    • プロンプト: 「requestsライブラリを使ってパブリックREST APIからデータを取得するためのPythonでのAPIリクエストのフォーマット方法を手伝ってください。」
  • データバックアップの自動化
    • プロンプト: 「毎週日曜日の深夜0時にディレクトリを外部ドライブにバックアップするBashスクリプトを提案していただけますか?」
  • ユニットテストのコーディング
    • プロンプト: 「数値の階乗を計算する関数のPythonユニットテストの書き方は?」
  • JSONデータの操作
    • プロンプト: 「JSONファイルを解析して特定のフィールドをPandas DataFrameに抽出するPython関数を書いてください。」
  • Gitコマンドとワークフロー
    • プロンプト: 「新しいブランチを作成して切り替え、リモートリポジトリにプッシュするためのGitコマンドは?」
  • データベースクエリの最適化
    • プロンプト: 「効率的に実行されるようにしながら、大きなテーブルからレコードを選択するSQLクエリを最適化するにはどうすればよいですか?」
  • 環境変数の管理
    • プロンプト: 「dotenvパッケージを使ったPythonアプリケーションの.envファイルで環境変数を設定するにはどうすればよいですか?」

9. GitLab Duo Planner Agent(ベータ)

GitLab Duo PlannerはGitLab 18.5で導入されたAIエージェントで、プロダクト管理と計画ワークフローを支援します。公式ドキュメントによると、優先順位付け・作業分解・依存関係分析・計画セッション・ステータスレポート・バックログ管理・見積もりを支援します。

以下はGitLab Duo Plannerドキュメントのプロンプト例です。

  • 優先順位付け

    • プロンプト: 「RICEフレームワークを使って、ラベル(ラベル名を入力)のあるバックログのIssueを優先順位付けしてください。」
    • プロンプト: 「基準(基準を入力)に基づいて、MoSCoWを使って顧客への影響を考慮した機能を分類してください。」
    • プロンプト: 「“boards"ラベルのあるバグのうち、ユーザーへの影響を考慮してどれを最初に修正すべきですか?」
    • プロンプト: 「これらのエピックをQ1の戦略的価値でランク付けしてください。」
    • プロンプト: 「技術的負債と新機能の優先順位付けを手伝ってください。」
    • プロンプト: 「工数対インパクトマトリクスを使ってこれらの機能(URLを入力)を比較してください。」
  • 作業分解とスコープ設定

    • プロンプト: 「このエピックのどの子アイテムを締め切りに間に合わせるために現在のスコープから除外すべきですか?」
    • プロンプト: 「このイニシアチブ(URLを入力)を提供するために必要な主要機能に分解してください。」
    • プロンプト: 「このエピック(URLを入力)の受け入れ基準付きのユーザーストーリーを作成してください。」
    • プロンプト: 「このユーザーストーリーを実装するために必要なタスクは何ですか?」
    • プロンプト: 「このプロジェクト(URLを入力)の段階的なアプローチを提案してください。」
    • プロンプト: 「この機能のMVPバージョンはどのようなものですか?(URLを入力)」
    • プロンプト: 「バージョン1に必要な機能とオプションの機能を特定し、その理由を説明してください:(URLを入力)」
  • 計画と整理

    • プロンプト: 「これらの20個のIssue(フィルター基準を入力)をQ1のスプリントにどう整理するか提案してください。」
    • プロンプト: 「スコープを削減するためにこのエピック(URLを入力)でどの作業を延期すべきですか?」
    • プロンプト: 「このバックログ(フィルター基準を入力)をレビューして、改良が必要なアイテムを特定してください。」
    • プロンプト: 「このイニシアチブの機能をどう順序付けすべきですか?(URLを入力)」
    • プロンプト: 「これらのIssueを論理的なリリーステーマにグループ化してください:(URLを入力)」
  • ステータスレポートとコミュニケーション

    • プロンプト: 「このエピックの進捗のエグゼクティブサマリーを生成してください:(URLを入力)」
    • プロンプト: 「(関連するマイルストーンまたはイテレーションを入力)に割り当てられたIssueに基づいてリリースノートを草案してください。」
    • プロンプト: 「このイニシアチブの健全性に関するステークホルダーへの更新を書いてください:(URLを入力)」
    • プロンプト: 「リーダーシップ向けのブロッカーと緩和計画を要約してください:(URLを入力)」
  • バックログ管理

    • プロンプト: 「6ヶ月更新されていない古いIssueを見つけてください。」
    • プロンプト: 「このプロジェクト内の重複または類似したIssueを特定してください。」
    • プロンプト: 「見積もりや担当者が欠けているIssueはどれですか?」
    • プロンプト: 「親のない孤立したIssueを特定してください。」
    • プロンプト: 「期限を過ぎたIssueはどれですか?」

10. GitLab Duo Security Analyst Agent(ベータ)

GitLab Duo Security Analyst Agentは、GitLab 18.5のAI Catalogで利用可能になり、GitLab Duo Agentic Chatの自然言語コマンドを通じてセキュリティワークフローと脆弱性管理を自動化します。GitLab 18.5リリースによると、このエージェントは以下のタスクを実行します。

  • 脆弱性のリストと表示

    • プロンプト: 「現在のプロジェクトのすべての脆弱性をリストしてください。」
    • プロンプト: 「CVEデータとEPSSスコアを含む脆弱性[脆弱性ID]の詳細情報を取得してください。」
    • プロンプト: 「各脆弱性のCVEデータとEPSSスコアを含む詳細情報とともに[プロジェクト名]のすべての脆弱性をリストしてください。」
  • 脆弱性ステータスの管理

    • プロンプト: 「評価されて誤検知と判断された以下の低深刻度の脆弱性を確認して却下してください:[脆弱性IDのリスト]。」
    • プロンプト: 「最近の脅威インテリジェンスに基づいて脆弱性CVE-2024-XXXXの深刻度レベルを「高」に更新してください。」
    • プロンプト: 「脆弱性[脆弱性ID]のステータスを「検出済み」に戻してください。」
  • 脆弱性IssueのとIssueリンクの作成

    • プロンプト: 「詳細情報と修復の推奨事項を含むCVE-2024-XXXXの脆弱性Issueを作成してください。」
    • プロンプト: 「最後のセキュリティスキャンで見つかった重大度「Critical」と「High」のすべての脆弱性の脆弱性Issueを作成してください。」
    • プロンプト: 「脆弱性[脆弱性ID]を既存のIssue[IssueのURLまたは番号]にリンクしてください。」
    • プロンプト: 「既存の脆弱性Issueを対応するマージリクエストにリンクして、修復の進捗を追跡してください。」

11. エンジニアリングと開発ワークフロー

  • レトロスペクティブ分析
    • プロンプト: 「あなたはチームのレトロスペクティブと継続的改善の経験豊富なエンジニアリングマネージャーです。以下のレトロスペクティブのIssueコメントを分析し、包括的な要約を提供してください。注目点: 1) 主要な議論ポイント - チームメンバーが議論した主なテーマ・懸念・トピックを抽出してください。2) うまくいったこと - 言及されたポジティブな結果・成功した実践・成果を特定してください。3) 改善領域 - 課題・痛点・注意が必要な領域を強調してください。4) アクションアイテム - 議論に基づいた具体的で実行可能な次のステップを提案してください。5) チームセンチメント - チームの全体的なトーンと士気を評価してください。概要・議論テーマ・課題・推奨アクションのセクションで回答をフォーマットしてください。」
  • IssueのリファインメントとPlanning
    • プロンプト: 「あなたはGitLab開発・CI/CDパイプライン・ソフトウェアサプライチェーンセキュリティの専門知識を持つ経験豊富なソフトウェアエンジニアです。以下のIssueの説明を分析し、詳細な実装計画を作成してください。提供内容: 1) この作業を行う理由 - 解決している問題の明確な説明。2) 非機能要件 - ドキュメント・機能フラグ・パフォーマンス・テスト・セキュリティ・後方互換性。3) 実装計画 - 依存関係・コード変更・データベース変更・関与するコンポーネントを含むステップバイステップの技術的アプローチ。4) 検証ステップ - 異なる環境でのテストと検証方法。5) リスク評価 - 潜在的な課題と緩和戦略。6) 推定複雑度 - スコープと複雑さに基づくウェイトを提案してください。」
  • コードレビューのベストプラクティス
    • プロンプト: 「このマージリクエストをセキュリティ・パフォーマンス・保守性・ベストプラクティスに関する潜在的な問題についてレビューしてください。改善のための具体的な提案を提供してください。」
  • 技術ドキュメント
    • プロンプト: 「アーキテクチャの概要・APIエンドポイント・使用例・トラブルシューティングガイドを含むこの機能の包括的な技術ドキュメントを生成してください。」

12. GitLab Duo ChatとコードGeneration

GitLab Duo Chatは、IDEまたはGitLabインターフェース内で直接コード生成・説明・リファクタリングなどを支援するインタラクティブなAIアシスタントを提供します。

  • コード説明
    • プロンプト: 「このコードが何をするのかをシンプルな言葉で説明してください。潜在的なエッジケースやパフォーマンスの考慮事項も含めてください。」
  • コード生成
    • プロンプト: 「適切なエラー処理を含む正規表現を使ってメールアドレスを検証し、有効な場合はTrue、無効な場合はFalseを返すPython関数を生成してください。」
  • コードのリファクタリング
    • プロンプト: 「このコードをリファクタリングして可読性を向上させ、複雑さを減らし、ベストプラクティスに従うようにしてください。適切な場所でデザインパターンを提案してください。」
  • テスト生成
    • プロンプト: 「エッジケース・エラー条件・通常のユースケースを含む、この関数の包括的なユニットテストを生成してください。」
  • バグの特定
    • プロンプト: 「このコードの潜在的なバグ・セキュリティ脆弱性・論理エラーを分析してください。説明と修正の提案を提供してください。」
  • パフォーマンスの最適化
    • プロンプト: 「このコードのパフォーマンスの問題をレビューして最適化を提案してください。特にデータベースクエリ・ループ・メモリ使用量に注目してください。」
  • マイグレーション支援
    • プロンプト: 「このコードをPython 2からPython 3に移行するのを手伝ってください。重大な変更を特定して現代的な代替案を提案してください。」
  • API統合
    • プロンプト: 「認証・エラー処理・レート制限を含む[API名]REST APIとの統合方法を教えてください。」

13. チームの利用からのトッププロンプト

GitLabチームが最もよく使うプロンプトです:

  • テスト生成

    • プロンプト: `<selected_code></selected_code>` タグ内でユーザーが選択したコードのテストを書いてください。
      • 使用法: 選択したコードのユニットテストを自動生成します。
      • 最適: テストカバレッジが必要な関数・クラス・コードブロック
    • プロンプト: 「エッジケースとエラー条件を含むこの関数の包括的なユニットテストを生成してください。」
    • プロンプト: 「主要なユーザーワークフローをカバーする[機能名]の統合テストを作成してください。」
    • プロンプト: 「成功・失敗・検証シナリオを含むこのAPIエンドポイントのテストケースを書いてください。」
  • コードのリファクタリング

    • プロンプト: `<selected_code></selected_code>` タグ内でユーザーが選択したコードをリファクタリングしてください。
      • 使用法: コード品質・可読性・保守性を向上させます。
      • 最適: レガシーコード・複雑なロジック・ベストプラクティスに違反するコード
    • プロンプト: 「[コーディング標準]のベストプラクティスに従い可読性を向上させるためにこのコードをリファクタリングしてください。」
    • プロンプト: 「この複雑な関数をより小さく焦点を絞った関数に分解することでシンプルにしてください。」
    • プロンプト: 「重複を削除して共通パターンを再利用可能なユーティリティに抽出するためにこのコードをリファクタリングしてください。」
  • コード説明

    • プロンプト: `<selected_code></selected_code>` タグ内でユーザーが選択したコードを説明してください。
      • 使用法: 不慣れまたは複雑なコードを理解します。
      • 最適: オンボーディング・コードレビュー・レガシーシステムの作業
    • プロンプト: 「このコードが何をするのかをシンプルな言葉で説明してください。エッジケースや落とし穴も含めてください。」
    • プロンプト: 「このアルゴリズムをステップバイステップで説明して時間/空間複雑度を説明してください。」
    • プロンプト: 「このコードが大規模なシステムにどう適合し、その依存関係が何であるかを説明してください。」
  • コードレビューと品質

    • プロンプト: 「潜在的なバグ・セキュリティ脆弱性・パフォーマンスの問題についてこのコードをレビューしてください。」
    • プロンプト: 「このコードをコーディング標準に照らし合わせて改善点を提案してください。」
    • プロンプト: 「この実装のアンチパターンやコードの悪臭を特定してください。」
    • プロンプト: 「コード品質についてこのマージリクエストをレビューして、具体的で実行可能なフィードバックを提供してください。」
  • ドキュメント生成

    • プロンプト: 「パラメーター・戻り値・使用例を含むこの関数/クラスのドキュメントを生成してください。」
    • プロンプト: 「このコードブロックの複雑なロジックを説明するインラインコメントを作成してください。」
    • プロンプト: 「このモジュールの使用方法を説明するREADMEセクションを書いてください。」
    • プロンプト: 「このファイルのAPIエンドポイントをリクエスト/レスポンスの例とともにドキュメント化してください。」
  • バグ修正とデバッグ

    • プロンプト: 「このエラーメッセージを分析して可能な修正を提案してください:[エラーメッセージ]」
    • プロンプト: 「このコードをデバッグしてください - [期待される動作]をするはずですが、実際には[実際の動作]をしています。」
    • プロンプト: 「このコードのバグを見つけてその原因を説明してください。」
    • プロンプト: 「このコードは[例外名]をスローします - 何が問題でどう修正しますか?」
  • コード生成

    • プロンプト: 「適切なエラー処理で[特定のタスク]を行う[言語]の関数を生成してください。」
    • プロンプト: 「必要なすべてのメソッドを持つ[インターフェース名]を実装するクラスを作成してください。」
    • プロンプト: 「[データ形式]を解析して[特定のフィールド]を抽出するコードを書いてください。」
    • プロンプト: 「[操作]を処理するRESTエンドポイントのボイラープレートコードを生成してください。」

このハブへの貢献

すべてのチームメンバーが自分の成功したDuoプロンプトとユースケースを貢献することを奨励しています!GitLab Duoを使った効果的なプロンプトや革新的な方法を発見した場合は、このページに追加するか、データプラットフォームチームと共有することを検討してください。