AntonAntonov/OpenAIMode

(1.1.1) current version: 1.1.3 »

Notebook style with cells for execution of OpenAI commands

Contributed by: Anton Antonov

Notebook style with cells for execution of OpenAI commands based on the paclet OpenAILink.

Installation Instructions

To install this paclet in your Wolfram Language environment, evaluate this code:
PacletInstall["AntonAntonov/OpenAIMode"]


To load the code after installation, evaluate this code:
Needs["AntonAntonov`OpenAIMode`"]

Details

It assumed that the user of this paclet has successfully completed the setup instructions of the paclet OpenAILink.
The notebook style of this paclet is based on the paclet OpenAILink.
Two types of cells are provided: one for text completion, the other for image generation.
The function OpenAIMode can be used to enable and disable the notebook style.
The shortcuts "|" ("Shift-\") or "!" ("Shift+1") can be used to create an OpeanAI text completion cell.
Using "Tab" the beginning of the text completion cell will convert the cell into an OpenAI chat completion cell.
Using "Tab" the beginning of the chat completion cell will convert the cell into an OpenAI image generation cell.
The text completion cell has a faint green background; the chat completion cell has a faint yellow backgroind; the image generation cell has a faint purple background.

Examples

Basic Examples (1) 

Enable the current notebook to have OpenAI interaction cells:

In[1]:=
InterpretationBox[FrameBox[TagBox[TooltipBox[PaneBox[GridBox[List[List[GraphicsBox[List[Thickness[0.0025`], List[FaceForm[List[RGBColor[0.9607843137254902`, 0.5058823529411764`, 0.19607843137254902`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]], List[List[0, 2, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3], List[0, 1, 0], List[1, 3, 3]]], List[List[List[205.`, 22.863691329956055`], List[205.`, 212.31669425964355`], List[246.01799774169922`, 235.99870109558105`], List[369.0710144042969`, 307.0436840057373`], List[369.0710144042969`, 117.59068870544434`], List[205.`, 22.863691329956055`]], List[List[30.928985595703125`, 307.0436840057373`], List[153.98200225830078`, 235.99870109558105`], List[195.`, 212.31669425964355`], List[195.`, 22.863691329956055`], List[30.928985595703125`, 117.59068870544434`], List[30.928985595703125`, 307.0436840057373`]], List[List[200.`, 410.42970085144043`], List[364.0710144042969`, 315.7036876678467`], List[241.01799774169922`, 244.65868949890137`], List[200.`, 220.97669792175293`], List[158.98200225830078`, 244.65868949890137`], List[35.928985595703125`, 315.7036876678467`], List[200.`, 410.42970085144043`]], List[List[376.5710144042969`, 320.03370475769043`], List[202.5`, 420.53370475769043`], List[200.95300006866455`, 421.42667961120605`], List[199.04699993133545`, 421.42667961120605`], List[197.5`, 420.53370475769043`], List[23.428985595703125`, 320.03370475769043`], List[21.882003784179688`, 319.1406993865967`], List[20.928985595703125`, 317.4896984100342`], List[20.928985595703125`, 315.7036876678467`], List[20.928985595703125`, 114.70369529724121`], List[20.928985595703125`, 112.91769218444824`], List[21.882003784179688`, 111.26669120788574`], List[23.428985595703125`, 110.37369346618652`], List[197.5`, 9.87369155883789`], List[198.27300024032593`, 9.426692008972168`], List[199.13700008392334`, 9.203690528869629`], List[200.`, 9.203690528869629`], List[200.86299991607666`, 9.203690528869629`], List[201.72699999809265`, 9.426692008972168`], List[202.5`, 9.87369155883789`], List[376.5710144042969`, 110.37369346618652`], List[378.1179962158203`, 111.26669120788574`], List[379.0710144042969`, 112.91769218444824`], List[379.0710144042969`, 114.70369529724121`], List[379.0710144042969`, 315.7036876678467`], List[379.0710144042969`, 317.4896984100342`], List[378.1179962158203`, 319.1406993865967`], List[376.5710144042969`, 320.03370475769043`]]]]], List[FaceForm[List[RGBColor[0.5529411764705883`, 0.6745098039215687`, 0.8117647058823529`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[44.92900085449219`, 282.59088134765625`], List[181.00001525878906`, 204.0298843383789`], List[181.00001525878906`, 46.90887451171875`], List[44.92900085449219`, 125.46986389160156`], List[44.92900085449219`, 282.59088134765625`]]]]], List[FaceForm[List[RGBColor[0.6627450980392157`, 0.803921568627451`, 0.5686274509803921`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[355.0710144042969`, 282.59088134765625`], List[355.0710144042969`, 125.46986389160156`], List[219.`, 46.90887451171875`], List[219.`, 204.0298843383789`], List[355.0710144042969`, 282.59088134765625`]]]]], List[FaceForm[List[RGBColor[0.6901960784313725`, 0.5882352941176471`, 0.8117647058823529`], Opacity[1.`]]], FilledCurveBox[List[List[List[0, 2, 0], List[0, 1, 0], List[0, 1, 0], List[0, 1, 0]]], List[List[List[200.`, 394.0606994628906`], List[336.0710144042969`, 315.4997024536133`], List[200.`, 236.93968200683594`], List[63.928985595703125`, 315.4997024536133`], List[200.`, 394.0606994628906`]]]]]], List[Rule[BaselinePosition, Scaled[0.15`]], Rule[ImageSize, 10], Rule[ImageSize, 15]]], StyleBox[RowBox[List["OpenAIMode", " "]], Rule[ShowAutoStyles, False], Rule[ShowStringCharacters, False], Rule[FontSize, Times[0.9`, Inherited]], Rule[FontColor, GrayLevel[0.1`]]]]], Rule[GridBoxSpacings, List[Rule["Columns", List[List[0.25`]]]]]], Rule[Alignment, List[Left, Baseline]], Rule[BaselinePosition, Baseline], Rule[FrameMargins, List[List[3, 0], List[0, 0]]], Rule[BaseStyle, List[Rule[LineSpacing, List[0, 0]], Rule[LineBreakWithin, False]]]], RowBox[List["PacletSymbol", "[", RowBox[List["\"AntonAntonov/OpenAIMode\"", ",", "\"AntonAntonov`OpenAIMode`OpenAIMode\""]], "]"]], Rule[TooltipStyle, List[Rule[ShowAutoStyles, True], Rule[ShowStringCharacters, True]]]], Function[Annotation[Slot[1], Style[Defer[PacletSymbol["AntonAntonov/OpenAIMode", "AntonAntonov`OpenAIMode`OpenAIMode"]], Rule[ShowStringCharacters, True]], "Tooltip"]]], Rule[Background, RGBColor[0.968`, 0.976`, 0.984`]], Rule[BaselinePosition, Baseline], Rule[DefaultBaseStyle, List[]], Rule[FrameMargins, List[List[0, 0], List[1, 1]]], Rule[FrameStyle, RGBColor[0.831`, 0.847`, 0.85`]], Rule[RoundingRadius, 4]], PacletSymbol["AntonAntonov/OpenAIMode", "AntonAntonov`OpenAIMode`OpenAIMode"], Rule[Selectable, False], Rule[SelectWithContents, True], Rule[BoxID, "PacletSymbolBox"]][]

