Newer Version Available

This content describes an older version of this product. View Latest

Resolve a Prompt Template

Call a method to resolve a prompt template.

To resolve a prompt template, create an input object, build input maps, configure additional settings, call the service, and handle the resolution and response.

To create an input object, create an instance of ConnectApi.EinsteinPromptTemplateGenerationsInput.

To store input parameters for the prompt template, build input maps using Map<String, ConnectApi.WrappedValue>. Wrap the input maps in ConnectApi.WrappedValue and add them to a ConnectApi.WrappedValue map with identifying keys. You can also wrap a string input in ConnectApi.WrappedValue and add it to a map.

To configure additional settings, create an instance of ConnectApi.EinsteinLlmAdditionalConfigInput and assign it to the additionalConfig property of the input object.

To generate messages based on the prompt template and input parameters, call the generateMessagesForPromptTemplate method of the ConnectApi.EinsteinLLM class with the prompt template ID and the input object.

To access the prompt resolution, use generationsOutput.prompt and, to access the first generated response, use generationsOutput.generations[0].text.

Resolve a Flex Prompt Template with Apex and Flow Resources

1// Create input
2ConnectApi.EinsteinPromptTemplateGenerationsInput promptGenerationsInput = new ConnectApi.EinsteinPromptTemplateGenerationsInput();
3promptGenerationsInput.isPreview = false;
4                
5// Build input map
6Map<String,ConnectApi.WrappedValue> valueMap = new 
7Map<String,ConnectApi.WrappedValue>();
8
9Map<String, String> account1RecordIdMap = new Map<String, String>();
10account1RecordIdMap.put('id', '001xx000003H9cuAAC'); // Account ID
11                        
12Map<String, String> account2RecordIdMap = new Map<String, String>();
13account2RecordIdMap.put('id', '001xx000003H9ctAAC'); // Account ID
14                            
15Map<String, String> case1RecordIdMap = new Map<String, String>();
16case1RecordIdMap.put('id', '500xx000000cJ7rAAE'); // Case ID 
17                                
18// Add wrapped values to map
19ConnectApi.WrappedValue account1WrappedValue = new ConnectApi.WrappedValue();
20account1WrappedValue.value = account1RecordIdMap;
21                                
22ConnectApi.WrappedValue account2WrappedValue = new ConnectApi.WrappedValue();
23account2WrappedValue.value = account2RecordIdMap;
24                                
25ConnectApi.WrappedValue case1WrappedValue = new ConnectApi.WrappedValue();
26case1WrappedValue.value = case1RecordIdMap;
27                                
28valueMap.put('Input:Account_1', account1WrappedValue);
29valueMap.put('Input:Account_2', account2WrappedValue);
30valueMap.put('Input:Case_1', case1WrappedValue);
31                                
32// Add string input
33ConnectApi.WrappedValue strWrappedValue = new ConnectApi.WrappedValue();
34strWrappedValue.value = 'My string input';
35                                
36valueMap.put('Input:My_Free_Text1', strWrappedValue); 
37                                
38promptGenerationsInput.inputParams = valueMap;
39                                
40// Set additional configuration values
41promptGenerationsInput.additionalConfig = new ConnectApi.EinsteinLlmAdditionalConfigInput();
42promptGenerationsInput.additionalConfig.applicationName = 'PromptTemplateGenerationsInvocable';
43                                
44// Call the service using the prompt template ID
45ConnectApi.EinsteinPromptTemplateGenerationsRepresentation generationsOutput = 
46ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate('0hfxx0000000KQ9AAM', promptGenerationsInput); 
47                                
48// Consume resolution
49System.debug('Prompt resolution: ' + generationsOutput.prompt);
50                                
51// Consume response
52System.debug('Prompt response: ' + generationsOutput.generations[0].text);

Resolve a Sales Email Prompt Template

