google/dotprompt
Executable GenAI prompt templates
Dotprompt – 生成式 AI 的可执行提示模板
是什么 – Dotprompt 定义了一种文件格式(.prompt),将生成式 AI 提示与运行它所需的所有信息捆绑在一起:模型选择、温度、输入模式、预期输出格式以及 Handlebars 风格的占位符。该格式与语言无关,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 集成运行此提示,将返回一个类型化的 JSON 对象,例如 "{\"name\":\"John Doe\",\"age\":35,\"occupation\":\"software engineer\"}"。
快速入门(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 开发更加模块化、可靠且协作性更强。
相关
- 项目
- 项目
- 项目
- 项目
- 项目