入力変数・定数・式・出力で整理する Gemini の Gem の設計
Gem の設計をする際に取り組む対象を入力変数・定数・式として捉え、整理する方法を紹介します。
こんにちは。組織開発室に所属し、組織開発を担当しているてぃーびーです。
Gemini を特定の業務に使う場合、単発ではなく繰り返し実施するなら都度プロンプトを入力するのではなく、 Gem として繰り返し利用可能な仕組みにしたいところです。そのための考え方として Gem の設計をする際に取り組む対象を入力変数・定数・式として捉え、整理する方法を紹介します。
入力変数、定数、式で整理する Gem の設計
生成AIを活用した業務改善は入力変数・定数・式・出力で捉えると改善に必要な要素を整理しやすくなります。
- 入力変数 : プロンプトに与える入力値。与える情報は都度変わる
- 定数 : Gemini の Gem を利用する際、指示テキストの中に不変の内容として設定する内容や追加ファイル
- 式 : 入力内容と定数の内容を元にどのように出力するかを記述したプロンプトの内容
- 出力 : 入力変数・定数を式で処理した結果、出力される結果
たとえば、求人票の作成を生成AIで実施するとします。この場合、各要素は以下のようになります。
要素 | 項目 | 説明 |
---|---|---|
入力変数 | 職種名 | 対象の職種。例えばデータエンジニア |
入力変数 | 職種のレベル | 職種におけるレベル。例えばジュニア、ミドル、シニア |
入力変数 | ポジションの魅力 | 環境、キャリア、同僚など働く上での魅力 |
定数 | 出力フォーマット | 職務概要、必須要件、歓迎要件、このポジションの魅力などの見出しを持ったフォーマット |
式 | 職務概要 | 入力変数(職種名、職種のレベル)を元に製品、サービス、職務内容の内容を生成する |
式 | 必須要件 | 入力変数(職種名、職種のレベル)を元に必須要件の内容を生成する |
式 | 歓迎要件 | 入力変数(職種名、職種のレベル)を元に歓迎要件の内容を生成する |
式 | 校正校閲 | 全体的に文章を遂行し、わかりやすい日本語にする |
式 | 全体の出力 | フォーマットに沿って各内容を出力する |
例示のためにシンプルな項目に留めましたが、実際は自社の求人票の項目に合わせてより詳細な内容に作り込むことができるでしょう。なお、今回は定数としてフォーマットの情報しかありませんが、特定領域の知識・情報を追加のファイルで設定するような場合、そのファイルの中身は定数にあたります。
求人票生成 Gem
上記の例の求人票生成 Gem を実際に作成してみます。
このプロジェクトでは、ユーザーからの特定のキーワードによる依頼をトリガーに所定の手順で受け答えを進めます。
特定のキーワードによる依頼以外については、規定の手順を気にせず回答してください。
# 求人票生成
## キーワード: 求人票生成
指示: 「求人票生成」というキーワードが入力されたら、以下の手順を必ず一つずつ、私の回答を待ってから提示してください。
手順の開始:
まず、手順1「職種名」を提示してください。
## 手順1 職種名の入力
職種名を教えてください。
## 手順2 職種のレベルの入力
(手順1の回答後、この手順に進む)
職種のレベル(ジュニア・ミドル・シニア)を教えてください。
## 手順3 ポジションの魅力の出力
(手順2の回答後、この手順に進む)
そのポジションの魅力を教えてください
## 手順4 結果の出力
[フォーマット] の内容に沿って求人票を出力してください。
なお、各文章は校正校閲を実施して、読みやすさを高めて出力してください。
[フォーマット]
【職務概要】
{職種名と職種のレベルを元にした職務概要の説明文}
【必須要件】
{職種名と職種のレベルを元にした必須要件を箇条書き}
【歓迎要件】
{職種名と職種のレベルを元にした必須要件を箇条書き}
【ポジションの魅力】
{ポジションの魅力の内容}
求人票生成 Gem を試す
テストパターン1 : データエンジニア(ミドル)
入力
求人生成
出力
手順1 職種名の入力
職種名を教えてください。
入力
データエンジニア
出力
手順2 職種のレベルの入力
職種のレベル(ジュニア・ミドル・シニア)を教えてください。
入力
ミドル
出力
手順3 ポジションの魅力の出力
そのポジションの魅力を教えてください
入力
・生成AIを活用したデータ分析基盤の構築に関わることができる
・クラウドインフラの学習支援の体制や人員が揃った環境で仕事ができる
出力
【職務概要】
ミドルレベルのデータエンジニアとして、データ分析基盤の設計、構築、運用を担当していただきます。特に、生成AIを活用した最先端のデータ基盤構築に携わり、ビジネスの意思決定を強力にサポートする役割を担います。
【必須要件】
* データ分析基盤の設計・構築・運用経験
* ETL/ELT処理の開発経験
* SQLを用いたデータ操作のスキル
* データモデリングに関する基本的な知識
* クラウドプラットフォーム(AWS, GCP, Azureなど)の利用経験
【歓迎要件】
* 生成AI、機械学習に関する基礎知識
* PythonまたはRを用いたデータ処理・分析の実務経験
* 大規模データ処理の経験
* データガバナンスやデータセキュリティに関する知識
* プロジェクトリーダーまたはチームリードの経験
【ポジションの魅力】
* 生成AIを活用した最先端のデータ分析基盤の構築に直接関わることができます。これにより、最新技術の習得と実践的な経験を積むことが可能です。
* クラウドインフラの学習支援体制が充実しており、経験豊富なチームメンバーから直接指導を受けられる環境で業務に取り組めます。
* ビジネスに直結する重要なデータ基盤の構築を通じて、企業の成長に貢献する達成感を味わえます。
* 常に新しい技術や手法を取り入れる社風があり、自身のスキルアップに繋がる刺激的な環境です。
* 多様な業界のデータに触れる機会があり、幅広い知識と経験を身につけることができます。
テストパターン2 : データエンジニア(シニア)
Gem の中で式と定数を整えてあるため、入力変数さえ変えれば同じ仕組みで別の出力を得ることができます。
入力
求人票生成
出力
手順1 職種名の入力
職種名を教えてください。
入力
ウェブエンジニア
出力
手順2 職種のレベルの入力
職種のレベル(ジュニア・ミドル・シニア)を教えてください。
入力
シニア
出力
手順3 ポジションの魅力の出力
そのポジションの魅力を教えてください
入力
・チーム全体の技術をリードする経験を得られます
・情報発信の文化があり、発信を通して業務で得た知見を世の中の創造活動に役立てることができます
出力
【職務概要】
シニアウェブエンジニアとして、チーム全体の技術的な方向性をリードし、プロダクト開発を推進していただきます。最新のウェブ技術を駆使し、高品質かつスケーラブルなシステムの設計・開発に責任を持ち、メンバーの育成にも貢献していただきます。
【必須要件】
* ウェブアプリケーションの設計、開発、運用経験(7年以上)
* 主要なフレームワーク(React, Angular, Vue.jsなど)を用いた開発経験
* バックエンド言語(Node.js, Python, Ruby, Goなど)を用いた開発経験
* データベース(RDB, NoSQL)の設計・最適化経験
* クラウドサービス(AWS, GCP, Azureなど)を利用したシステム構築経験
* チームリードまたはテックリードの経験
* パフォーマンスチューニング、スケーラビリティに関する深い知識
【歓迎要件】
* CI/CDパイプラインの構築・運用経験
* サービス監視、ログ分析の経験
* アジャイル開発の経験
* OSSへの貢献経験
* 技術ブログ執筆や登壇など、情報発信の経験
* チームメンバーの育成、メンタリング経験
* 新規技術の調査・導入提案経験
【ポジションの魅力】
* チーム全体の技術レベルを牽引し、大きな裁量を持ってプロダクト開発をリードする経験を積むことができます。あなたの技術力がプロダクトの成功に直結する、やりがいのあるポジションです。
* 社内に情報発信の文化が根付いており、業務で培った知見やノウハウを積極的に社内外に発信することで、世の中の創造活動に貢献できます。
* 最新技術の導入に積極的で、常に新しいチャレンジができる環境です。
* 経験豊富なメンバーが多く、お互いに高め合いながら成長できるチームです。
* ワークライフバランスを重視しており、長期的にキャリアを形成しやすい環境が整っています。