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パイプラインに便利。

一般的なワークフロー

  1. .promptファイルを作成 – model、input.schema、output.format、output.schemaを宣言するYAMLフロントマターから開始。Handlebars({{variable}})を使用してプロンプト本体を記述。
  2. ライブラリを追加 – 例:npm i dotprompt(JS)またはpip install dotpromptz(Python)。
  3. コード内でプロンプトを読み込み(Genkitではai.prompt("myPrompt")、他の言語では同等の記法)。
  4. 入力スキーマに一致する平文オブジェクトで呼び出し。ライブラリが検証、モデル呼び出し、出力パースを処理します。
  5. 反復 – プロンプトがバージョン管理されたファイルであるため、変更履歴を追跡したり、ロールバックしたり、チーム間で共有したりできます。

例(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開発をよりモジュール化、信頼性高く、協働しやすいものにします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト