필드 생성 프롬프트 템플릿 작성하기
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 프롬프트 빌더를 사용해 필드 생성 프롬프트 템플릿을 만들 수 있습니다.
- 데이터를 프롬프트 템플릿에 전송하는 플로를 만들 수 있습니다.
- Flex 프롬프트 템플릿을 만들 수 있습니다.
필드 생성 프롬프트 템플릿은 레코드 필드와 직접적인 관계가 있습니다. LAB(Lightning 앱 빌더)를 사용하면 Einstein 버튼()으로 지정된 프롬프트 템플릿을 트리거하여 프롬프트를 LLM으로 전송하고 특정 필드에 응답을 반환할 수 있습니다.
Linda는 고객 지원 에이전트가 모든 Cloud Kicks 고객을 신속하게 지원할 수 있도록 하려 합니다. Linda는 에이전트가 사례 요약 필드의 Einstein 버튼을 클릭할 때 관련 사례 설명 기록의 요약을 생성하는 필드 생성 프롬프트 템플릿을 활용하려고 합니다.
Einstein 버튼을 구성하고 LLM 응답을 생성하려면 다음 두 가지가 필요합니다.
- 프롬프트 빌더로 만든 필드 생성 프롬프트 템플릿
- 컴포넌트에 추가되고 LAB에서 구성된 필드
필드 생성 프롬프트 템플릿 만들기
Linda는 프롬프트 빌더를 열어서 새 프롬프트 템플릿을 만듭니다. 프롬프트 템플릿 유형을 선택하고 다음을 입력하여 템플릿 설정을 완료합니다.
- Prompt Template Type(프롬프트 템플릿 유형): Field Generation(필드 생성)
- Prompt Template Name(프롬프트 템플릿 이름):
Case Comments Summary
(사례 설명 요약) - API Name(API 이름):
Case_Comments_Summary
- Template Description(템플릿 설명):
Summary of case details.
(사례 세부 정보 요약) - Object(개체): Case(사례)
- Object Field(개체 필드): Case_AI_Summary__c
프롬프트 템플릿 설정이 완료되면 템플릿 워크스페이스에서 프롬프트 템플릿을 만듭니다.
당신은 고객과 회사 지원 담당자 간에 발생한 사례에 대하여 간단한 요약을 작성하는 지원 담당자입니다. |
---|
Save(저장)와 Activate(활성화)를 클릭하여 LAB에서 템플릿에 액세스합니다. 이제 Linda는 즉시 사용할 수 있는 프롬프트 템플릿을 보유하고 있으며, Case record(사례 레코드) 페이지에서 Case AI Summary(사례 AI 요약) 필드를 생성해야 합니다.
LAB에서 필드를 구성하여 필드 생성 프롬프트 템플릿 연결하기
Einstein 버튼을 사용하여 레코드에서 필드 생성 프롬프트 템플릿을 트리거하려면 Linda는 LAB에서 필드를 구성해야 합니다. 이를 위해서는 기존 Lightning 레코드 페이지를 선택하거나 새 페이지를 만들어야 합니다.
Linda는 레코드 세부 정보 구성 요소 또는 필드 섹션 구성 요소를 선택한 페이지로 끌어다 놓을 수 있습니다.
-
필드 섹션 구성 요소의 경우: Linda는 양식 필드를 필드 섹션 구성 요소로 끌어다 놓을 수 있습니다.
-
레코드 세부 정보 구성 요소의 경우: Linda는 구성 요소를 동적 양식으로 마이그레이션해야 합니다. 오른쪽 패널에서 Upgrade(업그레이드)를 선택하고 업그레이드 마법사의 단계별 안내를 따라 마이그레이션을 수행할 수 있습니다. 이를 통해 기존 레코드 페이지의 필드를 개별 구성 요소로 구성할 수 있습니다.
Linda는 쓰기 가능한 텍스트, 텍스트 영역, (긴) 텍스트 영역, (서식 있는) 텍스트 영역의 필드 유형을 포함하여 필드 생성을 지원하는 모든 양식 필드를 선택할 수 있습니다. 필드 생성 프롬프트는 읽기 전용 필드와 호환되지 않습니다.
Field Properties(필드 속성) 패널의 Einstein Generative AI(Einstein 생성형 AI) 섹션에서 양식 필드에 할당할 필드 생성 프롬프트 템플릿을 선택합니다.
그런 다음 Linda는 레코드 페이지를 저장하고 활성화합니다.
Linda는 프롬프트 템플릿에 실시간 데이터를 통합하여 관련성을 높여야 한다는 것을 알고 있습니다. 이는 플로에서 호출할 수 있습니다.
프롬프트 템플릿에 플로 추가하기
관리자는 Flow Builder를 사용해 코드를 전혀 작성하지 않고도 템플릿 트리거 프롬프트 플로를 만들어 프롬프트 템플릿에 복잡한 로직을 통합할 수 있습니다. Flow Builder에서 Linda는 사례 설명 요약 프롬프트 템플릿에 대한 템플릿 트리거 프롬프트 플로를 만듭니다. 템플릿 트리거 프롬프트 플로 유형의 플로는 프롬프트 템플릿에서만 실행됩니다.
Flow Builder가 로드된 후 Linda는 Start(시작) 패널에 다음 정보를 입력합니다.
- Select Input Type(입력 유형 선택): Automatic Inputs(자동 입력)
- Prompt Template Type(프롬프트 템플릿 유형): Field Generation Template Capability(필드 생성 템플릿 기능)
Linda가 프롬프트 템플릿을 만들 때 Prompt Template Type(프롬프트 템플릿 유형)을 “Field Generation(필드 생성)”으로 선택했다는 걸 기억하세요. 그러니 여기서 프롬프트 템플릿 유형이 일치하도록 설정합니다.
- Object(개체): Case(사례)
Linda는 프롬프트에 케이스의 모든 설명이 포함되기를 원하므로 Get Records(레코드 가져오기) 요소를 추가하여 이를 검색하고 컬렉션에 저장합니다.
- Label(레이블):
Get Case Comments
(사례 설명 가져오기) - Object(개체): Case Comment(사례 설명)
- Field(필드): ParentId
- Operator(연산자): Equals(등호)
- Value(값): $Input, RelatedEntity, Id를 차례로 선택
- How Many Records to Store(저장할 레코드 개수): All records(모든 레코드)
Linda는 사례 요약에 설명이 없는 경우를 지정하기 위해 Get Records(레코드 가져오기) 요소 뒤에 Decision(결정) 요소를 추가합니다.
- Label(레이블):
Comments Found?
(설명이 있는가?) - 첫 결과 세부 사항:
- Label(레이블):
Yes
(예) - Resource(리소스): Case Comments from Get Case Comments(Get Case 설명의 사례 설명)
- Operator(연산자): Is Empty(비어 있음)
- Value(값): False(거짓)
- Label(레이블):
- Default Outcome Label(기본 결과 레이블):
No
(아니오)
이 요소는 플로를 현재 레코드에 설명이 존재할 때 플로의 경로와 설명이 존재하지 않을 때 플로의 경로로 나눕니다.
수집된 설명 데이터를 프롬프트에 전송해 요약하기 위해 Linda는 Add Prompt Instructions(프롬프트 지침 추가) 요소를 사용합니다. 하지만 해당 요소는 현재와 같은 형식의 설명 데이터를 수신할 수 없습니다. Get Case Comments(사례 설명 가져오기) 요소로 생성된 컬렉션은 관련 Case Comment(사례 설명) 레코드의 모든 데이터를 포함합니다. Linda는 설명만을 원합니다. 따라서 플로는 먼저 각 레코드에서 설명 텍스트를 나머지 텍스트와 분리해야 합니다. 추가로 Add Prompt Instructions(프롬프트 지침 추가) 요소는 한 번에 하나의 레코드씩 데이터를 수신해야 합니다.
이때는 루프가 안성맞춤입니다. 루프는 레코드를 하나씩 확인하고 처리하는 과정을 계속 반복하면서 컬렉션의 모든 레코드를 처리합니다. Linda는 Yes 경로에 루프 요소를 추가합니다.
- Label(레이블):
Loop Comments
(루프 설명) - Collection Variable(컬렉션 변수): Case Comments from Get Case Comments(Get Case 설명의 사례 설명)
- Direction(방향): First item to last item(첫 항목에서 마지막 항목까지)
이제 린다는 Add Prompt Instruction(프롬프트 지침 추가) 요소를 Yes 경로에 추가합니다. Add Prompt Instruction(프롬프트 지침 추가) 요소는 플로와 프롬프트를 직접 잇는 채널이라고 할 수 있습니다. 해당 요소의 프롬프트 지침에 포함된 모든 내용은 플로를 실행한 프롬프트에 직접 병합됩니다. 예를 들어 Add Prompt Instruction(프롬프트 지침 추가) 요소의 Prompt Instruction(프롬프트 지침) 필드에 수식 “{!test}”가 포함되어 있었다면, 프롬프트는 해당 수식의 결과를 프롬프트 템플릿에 추가합니다.
- Label(레이블):
Send Comments to Prompt
(프롬프트에 설명 전송하기) - Prompt Instructions(프롬프트 지침): “
Summarize the case's comments using
(다음을 사용해 사례의 설명을 요약)”을 입력.
-
Insert a resource(리소스 삽입) 필드를 클릭해 Current Item from Loop Loop_Comments(Loop_Comments 루프의 현재 항목)를 선택한 다음 CommentBody를 선택합니다.
이 리소스는 현재 사례 설명의 텍스트를 프롬프트 지침에 병합합니다.
No 경로에 Linda는 또 다른 Add Prompt Instructions(프롬프트 지침 추가) 요소를 추가합니다. 이 요소는 의견을 찾을 수 없다는 사실을 프롬프트 템플릿에 알립니다.
- Label(레이블):
No Comments for Prompt
(프롬프트에 대한 의견 없음) - Prompt Instructions(프롬프트 지침):
The case has no comments to summarize.
(사례에 요약할 설명이 없음)
Linda의 플로는 다음과 같은 형태가 되었습니다.
플로를 저장하고 활성화하면 프롬프트 빌더에서 개체가 Case(사례)인 모든 필드 생성 프롬프트 템플릿에 즉시 사용할 수 있습니다.
Linda는 Flow Builder에서 플로를 활성화한 후 프롬프트 템플릿 워크스페이스의 Resources(리소스) 목록으로 이동하고 이제 플로가 리소스 범주임을 파악합니다. Flows(플로)를 선택하면 새 템플릿 트리거 프롬프트 플로인 Get Case Summary(사례 요약 가져오기)가 표시됩니다.
Get Case Summary(사례 요약 가져오기)를 선택하자 새로 만든 플로가 프롬프트 템플릿에 {!$Flow:Get_Case_Summary.Prompt}
로 삽입됩니다.
당신은 고객과 회사 지원 담당자 간에 발생한 사례에 대하여 간단한 요약을 작성하는 지원 담당자입니다. """ Case Data(사례 데이터): {!$Flow:Get_Case_Summary.Prompt} """ |
---|
이제 Linda는 프롬프트 템플릿을 테스트하여 결과를 확인할 수 있습니다.
Flex 프롬프트 템플릿 작성하기
지금까지 영업 이메일 및 필드 생성 프롬프트 템플릿에 대해 살펴보았습니다. 하지만 특정 사용 사례가 이러한 템플릿과 맞지 않는 경우에도 프롬프트 빌더는 모든 시나리오에 유연성을 제공합니다. 다른 프롬프트 템플릿과 달리 Flex 템플릿 입력은 사전 정의되어 있지 않으며, 템플릿을 만드는 동안 선택해야 합니다. 프롬프트 빌더에는 Flex 템플릿에 최대 5개의 입력을 추가할 수 있는 옵션이 있습니다. 정의되면 리소스 선택기에 이러한 입력이 표시되고 프롬프트 템플릿은 병합 필드를 사용하여 입력을 참조할 수 있습니다.
Linda는 프롬프트 빌더를 사용하여 계정 이름, 자산 세부 정보 및 연락처 정보로 제품 설명을 만들고자 합니다. 필드 생성 프롬프트 템플릿은 수량(3개)과 유형(계정, 자산, 연락처) 측면에서 필요한 입력 선택 사항을 제공하지 않기 때문에, Linda는 Flex 프롬프트 템플릿을 만들기로 결정합니다. Linda는 설정을 완료하고 프롬프트 템플릿을 만듭니다.
- Prompt Template Type(프롬프트 템플릿 유형): Flex
- Prompt Template Name(프롬프트 템플릿 이름):
Product Details
(제품 세부 사항) - API Name(API 이름):
Product_Details
- Template Description(템플릿 설명):
Information about product
(제품 정보) - 계정 정보에 대한 리소스 정의:
- Name(이름):
Account Info
(계정 정보)
- API Name(API 이름):
Account_Info
- Object(개체): Account(계정)
- Name(이름):
- 자산 정보에 대한 리소스 정의:
- Name(이름):
Asset Info
(계정 정보)
- API Name(API 이름):
Asset_Info
- Object(개체): Asset(자산)
- Name(이름):
- 연락처 정보에 대한 리소스 정의:
- Name(이름):
Contact Info
(연락처 정보)
- API Name(API 이름):
Contact_Info
- Object(개체): Contact(연락처)
- Name(이름):
다음 정보를 사용해 세부적인 제품 설명을 작성합니다. Account Name(계정 이름)은 Product Info(제품 정보)는 Contact Info(연락처 정보)는 |
---|
잘 하셨습니다. 프롬프트 빌더가 일상적인 비즈니스 요구 사항을 수용할 수 있을 만큼 유연하다는 사실을 알게 되셨을 것입니다. 플로를 사용하든 Apex 클래스를 만들든, 프롬프트 빌더는 일상 업무에 소요되는 시간을 최소화하는 데 도움이 됩니다.