weave.StringPrompt 또는 weave.MessagesPrompt 클래스를 사용할 수 있습니다. 요구 사항이 더 복잡하다면 이들 또는 기본 클래스 weave.Prompt를 상속하고
format 메서드를 오버라이드할 수 있습니다.
이러한 객체 중 하나를 weave.publish로 게시하면 Weave 프로젝트의 Prompts 페이지에 나타납니다.
StringPrompt
StringPrompt는 시스템 메시지, 사용자 질의, 또는 LLM에 전달하는 독립적인 텍스트 입력 등 단일 문자열 프롬프트를 로그합니다. 여러 메시지로 이루어진 대화처럼 복잡한 구성이 필요하지 않은 개별 프롬프트 문자열을 관리할 때 StringPrompt 사용을 권장합니다.
- Python
- TypeScript
MessagesPrompt
MessagesPrompt를 사용하면 여러 턴으로 이루어진 대화와 채팅 기반 프롬프트를 로깅할 수 있습니다. 이는 전체 대화 흐름을 표현하는 메시지 객체 배열( “system”, “user”, “assistant”와 같은 역할(role)을 포함)을 저장합니다. 여러 메시지에 걸쳐 컨텍스트를 유지해야 하거나, 특정 대화 패턴을 정의하거나, 재사용 가능한 대화 템플릿을 만들어야 하는 채팅 기반 LLM에서는 이 방식을 사용하는 것을 권장합니다.
- Python
- TypeScript
프롬프트 매개변수화
StringPrompt와 MessagesPrompt 모두 매개변수화를 통해 동적 콘텐츠를 지원합니다. 이를 사용하면 실행 시점에 서로 다른 값으로 채워 넣을 수 있는 플레이스홀더({variable} 문법 사용)를 가진, 유연하고 재사용 가능한 프롬프트 템플릿을 만들 수 있습니다. 이는 프롬프트가 일관된 구조를 유지하면서도 서로 다른 입력, 사용자 데이터, 컨텍스트에 맞게 적응해야 하는 확장 가능한 애플리케이션을 만들 때 유용합니다. format() 메서드는 이러한 플레이스홀더를 실제 값으로 치환하기 위한 키-값 쌍을 인수로 받습니다.
- Python
- TypeScript
MessagesPrompt에도 동일하게 적용됩니다.
- Python
- TypeScript
프롬프트 버전 보기 및 비교
Weave는 프롬프트의 모든 버전을 자동으로 추적하여, 프롬프트가 어떻게 변화·발전했는지에 대한 완전한 이력을 생성합니다. 이 버전 관리 시스템은 프롬프트 엔지니어링 워크플로우에 매우 중요하며, 안전하게 실험하고, 어떤 변경이 성능을 개선했는지 또는 저하시켰는지 추적하며, 필요할 때 이전 버전으로 쉽게 롤백할 수 있게 해 줍니다. 동일한 이름에 다른 내용을 가진 프롬프트를 게시할 때마다 Weave는 이전 버전은 모두 그대로 유지하면서 새 버전을 생성합니다. UI에서 프롬프트 버전을 보려면 다음을 수행합니다:- UI에서 프로젝트를 연 다음 왼쪽 메뉴에서 Assets 버튼을 클릭합니다. 그러면 Assets 페이지가 열립니다.
- Assets 페이지에서 Prompts를 클릭합니다. 그러면 프로젝트의 프롬프트가 나열된 Prompts 페이지가 열립니다.
- Versions 열에서, 확인하려는 프롬프트의 (x) Versions를 클릭합니다. 그러면 해당 프롬프트의 버전 목록이 열립니다.

- (선택 사항) 나열된 프롬프트 옆의 체크박스를 선택한 다음 Compare 버튼을 클릭하여 프롬프트 버전들을 비교할 수 있습니다. 그러면 프롬프트 간의 차이(diff)를 확인할 수 있습니다.
