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)를 확인할 수 있습니다.