1// Create input
2ConnectApi.EinsteinPromptTemplateGenerationsInput promptGenerationsInput = new ConnectApi.EinsteinPromptTemplateGenerationsInput();
3promptGenerationsInput.isPreview = false;
4
5// Build input map
6Map<String,ConnectApi.WrappedValue> valueMap = new Map<String,ConnectApi.WrappedValue>();
7
8Map<String, String> recipientEntityRecordIdMap = new Map<String, String>();
9recipientEntityRecordIdMap.put('id', '00Qxx000002ToPvEAK');
10
11Map<String, String> senderEntityRecordIdMap = new Map<String, String>();
12senderEntityRecordIdMap.put('id', '005xx000001XiWLAA0');
13
14ConnectApi.WrappedValue recipientEntityWrappedValue = new ConnectApi.WrappedValue();
15recipientEntityWrappedValue.value = recipientEntityRecordIdMap;
16
17ConnectApi.WrappedValue senderEntityWrappedValue = new ConnectApi.WrappedValue();
18senderEntityWrappedValue.value = senderEntityRecordIdMap;
19
20valueMap.put('Input:Account', recipientEntityWrappedValue);
21valueMap.put('Input:Recipient', recipientEntityWrappedValue);
22valueMap.put('Input:Sender', senderEntityWrappedValue);
23
24promptGenerationsInput.inputParams = valueMap;
25
26// Set additional configuration values
27promptGenerationsInput.additionalConfig = new ConnectApi.EinsteinLlmAdditionalConfigInput();
28promptGenerationsInput.additionalConfig.applicationName = 'PromptTemplateGenerationsInvocable';
29
30// Call the service
31ConnectApi.EinsteinPromptTemplateGenerationsRepresentation generationsOutput = 
32ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate('0hfxx0000000KTNAA2', promptGenerationsInput);
33
34// Consume response
35System.debug('Prompt Testing: ' + generationsOutput.prompt);

Resolve a Field Generation Prompt Template

1// Create input
2ConnectApi.EinsteinPromptTemplateGenerationsInput promptGenerationsInput = new ConnectApi.EinsteinPromptTemplateGenerationsInput();
3promptGenerationsInput.isPreview = false;
4
5// Build input map
6Map<String,ConnectApi.WrappedValue> valueMap = new Map<String,ConnectApi.WrappedValue>();
7
8Map<String, String> relatedEntityRecordIdMap = new Map<String, String>();
9relatedEntityRecordIdMap.put('id', '001xx000003H9cuAAC');
10
11ConnectApi.WrappedValue relatedEntityWrappedValue = new ConnectApi.WrappedValue();
12relatedEntityWrappedValue.value = relatedEntityRecordIdMap;
13
14valueMap.put('Input:Account', relatedEntityWrappedValue);
15
16promptGenerationsInput.inputParams = valueMap;
17
18// Set additional configuration values
19promptGenerationsInput.additionalConfig = new ConnectApi.EinsteinLlmAdditionalConfigInput();
20promptGenerationsInput.additionalConfig.applicationName = 'PromptTemplateGenerationsInvocable';
21
22// Call the service
23ConnectApi.EinsteinPromptTemplateGenerationsRepresentation generationsOutput = 
24ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate('0hfxx0000000KRlAAM', promptGenerationsInput);
25
26// Consume response
27System.debug('Prompt Testing: ' + generationsOutput.prompt);

Resolve a Summary Prompt Template

1// Create input
2ConnectApi.EinsteinPromptTemplateGenerationsInput promptGenerationsInput = new ConnectApi.EinsteinPromptTemplateGenerationsInput();
3promptGenerationsInput.isPreview = false;
4
5// Build input map
6Map<String,ConnectApi.WrappedValue> valueMap = new Map<String,ConnectApi.WrappedValue>();
7
8Map<String, String> recipientEntityRecordIdMap = new Map<String, String>();
9recipientEntityRecordIdMap.put('id', '00Qxx000002ToPvEAK');
10
11ConnectApi.WrappedValue recipientEntityWrappedValue = new ConnectApi.WrappedValue();
12recipientEntityWrappedValue.value = recipientEntityRecordIdMap;
13
14valueMap.put('Input:Account', recipientEntityWrappedValue);
15
16promptGenerationsInput.inputParams = valueMap;
17
18// Set additional configuration values
19promptGenerationsInput.additionalConfig = new ConnectApi.EinsteinLlmAdditionalConfigInput();
20promptGenerationsInput.additionalConfig.applicationName = 'PromptTemplateGenerationsInvocable';
21
22// Call the service
23ConnectApi.EinsteinPromptTemplateGenerationsRepresentation generationsOutput = 
24ConnectApi.EinsteinLLM.generateMessagesForPromptTemplate('0hfxx0000000KUzAAM', promptGenerationsInput);
25
26// Consume response
27System.debug('Prompt Testing: ' + generationsOutput.prompt);