microsoft/prompty

Prompty makes it easy to create, manage, debug, and evaluate LLM prompts for your AI applications. Prompty is an asset class and format for LLM prompts designed to enhance observability, understandability, and portability for developers.

해결하고자 하는 문제

Prompty는 개발자가 프롬프트 엔지니어링을 애플리케이션 코드와 분리할 수 있게 해줍니다. Python이나 TypeScript 파일에 문자열로 프롬프트를 하드코딩하는 대신, 전용 .prompty 파일에 프롬프트를 저장합니다. 이 파일은 마크다운과 유사한 형식으로 구성되어 설정(모델, 입력, 도구)과 프롬프트 텍스트 자체를 결합합니다.

작동 방식

파일은 설정을 위한 YAML 프론트매터와 프롬프트 본문을 위한 마크다운으로 이루어집니다. system:, user:, assistant:와 같은 역할 마커를 사용해 메시지 경계를 정의하고, Jinja2 또는 Mustache 템플릿 구문을 통해 동적 콘텐츠를 생성할 수 있습니다.

개발자는 Python 및 TypeScript용 런타임을 사용하거나 VS Code 내에서 직접 이 파일들을 실행할 수 있습니다. 이 도구는 OpenAI, Anthropic, Microsoft Foundry 등 여러 LLM 제공자를 지원하며, 환경 변수를 통해 엔드포인트와 API 키를 쉽게 전환할 수 있습니다.

대상 사용자

프롬프트를 포터블하고 버전 관리된 방식으로 관리하고 싶으며, 다양한 언어와 런타임에서 사용할 수 있는 AI 개발자 및 프롬프트 엔지니어에게 적합합니다. 또한 VS Code와 통합된 경험을 통해 프롬프트를 테스트하고 반복하고자 하는 사용자에게 이상적입니다.

주요 특징

  • 크로스 플랫폼 지원: 동일한 .prompty 파일을 Python, TypeScript, VS Code에서 실행할 수 있습니다.
  • 설정 기반: 모델 설정, 입력 및 도구 정의가 YAML 프론트매터에 저장됩니다.
  • 통합 툴링: VS Code 확장이 실시간 미리보기, 모델 엔드포인트 관리를 위한 사이드바, 실행 파이프라인을 검사하는 트레이스 뷰어를 제공합니다.
  • 유연한 템플릿: Jinja2와 Mustache를 지원해 동적 프롬프트 구성이 가능합니다.
  • 포터블 엔드포인트: 프롬프트 본문을 변경하지 않고도 OpenAI 호환 엔드포인트와 자체 호스팅 모델 서버 간을 손쉽게 전환할 수 있습니다.