Loading
Agentforce 및 Einstein 생성형 AI
목차
필터 선택

          결과 없음
          결과 없음
          몇 가지 검색 팁

          키워드의 맞춤법을 확인하십시오.
          더 일반적인 검색 용어를 사용하십시오.
          필터 수를 줄여 검색 범위를 확장하십시오.

          전체 Salesforce 도움말 검색
          필드 생성 프롬프트 템플릿에 Apex 병합 필드 추가

          필드 생성 프롬프트 템플릿에 Apex 병합 필드 추가

          Apex 사용하는 예제 필드 생성 프롬프트 템플릿을 만듭니다.

          필수 Edition

          지원 제품: Lightning Experience
          지원 제품: Einstein for Platform 또는 Einstein 또는 세일즈용 Agentforce 또는 서비스 추가 기능 또는 Agentforce Foundations를 사용하는 Enterprise, Performance무제한 Edition
          필요한 사용자 권한
          프롬프트 빌더 프롬프트 템플릿 만들기 및 관리:

          프롬프트 템플릿 관리자 권한 집합

          • 프롬프트 템플릿 관리
          • 프롬프트 템플릿 실행

          OR

          응용 프로그램 사용자 정의 권한 집합

          회사의 세일즈 팀에 고객이 전화를 걸기 전에 지정된 고객에 대한 최신 고객 사례 요약을 제공하려고 한다고 가정해 보겠습니다. 플로 섹션에서 동일한 사용 사례를 사용했습니다.

          이번에는 요약할 LLM의 사례 데이터를 가져오는 Apex 클래스를 통합하는 필드 생성 프롬프트 템플릿을 만들 수 있습니다.

          다음은 프롬프트 템플릿에서 자원으로 액세스하는 Apex 클래스입니다.

          public class OpenCasesPrompt {
              @InvocableMethod(label='Open Cases'
                  description='Find Cases for an Account'
                  CapabilityType='PromptTemplateType://einstein_gpt__fieldCompletion')
              public static List<Response> getCasesPrompt(List<Request> requests) {
                  // Validate the expected number of requests as an input
                  if (requests.size() != 1)
                    throw new ListException('The requests list must contain one entry only');
                  Account a = requests[0].RelatedEntity;
                  ID searchAcctId = a.Id;
                  List<Case> cases =
                      [SELECT Id, Subject, Description
                       FROM Case
                       WHERE AccountId = :searchAcctId AND Status != 'Closed'
                       WITH USER_MODE];
                  string responseData = null;
                  if(cases.isEmpty()) {
                      responseData = 'There are no open cases.';
                  } else {
                      for(Case c : cases) {  
                          responseData =
                             (responseData != null) ? responseData + '\n' : '';           
                          responseData += String.format('Case details: {0}, {1}.',
                              new List<Object>{c.Subject, c.Description});
                      }
                  }
                 
                  List<Response> responses = new List<Response>();
                  Response res = new Response();
                  res.Prompt = responseData;
                  responses.add(res);
                  return responses;
              }
              
              public class Request {
                  @InvocableVariable(required=true)
                  public Account RelatedEntity;
              }
              
              public class Response {
                  @InvocableVariable
                  public String Prompt;
              }
          }

          Apex 클래스에 대한 요구 사항은 Apex 병합 필드에 설명되어 있습니다.

          테스트 범위가 중요하므로 테스트 클래스를 추가하십시오. 테스트 클래스는 프롬프트 빌더 전송된 데이터를 시뮬레이션합니다. 두 가지 테스트 사례가 제공되며, 하나는 이벤트가 발견되는 경우 및 다른 하나는 이벤트가 없는 경우입니다.

          @IsTest
          public class OpenCasesPrompt_Test {
          
              @IsTest
              public static void findMatchingCasesForAccount() {        
                  Account a = new Account(Name='Test Account');
                  insert a;
                  Case c1 = new Case(Subject='Test Case', Description='Important Case', 
                      Status='New', AccountId=a.id);
                  Case c2 = new Case(Subject='Test Case 2',
                      Description='Case Description', Status='In-progress', 
                      AccountId=a.id);
                  Case c3 = new Case(Subject='Test Case Closed',
                      Description='Closed Case', Status='Closed', AccountId=a.id);
                  insert new List<Case>{c1, c2, c3};
          
          
                  List<OpenCasesPrompt.Request> requestsInput
                      = new List<OpenCasesPrompt.Request>();
                  OpenCasesPrompt.Request request = new OpenCasesPrompt.Request();
                  request.RelatedEntity = a;
                  requestsInput.add(request);
                  
                  Test.startTest();
                  List<OpenCasesPrompt.Response> responses = 
                      OpenCasesPrompt.getCasesPrompt(requestsInput);
                  Test.stopTest();
                 
                  Assert.areEqual(1, responses.size());
                  OpenCasesPrompt.Response response = responses[0];
          
                  Assert.areEqual('Case details: Test Case, Important Case.\n' +
                                  'Case details: Test Case 2, Case Description.', 
                                  response.Prompt);
              }
          
              @IsTest
              public static void noCasesForAccountResponse() {
                  List<OpenCasesPrompt.Request> requestsInput
                      = new List<OpenCasesPrompt.Request>();
                  OpenCasesPrompt.Request request = new OpenCasesPrompt.Request();
                  request.RelatedEntity = new Account();
                  requestsInput.add(request);
                  
                  List<OpenCasesPrompt.Response> responses = 
                      OpenCasesPrompt.getCasesPrompt(requestsInput);
                  Assert.areEqual(1, responses.size());
                 
                  OpenCasesPrompt.Response response = responses[0];
                  Assert.areEqual('There are no open cases.', response.Prompt);
              }
          }
          

          이제 Apex 클래스가 준비되었으므로 프롬프트 빌더 호출해 보겠습니다. 이를 수행하려면 먼저 계정 개체에서 진행 중인 사례 요약이라는 사용자 정의 필드를 만들어야 합니다. 사용자 정의 필드의 데이터 유형은 긴 텍스트 영역이어야 합니다. 사용자 정의 필드 만들기를 참조하십시오. 프롬프트 빌더 새 사용자 정의 필드를 볼 수 있도록 로그아웃하고 다시 로그인합니다.

          프롬프트 빌더 새 프롬프트 템플릿을 만듭니다.

          1. 프롬프트 템플릿 유형으로 필드 생성을 선택합니다.
          2. 프롬프트 템플릿 이름에 Apex를 입력합니다. 진행 중인 사례 요약
          3. 개체로 계정을 선택합니다.
          4. 개체 필드로 사례 요약 열기를 선택합니다.
          5. 설명 필드는 비워 둡니다.
          6. 만들기를 클릭하면 프롬프트 템플릿 작업 영역으로 리디렉션됩니다.
          7. 예제 프롬프트 템플릿 라이브러리에서 필드 생성 프롬프트 템플릿을 찾습니다. 계정에 대해 진행 중인 사례를 요약합니다. 이 템플릿을 복사하여 프롬프트 템플릿 작업 영역에 붙여 넣습니다.
          8. 프롬프트 빌더에서 이 템플릿을 실행하려면 먼저 프롬프트 섹션에서 자원 삽입을 클릭합니다. 이 옵션을 처음 클릭하면 검색 필드가 나타납니다.
            1. <account.Id__Merge_Field> Placeholder를 삭제합니다.
            2. 자원 검색 막대를 클릭하고 Account | 계정 ID 를 선택합니다.
            3. <Get_Open_Cases_For_Account__Prompt__Flow> 자리 표시자를 삭제합니다.
            4. 자원 검색 막대를 클릭하고 Apex를 선택합니다.
            5. 템플릿에 OpenCasesPrompt Apex 클래스를 추가하려면 Open Cases를 선택합니다. Open Cases는 OpenCasesPrompt Apex 클래스의 @InvocableMethod 주석에 설정한 레이블 특성입니다.
           
          로드 중
          Salesforce Help | Article