Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Generate the definition of a symbol using natural language
ResourceFunction["SummarizeDefinition"][symbol] explains the definition of symbol using natural language. | |
ResourceFunction["SummarizeDefinition"][symbol,fmt] formats the summary in a format specified by fmt. |
| None | do not apply any formatting to the summary string |
| Automatic | automatically format inline code delimited with "`" characters |
| "TextCell" | gives a Cell with automatic formatting applied that can be inserted into a notebook |
| "OpenAIKey" | SystemCredential["OPENAI_API_KEY"] | the API key used to authenticate requests with OpenAI |
| "Model" | "text-davinci-003" | the OpenAI language model used to generate summary text |
| "MaxTokens" | 2048 | maximum number of tokens to use |
Explain what a function does using natural language:
| In[1]:= |
| In[2]:= |
| Out[2]= | ![]() |
Please document my function for me:
| In[3]:= |
| Out[3]= | ![]() |
Summarize the definition of a ResourceFunction:
| In[4]:= |
| Out[4]= | ![]() |
Do not apply any formatting to the result:
| In[5]:= |
| Out[5]= | ![]() |
Format as a text cell:
| In[6]:= |
PartyParrot is a Wolfram Language function that retrieves data about various Party Parrots from an external source. It can be used with or without arguments. When called without arguments, it will return a list of all the Party Parrot names. When called with a single argument - the id of the Party Parrot - it will return the simple animation associated with that Party Parrot.
Summarize the definition of a PacletSymbol:
| In[7]:= |
| Out[7]= | ![]() |
Specify the OpenAI API key to authenticate requests with:
| In[8]:= |
| In[9]:= |
| Out[9]= | ![]() |
Save the API key persistently using SystemCredential:
| In[10]:= |
This key is now used by default:
| In[11]:= |
| Out[11]= | ![]() |
Specify an alternate language model:
| In[12]:= |
| Out[12]= | ![]() |
GPT-4 tends to yield more detailed responses, but is much slower than other models:
| In[13]:= |
| Out[13]= | ![]() |
| In[14]:= | ![]() |
| Out[14]= | ![]() |
Some models require a smaller number of tokens:
| In[15]:= |
| Out[15]= | ![]() |
Specify a smaller value:
| In[16]:= |
| Out[16]= | ![]() |
SummarizeDefinition has the attribute HoldFirst, so it can be used on symbols defined with OwnValues:
| In[17]:= |
| In[18]:= |
| Out[18]= | ![]() |
SummarizeDefinition is not deterministic:
| In[19]:= |
| In[20]:= |
| Out[20]= | ![]() |
Symbol names have a significant influence on the result. Here are two equivalent definitions that only differ in name (the definition is from the resource function StupidSort):
| In[21]:= |
SummarizeDefinition is far more likely to mention that StupidSort is inefficient:
| In[22]:= |
| Out[22]= | ![]() |
| In[23]:= |
| Out[23]= | ![]() |
Well-named symbols will often lead to higher-level explanations:
| In[24]:= |
| In[25]:= |
| Out[25]= | ![]() |
| In[26]:= |
| In[27]:= |
| Out[27]= | ![]() |
SummarizeDefinition includes dependent symbol definitions:
| In[28]:= |
| In[29]:= |
| Out[29]= |
SummarizeDefinition will not work without an OpenAI API key:
| In[30]:= |
| In[31]:= |
| Out[31]= |
| In[32]:= |
| In[33]:= |
| Out[33]= | ![]() |
System symbols are not supported:
| In[34]:= |
| Out[34]= |
Symbols cannot have the ReadProtected attribute:
| In[35]:= |
| In[36]:= |
| Out[36]= |
Some models can occasionally return an empty response:
| In[37]:= |
| Out[37]= |
Some are just not suitable for this particular task:
| In[38]:= | ![]() |
| Out[38]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License