google/dotprompt
Executable GenAI prompt templates
Dotprompt – 생성형 AI를 위한 실행 가능한 프롬프트 템플릿
무엇인가요 – Dotprompt는 생성형 AI 프롬프트를 모델 선택, 온도, 입력 스키마, 예상 출력 형식, Handlebars 스타일의 자리 표시자와 같은 실행에 필요한 모든 정보와 함께 묶는 파일 형식(.prompt)을 정의합니다. 이 형식은 언어에 관계없이 사용 가능하며, Google은 JavaScript/TypeScript, Python, Go, Rust, Java용 핵심 라이브러리를 제공하고, 에디터 확장(Visual Studio Code, JetBrains, Vim/Emacs), 웹 기반 에디터(Monaco, CodeMirror)도 제공합니다.
왜 중요한가요 – 프롬프트 엔지니어링은 종종 흩어진 코드나 임시 텍스트 파일에 의존합니다. 프롬프트를 자가 포함된 실행 가능한 자산으로 만듦으로써 다음을 가능하게 합니다:
- 모델에 전송하기 전에 입력을 스키마로 검증할 수 있습니다.
gemini-2.5-pro, 온도 등 모델과 그 파라미터를 파일 내에서 직접 선언할 수 있습니다.- 예상 출력 형식(JSON, XML 등)과 스키마를 정의하여 자동 파싱과 타입 체크를 가능하게 합니다.
- 프로젝트와 언어를 넘나들며 동일한 프롬프트를 재사용할 수 있어 뼈대 코드를 다시 작성할 필요가 없습니다.
주요 구성 요소
| 구성 요소 | 제공 기능 |
|---|---|
핵심 라이브러리 (dotprompt, dotpromptz, dotprompt-go, dotprompt-rs, dotprompt-java) |
.prompt 파일을 읽고 Handlebars 변수를 채우며, 설정된 모델을 호출하고 타입이 지정된 결과를 반환하는 파서, 검증기, 런타임 헬퍼. |
| IDE 확장 (VS Code, JetBrains, Vim, Emacs) | 구문 강조, 스키마 인식 자동 완성, 에디터 내에서 한 번의 클릭으로 "프롬프트 실행" 명령. |
| 웹 에디터 (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에서 모두 작동합니다. - 도구 개발자 – 웹 에디터나 CLI를 내부 플랫폼에 통합할 수 있습니다.
커뮤니티 및 지원
- 실시간 도움을 위한 Discord 채널: https://discord.gg/qXt5zzQKpc
- 오픈소스 기여를 환영합니다. 커밋 규칙과 테스트 가이드라인은
GEMINI.md를 참조하세요. - CI 배지로 각 언어 구현이 지속적으로 테스트됨을 확인할 수 있습니다.
Dotprompt는 프롬프트를 일급 실행 가능한 자산으로 전환하여 생성형 AI 개발을 더 모듈화되고 신뢰성 있으며 협업 가능한 것으로 만듭니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트