Another OpenAIMode[] invocation converts the notebook into the default notebook style. More explicitly the styling can be specified with OpenAIMode[True] or OpenAIMode[False].

OpenAIMode can also take notebook objects as arguments.

Scope (6) 

The text completion cell uses the evaluation function OpenAIInputExecuteToText. which takes all options of ChristopherWolfram`OpenAILink`OpenAITextComplete. Desired option values can be set using SetOptions:

The text completion cell uses the evaluation function OpenAIInputExecuteToChat. which takes all options of ChristopherWolfram`OpenAILink`OpenAIChatComplete. Desired option values can be set using SetOptions:

The text completion cell uses the evaluation function OpenAIInputExecuteToImage. which takes all options of ChristopherWolfram`OpenAILink`OpenAICreateImage. Desired option values can be set using SetOptions:


The function OpenAIMode takes the options "TokenLimit" and ImageSize the values of which are used to do default options settings for OpenAIInputExecuteToText and OpenAIInputExecuteToImage respectively. For example, the command:

is equivalent to the sequence of commands:


The functions OpenAIInputExecuteToText, OpenAIInputExecuteToChat, and OpenAIInputExecuteToImage are simple wrappers of the function OpenAIInputExecute.


The paclet provides the functions CellPrintWL and CellPrintAndRunWL that allow generated code to be printed and executed. Again, SetOptions used to change the epilog of the function OpenAIInputExecute:


Here we get the notebook style provided by this paclet:


Here is a screenshot of a notebook with the notebook style OpenAIMode applied:

Publisher

Anton Antonov

Compatibility

Wolfram Language Version 13.2

Version History

  • 1.1.3 – 30 June 2023
  • 1.1.2 – 27 May 2023
  • 1.1.1 – 13 April 2023
  • 1.1.0 – 13 April 2023
  • 1.0.9 – 10 April 2023
  • 1.0.8 – 09 April 2023
  • 1.0.6 – 08 April 2023
  • 1.0.5 – 08 April 2023
  • 1.0.4 – 04 April 2023
  • 1.0.3 – 03 April 2023
  • 1.0.2 – 02 April 2023
  • 1.0.1 – 02 April 2023
  • 1.0.0 – 02 April 2023

License Information

MIT License

Paclet Source

Source Metadata

See Also