LLMSynthesize
LLMSynthesize[prompt]
generates text according to the input prompt.
LLMSynthesize[{prompt1,…}]
combines multiple prompti together.
LLMSynthesize[…,prop]
returns the specified property of the generated text.
Details and Options
- LLMSynthesize generates text according to the instruction in the prompt using a large language model (LLM). It can create content, complete sentences, extract information and more.
- LLMSynthesize requires external service authentication, billing and internet connectivity.
- Possible values for prompt can be:
-
"string" static text LLMPrompt["name"] a repository prompt StringTemplate[…] templated text TemplateObject[…] template for creating a text {prompt1,…} a list of prompts - Template objects are automatically converted to strings via TemplateObject[…][].
- Supported values for prop include:
-
"FullText" full text of prompts and completion "FullTextAnnotations" association annotating prompts and completion "CompletionText" completion text "CompletionToolsText" completion text including tool interactions "PromptText" prompt text "ToolRequests" association of LLMToolRequest objects "ToolResponses" association of LLMToolResponse objects {prop1,prop2,…} multiple properties All all properties - "FullTextAnnotations", "ToolRequests" and "ToolResponses" give associations with elements in the format {start,end}val, where val refers to a object and start and end refer to the span of characters where val is specified in "FullText".
- The following options can be specified:
-
Authentication Automatic explicit user ID and API key LLMEvaluator $LLMEvaluator LLM configuration to use ProgressReporting $ProgressReporting how to report the progress of the computation - LLMEvaluator can be set to an LLMConfiguration object or an association with any of the following keys:
-
"MaxTokens" maximum amount of tokens to generate "Model" base model "PromptDelimiter" string to insert between prompts "Prompts" initial prompts "StopTokens" tokens on which to stop generation "Temperature" sampling temperature "ToolMethod" method to use for tool calling "Tools" list of LLMTool objects to make available "TopProbabilities" sampling classes cutoff "TotalProbabilityCutoff" sampling probability cutoff (nucleus sampling) - Valid forms of "Model" include:
-
name named model {service,name} named model from service <"Service"service,"Name"name,"Task"task > fully specified model - The generated text is sampled from a distribution. Details of the sampling can be specified using the following properties of the LLMEvaluator:
-
"Temperature"t Automatic sample using a positive temperature t "TopProbabilities"k Automatic sample only among the k highest-probability classes "TotalProbabilityCutoff"p Automatic sample among the most probable choices with an accumulated probability of at least p (nucleus sampling) - The Automatic value of these parameters uses the default for the specified "Model".
- Multiple prompts are separated by the "PromptDelimiter" property of the LLMEvaluator.
- Possible values for Authentication are:
-
Automatic chose the authentication scheme automatically Environment check for a key in the environment variables SystemCredential check for a key in the system keychain ServiceObject[…] inherit the authentication from a service object assoc provide explicit key and user ID - With AuthenticationAutomatic, the function checks the variable "OPENAI_API_KEY" in Environment and SystemCredential, otherwise, it uses ServiceConnect["OpenAI"].
- When using Authenticationassoc, assoc can contain the following keys:
-
"ID" user identity "APIKey" API key used to authenticate - LLMSynthesize uses machine learning. Its methods, training sets and biases included therein may change and yield varied results in different versions of the Wolfram Language.
Examples
open allclose allBasic Examples (3)
Options (8)
Authentication (4)
LLMEvaluator (4)
By default, the text generation continues until a termination token is generated:
Limit the amount of generated samples (tokens):
Specify that the sampling should be performed at zero temperature:
Specify a high temperature to get more variation in the generation:
Specify the maximum cumulative probability before cutting off the distribution:
Specify the service and the model to use for the generation:
Applications (1)
Text
Wolfram Research (2023), LLMSynthesize, Wolfram Language function, https://reference.wolfram.com/language/ref/LLMSynthesize.html.
CMS
Wolfram Language. 2023. "LLMSynthesize." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/LLMSynthesize.html.
APA
Wolfram Language. (2023). LLMSynthesize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LLMSynthesize.html