google/dotprompt
Executable GenAI prompt templates
Dotprompt – 生成AI用の実行可能なプロンプトテンプレート
何であるか – Dotpromptは、生成AIプロンプトをモデル選択、温度設定、入力スキーマ、期待される出力形式、Handlebarsスタイルのプレースホルダーなど、実行に必要なすべての情報をバンドルするファイル形式(.prompt)を定義します。この形式は言語に依存せず、GoogleはJavaScript/TypeScript、Python、Go、Rust、Java向けのコアライブラリを提供しており、エディタ拡張(VS Code、JetBrains、Vim/Emacs)およびWebベースのエディタ(Monaco、CodeMirror)も用意されています。
なぜ重要か – プロンプトエンジニアリングはしばしば散在したコードや一時的なテキストファイルに依存しています。プロンプトを自己完結型の実行可能なアーティファクトとして扱うことで、以下のことが可能になります:
- モデルに送信する前に、入力をスキーマで検証できます。
gemini-2.5-pro、温度など、モデルとそのパラメータをファイル内に直接宣言できます。- 期待される出力形式(JSON、XMLなど)とスキーマを定義し、自動パースと型チェックを可能にします。
- プロジェクトや言語をまたいで同じプロンプトを再利用でき、ボイラープレートの再記述が不要です。
主要コンポーネント
| コンポーネント | 提供する機能 |
|---|---|
コアライブラリ (dotprompt, dotpromptz, dotprompt-go, dotprompt-rs, dotprompt-java) |
.promptファイルを読み込み、Handlebars変数を埋め込み、設定されたモデルを呼び出し、型付きの結果を返すパーサー、バリデータ、ランタイムヘルパー。 |
| IDE拡張 (VS Code、JetBrains、Vim、Emacs) | 構文強調、スキーマ対応の自動補完、エディタ内でのワンクリック「プロンプト実行」コマンド。 |
| Webエディタ (Monaco、CodeMirror) | SaaSツールや社内ダッシュボードに埋め込めるエディタ。 |
| Tree-sitter文法 | 言語サーバー機能やカスタムツール用の正確なパース。 |
CLI(promptly) |
ターミナルから.promptファイルを実行可能。すばやい実験やCIパイプラインに便利。 |
一般的なワークフロー
.promptファイルを作成 –model、input.schema、output.format、output.schemaを宣言するYAMLフロントマターから開始。Handlebars({{variable}})を使用してプロンプト本体を記述。- ライブラリを追加 – 例:
npm i dotprompt(JS)またはpip install dotpromptz(Python)。 - コード内でプロンプトを読み込み(Genkitでは
ai.prompt("myPrompt")、他の言語では同等の記法)。 - 入力スキーマに一致する平文オブジェクトで呼び出し。ライブラリが検証、モデル呼び出し、出力パースを処理します。
- 反復 – プロンプトがバージョン管理されたファイルであるため、変更履歴を追跡したり、ロールバックしたり、チーム間で共有したりできます。
例(READMEからの抜粋) – 自由形式のテキストから構造化データを抽出するプロンプト:
---
model: googleai/gemini-2.5-pro
input:
schema:
text: string
output:
format: json
schema:
name?: string, the full name of the person
age?: number, the age of the person
occupation?: string, the person's occupation
---
Extract the requested information from the given text. If a piece of information
is not present, omit that field from the output.
Text: {{text}}
Genkit統合で実行すると、{"name":"John Doe","age":35,"occupation":"software engineer"}のような型付きJSONオブジェクトが得られます。
導入方法(JS/TSの例をREADMEに掲載)
npm i genkit @genkit-ai/googleai # Genkit + Google AIプロバイダのインストール
import { genkit } from "genkit";
import { googleAI } from "@genkit-ai/googleai";
const ai = genkit({ plugins: [googleAI()] });
const extractInfo = ai.prompt("extractInfo");
const {output} = await extractInfo({text: "John Doe is a 35‑year‑old software engineer..."});
console.log(output);
認証のため、環境変数にGOOGLE_API_KEYを設定してください。
誰が使うべきか
- AIを強化するアプリケーションを開発する開発者 – プロンプトを整理し、バージョン管理可能で型安全に保つ。
- プロンプトエンジニア / データサイエンティスト – アプリケーションコードを触らずに、モデルパラメータや出力スキーマを実験可能。
- 複数言語スタックを持つチーム – 同じ
.promptファイルがJS、Python、Go、Rust、Javaで動作する。 - ツール開発者 – WebエディタやCLIを社内プラットフォームに埋め込める。
コミュニティとサポート
- 実時間でのヘルプ用Discordチャンネル:https://discord.gg/qXt5zzQKpc
- オープンソースへの貢献を歓迎。コミット規約やテストガイドラインは
GEMINI.mdを参照。 - CIバッジにより、各言語実装が継続的にテストされていることが確認可能。
Dotprompt はプロンプトを第一級の実行可能資産に変換し、生成AI開発をよりモジュール化、信頼性高く、協働しやすいものにします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト