├── .gitignore
├── Notes
├── .gitattributes
├── .gitignore
├── .DS_Store
├── exampleScreenshots
│ ├── Databases.png
│ ├── WebAccess.png
│ ├── FileBrowser.png
│ ├── KernelAccess.png
│ ├── SendMessage.png
│ ├── FileOrganizer.png
│ ├── DocumentationSearch.png
│ ├── ProgrammingAssistant.png
│ └── ProgrammingAssistantFull.png
└── symbolEmbeddings.mx
├── ChatGPTPluginKit
├── Assets
│ └── default_icon.png
├── Documentation
│ └── English
│ │ ├── ReferencePages
│ │ ├── .DS_Store
│ │ └── Symbols
│ │ │ ├── .DS_Store
│ │ │ ├── ChatGPTPluginDeployment.nb
│ │ │ ├── ChatGPTPluginCloudDeployment.nb
│ │ │ ├── ChatGPTPluginEndpoint.nb
│ │ │ └── ChatGPTPluginCloudDeploy.nb
│ │ └── Guides
│ │ └── ChatGPTPluginKit.nb
├── Kernel
│ ├── ChatGPTPluginKit.wl
│ ├── Export.wl
│ ├── CopyButton.wl
│ ├── Deploy.wl
│ ├── Plugin.wl
│ └── Endpoint.wl
├── LICENSE
└── PacletInfo.wl
├── README.md
└── EXAMPLES.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *.paclet
2 | build
3 | .DS_Store
--------------------------------------------------------------------------------
/Notes/.gitattributes:
--------------------------------------------------------------------------------
1 | symbolEmbeddings.mx filter=lfs diff=lfs merge=lfs -text
2 |
--------------------------------------------------------------------------------
/Notes/.gitignore:
--------------------------------------------------------------------------------
1 | exampleDirectory
2 | exampleDirectoryBackup
3 | ChatGPTPluginKitCopy
--------------------------------------------------------------------------------
/Notes/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/.DS_Store
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/Databases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/Databases.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/WebAccess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/WebAccess.png
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Assets/default_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/ChatGPTPluginKit/Assets/default_icon.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/FileBrowser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/FileBrowser.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/KernelAccess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/KernelAccess.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/SendMessage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/SendMessage.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/FileOrganizer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/FileOrganizer.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/DocumentationSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/DocumentationSearch.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/ProgrammingAssistant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/ProgrammingAssistant.png
--------------------------------------------------------------------------------
/Notes/exampleScreenshots/ProgrammingAssistantFull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/Notes/exampleScreenshots/ProgrammingAssistantFull.png
--------------------------------------------------------------------------------
/Notes/symbolEmbeddings.mx:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:46790ad63b62082863366cc71c11c726bec60f7f807ea9e25772e2295137b84c
3 | size 120922323
4 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/ChatGPTPluginKit/Documentation/English/ReferencePages/.DS_Store
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chriswolfram/ChatGPTPluginKit/HEAD/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/.DS_Store
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/ChatGPTPluginKit.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`"];
2 |
3 | ChatGPTPlugin
4 | ChatGPTPluginEndpoint
5 |
6 | ChatGPTPluginDeploy
7 | ChatGPTPluginDeployment
8 |
9 | ChatGPTPluginCloudDeploy
10 | ChatGPTPluginCloudDeployment
11 |
12 | ChatGPTPluginExport
13 |
14 | Begin["`Private`"];
15 |
16 | Needs["Wolfram`ChatGPTPluginKit`Plugin`"]
17 | Needs["Wolfram`ChatGPTPluginKit`Endpoint`"]
18 | Needs["Wolfram`ChatGPTPluginKit`Deploy`"]
19 | Needs["Wolfram`ChatGPTPluginKit`Export`"]
20 |
21 | End[];
22 | EndPackage[];
23 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Christopher Wolfram
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/ChatGPTPluginKit/PacletInfo.wl:
--------------------------------------------------------------------------------
1 | (* ::Package:: *)
2 |
3 | PacletObject[
4 | <|
5 | "Name" -> "Wolfram/ChatGPTPluginKit",
6 | "Description" -> "Build plugins for ChatGPT in just a few lines",
7 | "Creator" -> "Christopher Wolfram",
8 | "License" -> "MIT",
9 | "PublisherID" -> "Wolfram",
10 | "Version" -> "1.3.3",
11 | "WolframVersion" -> "13.1+",
12 | "Extensions" -> {
13 | {
14 | "Kernel",
15 | "Root" -> "Kernel",
16 | "Context" -> {"Wolfram`ChatGPTPluginKit`"},
17 | "Symbols" -> {
18 | "Wolfram`ChatGPTPluginKit`ChatGPTPlugin",
19 | "Wolfram`ChatGPTPluginKit`ChatGPTPluginDeploy",
20 | "Wolfram`ChatGPTPluginKit`ChatGPTPluginDeployment",
21 | "Wolfram`ChatGPTPluginKit`ChatGPTPluginCloudDeploy",
22 | "Wolfram`ChatGPTPluginKit`ChatGPTPluginCloudDeployment",
23 | "Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint"
24 | }
25 | },
26 | {
27 | "Documentation",
28 | "Root" -> "Documentation",
29 | "Language" -> "English"
30 | },
31 | {
32 | "Asset",
33 | "Root" -> "Assets",
34 | "Assets" -> {
35 | {"DefaultIcon", "default_icon.png"}
36 | }
37 | }
38 | }
39 | |>
40 | ]
41 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🤖🔌 ChatGPTPluginKit
2 |
3 | Deploy powerful plugins to ChatGPT in only a few lines of code.
4 |
5 | ## ⚙️ Installation
6 |
7 | ChatGPTPluginKit is provided through the Wolfram Paclet Repository, and can be found [here](https://resources.wolframcloud.com/PacletRepository/resources/Wolfram/ChatGPTPluginKit/).
8 |
9 | To install, just run:
10 |
11 | ```
12 | PacletInstall["Wolfram/ChatGPTPluginKit"]
13 | ```
14 |
15 | and then use `Needs` to load it in any subsequent session:
16 |
17 | ```
18 | Needs["Wolfram`ChatGPTPluginKit`"]
19 | ```
20 |
21 | ## 📚 Examples
22 |
23 | ### 🌆 Minimal example
24 |
25 | Deploy a plugin that lets ChatGPT look up the populations of cities, using data and entity resolution from Wolfram|Alpha:
26 |
27 | ```wl
28 | ChatGPTPluginDeploy[<|
29 | "Name" -> "CityPopulationFinder",
30 | "Endpoints" -> <|"getCityPopulation" -> APIFunction["city"->"City", #city["Population"]&]|>
31 | |>]
32 | ```
33 |
34 | Use it inside ChatGPT:
35 |
36 |
37 |
38 |
43 |
44 | ### 🌟 Example showcase
45 |
46 | See [here](EXAMPLES.md) for more examples.
47 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/Export.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`Export`"];
2 |
3 | Begin["`Private`"];
4 |
5 | Needs["Wolfram`ChatGPTPluginKit`"]
6 |
7 |
8 | Options[ChatGPTPluginExport] = {IncludeDefinitions -> True};
9 |
10 | ChatGPTPluginExport[args___] :=
11 | Enclose[
12 | iExportChatGPTPlugin@@Confirm[ArgumentsOptions[ChatGPTPluginExport[args], 1]],
13 | "InheritedFailure"
14 | ]
15 |
16 | iChatGPTPluginExport[{plugin_ChatGPTPlugin}, opts_] :=
17 | pluginString[plugin, TrueQ@OptionValue[ChatGPTPluginExport, opts, IncludeDefinitions]]
18 |
19 | iChatGPTPluginExport[{plugin_}, opts_] :=
20 | Failure["InvalidPlugin", <|
21 | "MessageTemplate" -> "Expected a ChatGPTPlugin object but found `1` instead.",
22 | "MessageParamters" -> {plugin},
23 | "PluginSpecification" -> plugin
24 | |>]
25 |
26 |
27 | pluginString[plugin_, True] :=
28 | With[{dispatcher = plugin["URLDispatcherTemplate"][<|"BaseURL" -> "http://localhost:18000"|>]},
29 | With[{defs = Language`ExtendedFullDefinition[dispatcher]},
30 | ToString[Unevaluated[Language`ExtendedFullDefinition[] = defs; dispatcher], InputForm]
31 | ]]
32 |
33 | pluginString[plugin_, False] :=
34 | With[{dispatcher = plugin["URLDispatcherTemplate"][<|"BaseURL" -> "http://localhost:18000"|>]},
35 | ToString[Unevaluated[dispatcher], InputForm]
36 | ]
37 |
38 |
39 | End[];
40 | EndPackage[];
41 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/CopyButton.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`CopyButton`"];
2 |
3 | CopyButton
4 |
5 | Begin["`Private`"];
6 |
7 | Needs["Wolfram`ChatGPTPluginKit`"]
8 |
9 |
10 | $copyIcon[color_] = Graphics[
11 | GeometricTransformation[{
12 | color,
13 | Thickness[0.05],
14 | CapForm["Butt"],
15 | JoinForm["Bevel"],
16 | JoinedCurve[{
17 | {{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3},{0, 1, 0}, {1, 3, 3}, {0, 1, 0}},
18 | {{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0},
19 | {1, 3, 3}}},
20 | {{{9.`, 15.`}, {5.`, 15.`}, {3.895430088043213`, 15.`},
21 | {3.`, 14.104599952697754`}, {3.`, 13.`}, {3.`, 5.`}, {3.`, 3.895430088043213`},
22 | {3.895430088043213`, 3.`}, {5.`, 3.`}, {13.`, 3.`}, {14.104599952697754`, 3.`},
23 | {15.`, 3.895430088043213`}, {15.`, 5.`}, {15.`, 9.`}},
24 | {{11.`, 21.`}, {19.`, 21.`}, {20.10460090637207`, 21.`},
25 | {21.`, 20.10460090637207`}, {21.`, 19.`}, {21.`, 11.`},
26 | {21.`, 9.895429611206055`}, {20.10460090637207`, 9.`},
27 | {19.`, 9.`}, {11.`, 9.`}, {9.895429611206055`, 9.`}, {9.`, 9.895429611206055`},
28 | {9.`, 11.`}, {9.`, 19.`}, {9.`, 20.10460090637207`},
29 | {9.895429611206055`, 21.`}, {11.`, 21.`}}
30 | },
31 | CurveClosed -> {0, 1}]
32 | },
33 | {{{1, 0}, {0, -1}}, {0, 0}}],
34 | ImageSize -> 20
35 | ]
36 |
37 |
38 | SetAttributes[myButton, HoldFirst]
39 | myButton[action_, rules:{__Rule}|Association, opts: OptionsPattern[Button]] :=
40 | Button[
41 | DynamicModule[
42 | {mouseDown = False, mouseHover = False},
43 | EventHandler[
44 | PaneSelector[{
45 | "Default" -> Lookup[rules, "Default"],
46 | "Hover" -> Lookup[rules, "Hover", Lookup[rules, "Default"]],
47 | "Pressed" -> Lookup[rules, "Pressed", Lookup[rules, "Default"]]
48 | },
49 | Dynamic[
50 | FEPrivate`Which[
51 | mouseDown, "Pressed",
52 | mouseHover, "Hover",
53 | True, "Default"
54 | ]
55 | ]
56 | ],
57 | {
58 | "MouseDown" :> FEPrivate`Set[mouseDown, True],
59 | "MouseUp" :> FEPrivate`Set[mouseDown, False],
60 | "MouseEntered" :> FEPrivate`Set[mouseHover, True],
61 | "MouseExited" :> FEPrivate`Set[mouseHover, False]
62 | },
63 | PassEventsDown -> True
64 | ]
65 | ],
66 | action,
67 | Appearance -> {
68 | "Default" -> FrontEnd`FileName[{"Misc"}, "TransparentBG.9.png"]
69 | },
70 | opts
71 | ]
72 |
73 |
74 | CopyButton = With[
75 | {opts = {FrameStyle -> Transparent, RoundingRadius -> 5, FrameMargins -> 5}},
76 | Function[
77 | expr,
78 | myButton[
79 | CopyToClipboard[expr],
80 | {
81 | "Default" -> Framed[$copyIcon[GrayLevel[0.65]], opts, Background -> Transparent],
82 | "Hover" -> Framed[$copyIcon[GrayLevel[0.286]], opts, Background -> Transparent],
83 | "Pressed" -> Framed[$copyIcon[GrayLevel[0.286]], opts, Background -> GrayLevel[0.,0.05]]
84 | }
85 | ],
86 | HoldFirst
87 | ]
88 | ];
89 |
90 |
91 |
92 | End[];
93 | EndPackage[];
94 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/Deploy.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`Deploy`"];
2 |
3 | Begin["`Private`"];
4 |
5 | Needs["Wolfram`ChatGPTPluginKit`"]
6 | Needs["Wolfram`ChatGPTPluginKit`CopyButton`"]
7 |
8 |
9 | (* ChatGPTPluginDeploy for local deployment *)
10 |
11 | Options[ChatGPTPluginDeploy] = {
12 | HandlerFunctions -> <||>,
13 | HandlerFunctionsKeys -> Automatic
14 | };
15 |
16 | ChatGPTPluginDeploy[args___] :=
17 | Enclose[
18 | iChatGPTPluginDeploy@@Confirm[ArgumentsOptions[ChatGPTPluginDeploy[args], {1,2}]],
19 | "InheritedFailure"
20 | ]
21 |
22 |
23 | iChatGPTPluginDeploy[{plugin_ChatGPTPlugin, loc_}, opts_] :=
24 | Enclose[Module[{listener},
25 |
26 | listener =
27 | Confirm@SocketListen[loc,
28 | Module[{handlers, handlerKeys, req, baseURL, resp},
29 |
30 | handlers = OptionValue[ChatGPTPluginDeploy, opts, HandlerFunctions];
31 | handlerKeys = Replace[OptionValue[ChatGPTPluginDeploy, opts, HandlerFunctionsKeys], Automatic -> {"HTTPRequest", "HTTPResponse"}];
32 |
33 | req = ImportByteArray[#DataByteArray, "HTTPRequest"];
34 |
35 | Lookup[handlers, "HTTPRequestReceived", Identity][KeyTake[<|"HTTPRequest" -> req, "HTTPResponse" -> Missing["NotAvailable"]|>, handlerKeys]];
36 |
37 | baseURL = StringTemplate["http://localhost:``"][#Socket["DestinationPort"]];
38 | resp = GenerateHTTPResponse[plugin["URLDispatcherTemplate"][<|"BaseURL" -> baseURL|>], req];
39 |
40 | BinaryWrite[#SourceSocket, ExportByteArray[resp, "HTTPResponse"]];
41 |
42 | Lookup[handlers, "HTTPResponseSent", Identity][KeyTake[<|"HTTPRequest" -> req, "HTTPResponse" -> resp|>, handlerKeys]];
43 |
44 | (* TODO: This is a hack because the shutdown procedure in HTTP is more complicated than this *)
45 | Pause[0.2];
46 | Close[#SourceSocket]
47 | ]&
48 | ];
49 |
50 | ChatGPTPluginDeployment[<|
51 | "SocketListener" -> listener,
52 | "URL" -> "localhost:"<>ToString[listener["DestinationPort"]],
53 | "Plugin" -> plugin
54 | |>]
55 |
56 | ], "InheritedFailure"]
57 |
58 |
59 | iChatGPTPluginDeploy[{spec_, port_}, opts_] :=
60 | Enclose[
61 | iChatGPTPluginDeploy[{Confirm@ChatGPTPlugin[spec], port}, opts],
62 | "InheritedFailure"
63 | ]
64 |
65 | iChatGPTPluginDeploy[{plugin_}, opts_] :=
66 | iChatGPTPluginDeploy[{plugin, Automatic}, opts]
67 |
68 |
69 |
70 | (* ChatGPTPluginCloudDeploy for cloud deployment *)
71 |
72 | Options[ChatGPTPluginCloudDeploy] = {};
73 |
74 | ChatGPTPluginCloudDeploy[args___] :=
75 | Enclose[
76 | iChatGPTPluginCloudDeploy@@Confirm[ArgumentsOptions[ChatGPTPluginCloudDeploy[args], 1]],
77 | "InheritedFailure"
78 | ]
79 |
80 |
81 | iChatGPTPluginCloudDeploy[{plugin_ChatGPTPlugin}, opts_] :=
82 | With[{baseURL = getBaseURL[]},
83 | If[FailureQ[baseURL],
84 | baseURL,
85 | ChatGPTPluginCloudDeployment[<|
86 | "CloudObjects" -> {
87 | CloudDeploy[ExportForm[plugin["ManifestJSONTemplate"][<|"BaseURL" -> baseURL|>], "JSON"], ".well-known/ai-plugin.json", Permissions -> "Public"],
88 | CloudDeploy[ExportForm[plugin["OpenAPIJSONTemplate"][<|"BaseURL" -> baseURL|>], "JSON"], ".well-known/openapi.json", Permissions -> "Public"],
89 | CloudDeploy[ExportForm[plugin["Image"], "PNG"], ".well-known/plugin_icon.png", Permissions -> "Public"],
90 | Splice[CloudDeploy[#["APIFunction"], #["OperationID"], Permissions -> "Public"] &/@ plugin["Endpoints"]]
91 | },
92 | "Plugin" -> plugin,
93 | "URL" -> baseURL
94 | |>]
95 | ]
96 | ]
97 |
98 | iChatGPTPluginCloudDeploy[{spec_}, opts_] :=
99 | Enclose[
100 | iChatGPTPluginCloudDeploy[{Confirm@ChatGPTPlugin[spec]}, opts],
101 | "InheritedFailure"
102 | ]
103 |
104 |
105 | getBaseURL[] :=
106 | If[$UserURLBase === None,
107 | Failure["NoUserURLBase", <|
108 | "MessageTemplate" -> "Expected user URL base in $UserURLBase but found None instead. Run CloudConnect[] to connect to a Wolfram Cloud account."
109 | |>],
110 | "https://" <> $UserURLBase <> "-assets.wolframcloud.com"
111 | ]
112 |
113 |
114 | (* Deployment objects *)
115 |
116 | ChatGPTPluginDeployment[data_]["Data"] := data
117 | deployment_ChatGPTPluginDeployment["Plugin"] := deployment["Data"]["Plugin"]
118 | deployment_ChatGPTPluginDeployment["SocketListener"] := deployment["Data"]["SocketListener"]
119 | deployment_ChatGPTPluginDeployment["URL"] := deployment["Data"]["URL"]
120 |
121 | ChatGPTPluginDeployment /: DeleteObject[deployment_ChatGPTPluginDeployment] := DeleteObject[deployment["SocketListener"]]
122 |
123 | ChatGPTPluginDeployment /: MakeBoxes[deployment_ChatGPTPluginDeployment, form:StandardForm]:=
124 | BoxForm`ArrangeSummaryBox[
125 | ChatGPTPluginDeployment,
126 | deployment,
127 | None,
128 | {
129 | Row[{BoxForm`SummaryItem@{"url: ", deployment["URL"]}, CopyButton[deployment["URL"]]}]
130 | },
131 | {
132 | BoxForm`SummaryItem@{"plugin: ", deployment["Plugin"]},
133 | BoxForm`SummaryItem@{"socket listener: ", deployment["SocketListener"]}
134 | },
135 | form
136 | ]
137 |
138 |
139 | (* ChatGPTPluginCloudDeployment *)
140 |
141 | ChatGPTPluginCloudDeployment[data_]["Data"] := data
142 | deployment_ChatGPTPluginCloudDeployment["Plugin"] := deployment["Data"]["Plugin"]
143 | deployment_ChatGPTPluginCloudDeployment["CloudObjects"] := deployment["Data"]["CloudObjects"]
144 | deployment_ChatGPTPluginCloudDeployment["URL"] := deployment["Data"]["URL"]
145 |
146 | ChatGPTPluginCloudDeployment /: DeleteObject[deployment_ChatGPTPluginCloudDeployment] := DeleteObject/@deployment["CloudObjects"]
147 |
148 | ChatGPTPluginCloudDeployment /: MakeBoxes[deployment_ChatGPTPluginCloudDeployment, form:StandardForm]:=
149 | BoxForm`ArrangeSummaryBox[
150 | ChatGPTPluginCloudDeployment,
151 | deployment,
152 | None,
153 | {
154 | Row[{BoxForm`SummaryItem@{"url: ", deployment["URL"]}, CopyButton[deployment["URL"]]}]
155 | },
156 | {
157 | BoxForm`SummaryItem@{"plugin: ", deployment["Plugin"]},
158 | BoxForm`SummaryItem@{"cloud objects: ", deployment["CloudObjects"]}
159 | },
160 | form
161 | ]
162 |
163 |
164 |
165 | End[];
166 | EndPackage[];
167 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/Plugin.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`Plugin`"];
2 |
3 | Begin["`Private`"];
4 |
5 | Needs["Wolfram`ChatGPTPluginKit`"]
6 |
7 |
8 | (****************************************************************)
9 | (************************* ChatGPTPlugin ************************)
10 | (****************************************************************)
11 |
12 |
13 | (* Constructors *)
14 |
15 | Options[ChatGPTPlugin] = {};
16 |
17 | ChatGPTPlugin[args___] /; !argumentsChatGPTPluginQ[args] := createChatGPTPlugin[args]
18 |
19 |
20 | argumentsChatGPTPluginQ[
21 | KeyValuePattern[{
22 | "Name" -> _,
23 | "Description" -> _,
24 | "Prompt" -> _,
25 | "Endpoints" -> {__ChatGPTPluginEndpoint},
26 | "ContactEmail" -> _,
27 | "LegalInformationURL" -> _,
28 | "Image" -> _?ImageQ
29 | }],
30 | {OptionsPattern[]}
31 | ] := True
32 |
33 | argumentsChatGPTPluginQ[___] := False
34 |
35 |
36 | createChatGPTPlugin[args___] :=
37 | Enclose[
38 | icreateChatGPTPlugin@@Confirm[ArgumentsOptions[ChatGPTPlugin[args], {1,2}]],
39 | "InheritedFailure"
40 | ]
41 |
42 | icreateChatGPTPlugin[{metadata_, endpoints_}, opts_] :=
43 | Enclose[
44 | ChatGPTPlugin[
45 | Join[
46 | Confirm@normalizeMetadata[metadata],
47 | <|"Endpoints" -> Confirm@normalizeEndpoints[endpoints]|>
48 | ],
49 | opts
50 | ],
51 | "InheritedFailure"
52 | ]
53 |
54 |
55 | defaultIcon := defaultIcon = Import[PacletObject["Wolfram/ChatGPTPluginKit"]["AssetLocation", "DefaultIcon"]];
56 |
57 |
58 | normalizeMetadata[prompt_?StringQ] :=
59 | normalizeMetadata[<|"Prompt" -> prompt|>]
60 |
61 | normalizeMetadata[metadata: KeyValuePattern[{}]] :=
62 | Merge[{
63 | <|
64 | "Name" -> "WolframCustom",
65 | "Description" -> "",
66 | "Prompt" -> "",
67 | "ContactEmail" -> "",
68 | "LegalInformationURL" -> "",
69 | "Image" -> defaultIcon
70 | |>,
71 | KeyTake[metadata, {"Name", "Description", "Prompt", "ContactEmail", "LegalInformationURL", "Image"}]
72 | }, Last]
73 |
74 | normalizeMetadata[expr_] :=
75 | Failure["InvalidMetadataSpecification", <|
76 | "MessageTemplate" -> "Expected an association with metadata but found `1` instead.",
77 | "MessageParameters" -> {expr},
78 | "MetadataSpecification" -> expr
79 | |>]
80 |
81 |
82 | normalizeEndpoints[endpoint_ChatGPTPluginEndpoint] := {endpoint}
83 | normalizeEndpoints[endpoints: {__ChatGPTPluginEndpoint}] := endpoints
84 | normalizeEndpoints[name_ -> data_] := normalizeEndpoints[ChatGPTPluginEndpoint[name, data]]
85 | normalizeEndpoints[endpoints: KeyValuePattern[{}] /; Length[endpoints] > 0] := normalizeEndpoints[KeyValueMap[ChatGPTPluginEndpoint, Association@endpoints]]
86 | normalizeEndpoints[expr_] :=
87 | Failure["InvalidEndpointsSpecification", <|
88 | "MessageTemplate" -> "Expected a single ChatGPTPluginEndpoint, a list with at least one ChatGPTPluginEndpoint, or an association specifying ChatGPTEndpoints, but found `1` instead.",
89 | "MessageParameters" -> {expr},
90 | "Endpointspecification" -> expr
91 | |>]
92 |
93 |
94 | (* Association constructors *)
95 |
96 | icreateChatGPTPlugin[{assoc:KeyValuePattern[{}]}, opts_] :=
97 | Enclose[
98 | ChatGPTPlugin[
99 | Join[
100 | Confirm@normalizeMetadata[assoc],
101 | <|"Endpoints" -> Confirm@normalizeEndpoints[Lookup[assoc, "Endpoints", {}]]|>
102 | ],
103 | opts
104 | ],
105 | "InheritedFailure"
106 | ]
107 |
108 |
109 | icreateChatGPTPlugin[{spec_}, opts_] :=
110 | Failure["InvalidPluginSpecification", <|
111 | "MessageTemplate" -> "Unexpected expression `1` encountered representing a ChatGPT plugin.",
112 | "MessageParameters" -> {spec},
113 | "Endpointspecification" -> spec
114 | |>]
115 |
116 |
117 |
118 | (* Accessors *)
119 |
120 | HoldPattern[ChatGPTPlugin][data_, opts_]["Data"] := data
121 | HoldPattern[ChatGPTPlugin][data_, opts_]["Options"] := opts
122 |
123 | plugin_ChatGPTPlugin["Name"] := Lookup[plugin["Data"], "Name"]
124 | plugin_ChatGPTPlugin["Description"] := Lookup[plugin["Data"], "Description"]
125 | plugin_ChatGPTPlugin["Prompt"] := Lookup[plugin["Data"], "Prompt"]
126 | plugin_ChatGPTPlugin["Endpoints"] := Lookup[plugin["Data"], "Endpoints"]
127 | plugin_ChatGPTPlugin["ContactEmail"] := Lookup[plugin["Data"], "ContactEmail"]
128 | plugin_ChatGPTPlugin["LegalInformationURL"] := Lookup[plugin["Data"], "LegalInformationURL"]
129 | plugin_ChatGPTPlugin["Image"] := Lookup[plugin["Data"], "Image"]
130 | plugin_ChatGPTPlugin["OpenAPIJSONTemplate"] := pluginAPIJSON[plugin]
131 | plugin_ChatGPTPlugin["ManifestJSONTemplate"] := pluginManifestJSON[plugin]
132 | plugin_ChatGPTPlugin["URLDispatcherTemplate"] := pluginURLDispatcher[plugin]
133 |
134 |
135 | (* OpenAPI *)
136 |
137 | pluginAPIJSON[plugin_ChatGPTPlugin] :=
138 | TemplateObject[<|
139 | "openapi" -> "3.0.1",
140 | "info" -> <|
141 | "title" -> plugin["Name"],
142 | "description" -> plugin["Description"],
143 | "version" -> "v1"
144 | |>,
145 | "servers" -> {<|"url" -> TemplateSlot["BaseURL"]|>},
146 | "paths" -> Join@@(#["OpenAPIJSON"]&)/@plugin["Endpoints"]
147 | |>]
148 |
149 |
150 | (* Manifest *)
151 |
152 | pluginManifestJSON[plugin_ChatGPTPlugin] :=
153 | TemplateObject[<|
154 | "schema_version" -> "v1",
155 | "name_for_human" -> plugin["Name"],
156 | "name_for_model" -> plugin["Name"],
157 | "description_for_human" -> plugin["Description"],
158 | "description_for_model" -> plugin["Prompt"],
159 | "auth" -> <|"type" -> "none"|>,
160 | "api" -> <|
161 | "type" -> "openapi",
162 | "url" -> URLBuild[{TemplateSlot["BaseURL"], ".well-known", "openapi.json"}],
163 | "is_user_authenticated" -> False
164 | |>,
165 | "logo_url" -> URLBuild[{TemplateSlot["BaseURL"], ".well-known", "plugin_icon.png"}],
166 | "contact_email" -> plugin["ContactEmail"],
167 | "legal_info_url" -> plugin["LegalInformationURL"]
168 | |>]
169 |
170 |
171 | (* URLDispatcher *)
172 |
173 | pluginURLDispatcher[plugin_ChatGPTPlugin] :=
174 | TemplateObject[URLDispatcher[{
175 | "/.well-known/ai-plugin.json" -> addCORS@ExportForm[plugin["ManifestJSONTemplate"], "JSON"],
176 | "/.well-known/openapi.json" -> addCORS@ExportForm[plugin["OpenAPIJSONTemplate"], "JSON"],
177 | "/.well-known/plugin_icon.png" -> addCORS@ExportForm[plugin["Image"], "PNG"],
178 | Splice["/"<>#["OperationID"] -> addCORS@#["APIFunction"]& /@ plugin["Endpoints"]]
179 | }]]
180 |
181 | addCORS[expr_] :=
182 | HTTPResponse[expr,
183 | <|"Headers" -> {
184 | "Access-Control-Allow-Origin" -> "*",
185 | "Access-Control-Allow-Method" -> "*",
186 | "Access-Control-Allow-Headers" -> "Accept, *"
187 | }
188 | |>
189 | ]
190 |
191 |
192 | (* Summary box *)
193 |
194 | ChatGPTPlugin /: MakeBoxes[plugin_ChatGPTPlugin, form:StandardForm]:=
195 | BoxForm`ArrangeSummaryBox[
196 | ChatGPTPlugin,
197 | plugin,
198 | None,
199 | {
200 | BoxForm`SummaryItem@{"name: ", plugin["Name"]},
201 | BoxForm`SummaryItem@{"description: ", plugin["Description"]}
202 | },
203 | {
204 | BoxForm`SummaryItem@{"endpoints: ", Column@plugin["Endpoints"]},
205 | BoxForm`SummaryItem@{"prompt: ", plugin["Prompt"]}
206 | },
207 | form
208 | ]
209 |
210 |
211 | End[];
212 | EndPackage[];
213 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Kernel/Endpoint.wl:
--------------------------------------------------------------------------------
1 | BeginPackage["Wolfram`ChatGPTPluginKit`Endpoint`"];
2 |
3 | Begin["`Private`"];
4 |
5 | Needs["Wolfram`ChatGPTPluginKit`"]
6 |
7 |
8 | (****************************************************************)
9 | (********************* ChatGPTPluginEndpoint ********************)
10 | (****************************************************************)
11 |
12 |
13 | (* Constructors *)
14 |
15 | Options[ChatGPTPluginEndpoint] = {};
16 |
17 | ChatGPTPluginEndpoint[args___] /; !argumentsChatGPTPluginEndpointQ[args] := createChatGPTPluginEndpoint[args]
18 |
19 |
20 | argumentsChatGPTPluginEndpointQ[
21 | KeyValuePattern[{
22 | "OperationID" -> _?StringQ,
23 | "Prompt" -> _?StringQ | _Missing,
24 | "Parameters" -> {
25 | (_String -> KeyValuePattern[{
26 | "Interpreter" -> _,
27 | "Help" -> _,
28 | "Required" -> _
29 | }])...
30 | },
31 | "Function" -> _,
32 | "APIFunctionOptions" -> _
33 | }]?AssociationQ,
34 | {OptionsPattern[]}
35 | ] :=
36 | True
37 |
38 | argumentsChatGPTPluginEndpointQ[___] := False
39 |
40 |
41 | createChatGPTPluginEndpoint[args___] :=
42 | Enclose[
43 | icreateChatGPTPluginEndpoint@@Confirm[ArgumentsOptions[ChatGPTPluginEndpoint[args], {2,3}]],
44 | "InheritedFailure"
45 | ]
46 |
47 | icreateChatGPTPluginEndpoint[{opSpec_, params_, f_}, opts_] :=
48 | Enclose[
49 | ChatGPTPluginEndpoint[
50 | Join[
51 | Confirm@normalizeOpSpec[opSpec],
52 | <|
53 | "Parameters" -> Confirm@normalizeParamsList[params],
54 | "Function" -> f,
55 | "APIFunctionOptions" -> {}
56 | |>
57 | ],
58 | opts
59 | ],
60 | "InheritedFailure"
61 | ]
62 |
63 |
64 | normalizeOpSpec[opID_?StringQ] := <|"OperationID" -> opID, "Prompt" -> Missing["NotSpecified"]|>
65 | normalizeOpSpec[{opID_?StringQ, prompt: _?StringQ | _Missing}] := <|"OperationID" -> opID, "Prompt" -> prompt|>
66 | normalizeOpSpec[spec_] :=
67 | Failure["InvalidOperationSpecification", <|
68 | "MessageTemplate" -> "Expected an operation name, or a list containing an operation name and a prompt, but found `1` instead.",
69 | "MessageParameters" -> {spec},
70 | "OperationSpecification" -> spec
71 | |>]
72 |
73 |
74 | normalizeParamsList[params_List] := Enclose[Confirm@*normalizeParam /@ params, "InheritedFailure"]
75 | normalizeParamsList[params_?AssociationQ] := normalizeParamsList[Normal[params]]
76 | normalizeParamsList[params_] := normalizeParamsList[{params}]
77 |
78 | normalizeParam[name_ -> props_?AssociationQ] := name -> normalizeParamProps[props]
79 | normalizeParam[name_?StringQ -> interp_] := normalizeParam[name -> <|"Interpreter" -> interp|>]
80 | normalizeParam[name_?StringQ] := normalizeParam[name -> <||>]
81 | normalizeParam[param_] :=
82 | Failure["InvalidParameterSpecification", <|
83 | "MessageTemplate" -> "Expected a parameter specification but found `1` instead.",
84 | "MessageParameters" -> {param},
85 | "ParameterSpecification" -> param
86 | |>]
87 |
88 | normalizeParamProps[props_?AssociationQ] :=
89 | Merge[{
90 | <|
91 | "Interpreter" -> "String",
92 | "Help" -> Missing["NotSpecified"],
93 | "Required" -> True
94 | |>,
95 | props
96 | }, Last]
97 |
98 |
99 | (* Association constructors *)
100 |
101 | icreateChatGPTPluginEndpoint[{opName_, assoc_}, opts_] :=
102 | Enclose[
103 | With[{
104 | prompt = Lookup[assoc, "Prompt", Missing["NotSpecified"]],
105 | apiFunc = Lookup[assoc, "APIFunction", ConfirmAssert[False, missingAPIFunctionFailure[assoc]]]
106 | },
107 | ChatGPTPluginEndpoint[
108 | Join[
109 | <|
110 | "OperationID" -> ConfirmBy[opName, StringQ, invalidNameFailure[opName]],
111 | "Prompt" -> ConfirmMatch[prompt, _?StringQ | _Missing, invalidPromptFailure[prompt]]
112 | |>,
113 | Confirm@normalizeAPIFunction[apiFunc]
114 | ],
115 | opts
116 | ]
117 | ],
118 | "InheritedFailure"
119 | ]
120 |
121 | icreateChatGPTPluginEndpoint[{opName_, apiFunc_APIFunction}, opts_] :=
122 | icreateChatGPTPluginEndpoint[{opName, <|"APIFunction" -> apiFunc|>}, opts]
123 |
124 |
125 | normalizeAPIFunction[APIFunction[args___]] :=
126 | With[{res = ArgumentsOptions[APIFunction[args], {1,3}]},
127 | If[!FailureQ[res],
128 | inormalizeAPIFunction@@res,
129 | Failure["InvalidAPIFunction", <|
130 | "MessageTemplate" -> "Expected a valid APIFunction but found `1` instead.",
131 | "MessageParameters" -> {api},
132 | "Name" -> api
133 | |>]
134 | ]
135 | ]
136 |
137 | inormalizeAPIFunction[{params_, f_, fmt_}, opts_] :=
138 | Enclose[
139 | <|
140 | "Parameters" -> Confirm@normalizeParamsList[params],
141 | "Function" -> f,
142 | "OutputFormat" -> fmt,
143 | "APIFunctionOptions" -> opts
144 | |>,
145 | "InheritedFailure"
146 | ]
147 |
148 | inormalizeAPIFunction[{params_, f_}, opts_] :=
149 | Enclose[
150 | <|
151 | "Parameters" -> Confirm@normalizeParamsList[params],
152 | "Function" -> f,
153 | "APIFunctionOptions" -> opts
154 | |>,
155 | "InheritedFailure"
156 | ]
157 |
158 | inormalizeAPIFunction[{params_}, opts_] :=
159 | inormalizeAPIFunction[{params, Identity}, opts]
160 |
161 |
162 | invalidNameFailure[name_] :=
163 | Failure["InvalidEndpointName", <|
164 | "MessageTemplate" -> "Expected an endpoint name as a string but found `1` instead.",
165 | "MessageParameters" -> {name},
166 | "Name" -> name
167 | |>]
168 |
169 | invalidPromptFailure[prompt_] :=
170 | Failure["InvalidEndpointPrompt", <|
171 | "MessageTemplate" -> "Expected an endpoint prompt as a string or Missing but found `1` instead.",
172 | "MessageParameters" -> {prompt},
173 | "Prompt" -> prompt
174 | |>]
175 |
176 | missingAPIFunctionFailure[assoc_] :=
177 | Failure["MissingAPIFunction", <|
178 | "MessageTemplate" -> "Required an APIFunction in endpoint, but only found `1`.",
179 | "MessageParameters" -> {assoc},
180 | "Data" -> assoc
181 | |>]
182 |
183 |
184 |
185 | (* Accessors *)
186 |
187 | HoldPattern[ChatGPTPluginEndpoint][data_, opts_]["Data"] := data
188 | HoldPattern[ChatGPTPluginEndpoint][data_, opts_]["Options"] := opts
189 |
190 | endpoint_ChatGPTPluginEndpoint["OperationID"] := endpoint["Data"]["OperationID"]
191 | endpoint_ChatGPTPluginEndpoint["Prompt"] := endpoint["Data"]["Prompt"]
192 | endpoint_ChatGPTPluginEndpoint["Parameters"] := endpoint["Data"]["Parameters"]
193 | endpoint_ChatGPTPluginEndpoint["Function"] := endpoint["Data"]["Function"]
194 | endpoint_ChatGPTPluginEndpoint["APIFunctionOptions"] := endpoint["Data"]["APIFunctionOptions"]
195 |
196 | endpoint_ChatGPTPluginEndpoint["OpenAPIJSON"] := endpointAPIJSON[endpoint]
197 | endpoint_ChatGPTPluginEndpoint["APIFunction"] := endpointAPIFunction[endpoint]
198 |
199 |
200 | (* OpenAPI *)
201 |
202 | endpointAPIJSON[endpoint_ChatGPTPluginEndpoint] :=
203 | <|
204 | "/"<>endpoint["OperationID"] -> <|
205 | "get" -> <|
206 | "operationId" -> endpoint["OperationID"],
207 | If[StringQ@endpoint["Prompt"], "summary" -> endpoint["Prompt"], Nothing],
208 | "responses" -> <|"200" -> <|"description" -> "OK"|>|>,
209 | "parameters" -> endpointParamAPIJSON /@ endpoint["Parameters"]
210 | |>
211 | |>
212 | |>
213 |
214 | endpointParamAPIJSON[name_ -> KeyValuePattern[{"Help" -> prompt_, "Required" -> req_}]] :=
215 | <|
216 | "name" -> name,
217 | "in" -> "query",
218 | If[StringQ@prompt, "description" -> prompt, Nothing],
219 | "required" -> req,
220 | "schema" -> <|"type" -> "string"|>
221 | |>
222 |
223 |
224 | (* APIFunction *)
225 |
226 | (* Because of CORS, ChatGPT makes an OPTIONS request before its POST request. This must return the right headers, but
227 | it shouldn't run the function body. *)
228 | endpointAPIFunction[endpoint_ChatGPTPluginEndpoint] :=
229 | If[KeyExistsQ[endpoint["Data"], "OutputFormat"],
230 | APIFunction[
231 | removeHelp@endpoint["Parameters"],
232 | With[{funcBody = endpoint["Function"]}, If[HTTPRequestData["Method"] === "OPTIONS", "", funcBody[#]]&],
233 | endpoint["Data"]["OutputFormat"],
234 | endpoint["APIFunctionOptions"]
235 | ],
236 | APIFunction[
237 | removeHelp@endpoint["Parameters"],
238 | With[{funcBody = endpoint["Function"]}, If[HTTPRequestData["Method"] === "OPTIONS", "", funcBody[#]]&],
239 | endpoint["APIFunctionOptions"]
240 | ]
241 | ]
242 |
243 |
244 | (* TODO: Temporary workaround for bug #434606 *)
245 | removeHelp[params_] :=
246 | MapAt[KeyDrop["Help"], params, {All,2}]
247 |
248 |
249 | (* Summary box *)
250 |
251 | ChatGPTPluginEndpoint /: MakeBoxes[endpoint_ChatGPTPluginEndpoint, form:StandardForm]:=
252 | BoxForm`ArrangeSummaryBox[
253 | ChatGPTPluginEndpoint,
254 | endpoint,
255 | None,
256 | {
257 | BoxForm`SummaryItem@{"name: ", endpoint["OperationID"]}
258 | },
259 | {
260 | BoxForm`SummaryItem@{"prompt: ", endpoint["Prompt"]}
261 | },
262 | form
263 | ]
264 |
265 |
266 | End[];
267 | EndPackage[];
268 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/Guides/ChatGPTPluginKit.nb:
--------------------------------------------------------------------------------
1 | (* Content-type: application/vnd.wolfram.mathematica *)
2 |
3 | (*** Wolfram Notebook File ***)
4 | (* http://www.wolfram.com/nb *)
5 |
6 | (* CreatedBy='Mathematica 13.3' *)
7 |
8 | (*CacheID: 234*)
9 | (* Internal cache information:
10 | NotebookFileLineBreakTest
11 | NotebookFileLineBreakTest
12 | NotebookDataPosition[ 158, 7]
13 | NotebookDataLength[ 12729, 331]
14 | NotebookOptionsPosition[ 8604, 242]
15 | NotebookOutlinePosition[ 9531, 268]
16 | CellTagsIndexPosition[ 9488, 265]
17 | WindowFrame->Normal*)
18 |
19 | (* Beginning of Notebook Content *)
20 | Notebook[{
21 |
22 | Cell[CellGroupData[{
23 | Cell["ChatGPTPluginKit", "GuideTitle",
24 | CellChangeTimes->{{3.890321725626473*^9, 3.890321727902869*^9}},
25 | CellID->1898039737,ExpressionUUID->"b66b836d-8bd3-429b-ad1a-e0a878751cb0"],
26 |
27 | Cell["\<\
28 | ChatGPT provides a plugin mechanism allowing the AI model to call external \
29 | services. These functions make it possible to create and deploy a local \
30 | ChatGPT plugin.\
31 | \>", "GuideAbstract",
32 | CellChangeTimes->{{3.889473466555068*^9, 3.889473508106431*^9}, {
33 | 3.890321736711212*^9, 3.890321738747204*^9}},
34 | CellID->1631767221,ExpressionUUID->"e67747be-03bf-4bb8-84ab-1e393d7f257f"]
35 | }, Open ]],
36 |
37 | Cell[CellGroupData[{
38 |
39 | Cell["", "GuideFunctionsSection",
40 | CellID->1745511157,ExpressionUUID->"05384643-2e5c-4b5d-a791-e67d5ede8bfe"],
41 |
42 | Cell[TextData[{
43 | Cell[BoxData[
44 | ButtonBox["ChatGPTPlugin",
45 | BaseStyle->"Link",
46 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPlugin"]],
47 | "InlineGuideFunction",
48 | TaggingRules->{"PageType" -> "Function"},
49 | CellTags->"c40ac8e4-27e1-4161-a8df-4d4f38357a23",ExpressionUUID->
50 | "cad4f665-21a9-4497-a51d-ade5cc0a6a69"],
51 | " \[LongDash] represent a ChatGPT plugin"
52 | }], "GuideText",
53 | CellChangeTimes->{{3.8894747254630136`*^9, 3.88947473721161*^9}, {
54 | 3.889474771413569*^9, 3.8894747728698606`*^9}, {3.889474825669273*^9,
55 | 3.8894748256693363`*^9}},
56 | CellID->31914032,ExpressionUUID->"864a183e-2feb-493b-a253-ff7cc485b8ad"],
57 |
58 | Cell[TextData[{
59 | Cell[BoxData[
60 | ButtonBox["ChatGPTPluginEndpoint",
61 | BaseStyle->"Link",
62 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginEndpoint"]],
63 | "InlineGuideFunction",
64 | TaggingRules->{"PageType" -> "Function"},
65 | CellTags->"c5c6736a-1ff4-4e4e-8fcf-2d9846cbae62",ExpressionUUID->
66 | "823b1987-8ec1-4b2c-ae1a-b33f72af7bd1"],
67 | " \[LongDash] represent an endpoint of a ChatGPT plugin"
68 | }], "GuideText",
69 | CellChangeTimes->{{3.889474738463998*^9, 3.889474770099948*^9}, {
70 | 3.889474821581209*^9, 3.8894748215812683`*^9}},
71 | CellID->1655707721,ExpressionUUID->"43fbf19f-410d-4bd1-ba8f-06e899fc0910"],
72 |
73 | Cell[TextData[{
74 | Cell[BoxData[
75 | ButtonBox["ChatGPTPluginDeploy",
76 | BaseStyle->"Link",
77 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeploy"]],
78 | "InlineGuideFunction",
79 | TaggingRules->{"PageType" -> "Function"},
80 | CellTags->"c90df6b6-99e7-4eba-ae75-f768f67078e7",ExpressionUUID->
81 | "2b0035de-52b9-4842-abeb-a4da8351cb0f"],
82 | " \[LongDash] deploy a ChatGPT plugin to a local web server"
83 | }], "GuideText",
84 | CellChangeTimes->{{3.889474779747551*^9, 3.8894748176427517`*^9}},
85 | CellID->1873694747,ExpressionUUID->"c6d6e456-d90c-4c46-bac3-819791d70f59"],
86 |
87 | Cell[TextData[{
88 | Cell[BoxData[
89 | ButtonBox["ChatGPTPluginCloudDeploy",
90 | BaseStyle->"Link",
91 | ButtonData->
92 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeploy"]],
93 | "InlineGuideFunction",
94 | TaggingRules->{"PageType" -> "Function"},
95 | CellTags->"e369016c-0984-4d69-a5e5-385f515ae4a1",ExpressionUUID->
96 | "0c40a369-412b-45fc-b9e8-8e454f5f017a"],
97 | " \[LongDash] deploy a ChatGPT plugin to the public Wolfram Cloud"
98 | }], "GuideText",
99 | CellChangeTimes->{{3.890925101537053*^9, 3.89092512846848*^9}},
100 | CellID->1435032171,ExpressionUUID->"ee1aafc7-3c19-489d-8be4-5412a90dfe09"],
101 |
102 | Cell[CellGroupData[{
103 |
104 | Cell["\t", "GuideDelimiter",
105 | CellID->1013889632,ExpressionUUID->"29abd819-1bbe-4ac9-bec0-999427dd8134"],
106 |
107 | Cell[TextData[{
108 | Cell[BoxData[
109 | ButtonBox["ChatGPTPluginDeployment",
110 | BaseStyle->"Link",
111 | ButtonData->
112 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeployment"]],
113 | "InlineGuideFunction",ExpressionUUID->
114 | "83deec53-21b9-4d6f-b675-525dcab181f6"],
115 | StyleBox[" \[FilledVerySmallSquare] ", "InlineSeparator"],
116 | Cell[BoxData[
117 | ButtonBox["ChatGPTPluginCloudDeployment",
118 | BaseStyle->"Link",
119 | ButtonData->
120 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment"]],
121 | "InlineGuideFunction",
122 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
123 | "e1eeb3ed-2460-44b9-b4fb-27e6e5418c5f"],
124 | Cell[BoxData[
125 | RowBox[{
126 | Cell[TextData[StyleBox[
127 | " \[FilledVerySmallSquare] ", "InlineSeparator"]],ExpressionUUID->
128 | "d6bc823f-04e0-4da5-aa23-9293856be30b"],
129 | DynamicModuleBox[{$CellContext`nbobj$$ = NotebookObject[
130 | "8d263370-70e1-4edf-9814-2cdfe8000c26",
131 | "4eb3ec91-19ac-4508-a83a-9484d9c825b7"], $CellContext`cellobj$$ =
132 | CellObject[
133 | "195a566f-4453-490d-a622-17967ce9e955",
134 | "2f220452-7004-4d21-9ff1-917a320fb8ff"]},
135 | TemplateBox[{
136 | GraphicsBox[{{
137 | Thickness[0.06],
138 | StrokeForm[
139 | Hue[0.4167, 0.406, 0.502]],
140 | CircleBox[{0, 0}]}, {
141 | Thickness[0.06],
142 | StrokeForm[
143 | Hue[0.4167, 0.406, 0.502]],
144 | LineBox[{{0, 0.62}, {0, -0.62}}]}, {
145 | Thickness[0.06],
146 | StrokeForm[
147 | Hue[0.4167, 0.406, 0.502]],
148 | LineBox[{{-0.62, 0}, {0.62, 0}}]}},
149 | ImagePadding -> {{1., 1.}, {2.4, 1.}}, ImageSize -> 16,
150 | PlotRange -> {{-1.06, 1.06}, {-1.06, 1.06}},
151 | BaselinePosition -> (Center ->
152 | Center)], $CellContext`nbobj$$, $CellContext`cellobj$$},
153 | "InlineListingAddButton"],
154 | Initialization:>($CellContext`nbobj$$ =
155 | EvaluationNotebook[]; $CellContext`cellobj$$ = EvaluationCell[])]}]],
156 | "InlineListingAddButton",ExpressionUUID->
157 | "195a566f-4453-490d-a622-17967ce9e955"]
158 | }], "InlineGuideFunctionListing",
159 | CellChangeTimes->{{3.890925049516172*^9, 3.890925085561715*^9}},
160 | CellID->1167597582,ExpressionUUID->"45d98050-634d-4e91-b678-7d9e458cf903"]
161 | }, Open ]]
162 | }, Open ]],
163 |
164 | Cell[CellGroupData[{
165 |
166 | Cell["Tech Notes", "GuideTutorialsSection",
167 | CellID->2119586078,ExpressionUUID->"44cd7134-10c4-4e9c-bc2e-fbba6c0427bb"],
168 |
169 | Cell["XXXX", "GuideTutorial",
170 | CellID->1424476510,ExpressionUUID->"c5acee5d-38df-4b8f-9812-7f4324025f79"],
171 |
172 | Cell["XXXX", "GuideTutorial",
173 | CellID->1029006814,ExpressionUUID->"d6536eaf-7596-49e8-9e58-92dfa4bd044b"]
174 | }, Open ]],
175 |
176 | Cell[CellGroupData[{
177 |
178 | Cell["Related Guides", "GuideMoreAboutSection",
179 | CellChangeTimes->{{3.8430423939366693`*^9, 3.843042395176153*^9}},
180 | CellID->831713607,ExpressionUUID->"2290eda2-f76a-4ee5-bb4b-cf374578e3ab"],
181 |
182 | Cell["XXXX", "GuideMoreAbout",
183 | CellID->639534526,ExpressionUUID->"4904f3b8-087d-45b7-bc4f-4c804451f98f"],
184 |
185 | Cell["XXXX", "GuideMoreAbout",
186 | CellID->501125247,ExpressionUUID->"f0d83f08-1c0d-4428-8d29-ee8ac8159954"]
187 | }, Open ]],
188 |
189 | Cell["Related Links", "GuideRelatedLinksSection",
190 | CellID->2128646442,ExpressionUUID->"c8c52101-4142-473a-9386-c1849211e6a4"],
191 |
192 | Cell[CellGroupData[{
193 |
194 | Cell["Metadata", "MetadataSection",
195 | CellID->1230675321,ExpressionUUID->"5284a271-0deb-4895-b295-e46589fa474d"],
196 |
197 | Cell[TextData[{
198 | "New in: ",
199 | Cell["XX", "HistoryData",
200 | CellTags->"New",ExpressionUUID->"1a8c6b55-b61f-445c-b02e-c081d4818980"],
201 | " | Modified in: ",
202 | Cell[" ", "HistoryData",
203 | CellTags->"Modified",ExpressionUUID->"0ea18fee-526d-4efb-8f22-37af79ba7531"],
204 | " | Obsolete in: ",
205 | Cell[" ", "HistoryData",
206 | CellTags->"Obsolete",ExpressionUUID->
207 | "26f20e25-24d6-4d50-a8cc-ae1475fc0306"]
208 | }], "History",
209 | CellID->1545115790,ExpressionUUID->"fa213b1c-6886-4377-bb98-f01767dca08f"],
210 |
211 | Cell[CellGroupData[{
212 |
213 | Cell["Categorization", "CategorizationSection",
214 | CellID->1388823006,ExpressionUUID->"b7c1f2a9-e4dd-4ee2-a1db-2dee2c41c3b9"],
215 |
216 | Cell["Guide", "Categorization",
217 | CellLabel->"Entity Type",
218 | CellID->948502599,ExpressionUUID->"cdb4bca9-fe73-4b92-86b1-31ea03392e84"],
219 |
220 | Cell["Wolfram/ChatGPTPluginKit", "Categorization",
221 | CellLabel->"Paclet Name",
222 | CellID->712069712,ExpressionUUID->"797a2868-0a59-488c-854a-098fa8baae8e"],
223 |
224 | Cell["Wolfram`ChatGPTPluginKit`", "Categorization",
225 | CellLabel->"Context",
226 | CellID->1976768500,ExpressionUUID->"bbcf70ed-246b-40a2-8cc6-137f335b83d8"],
227 |
228 | Cell["Wolfram/ChatGPTPluginKit/guide/ChatGPTPluginKit", "Categorization",
229 | CellLabel->"URI",
230 | CellID->1976160410,ExpressionUUID->"047db68a-a92e-4dc8-8978-d017e3d3003b"]
231 | }, Open ]],
232 |
233 | Cell[CellGroupData[{
234 |
235 | Cell["Keywords", "KeywordsSection",
236 | CellID->345926368,ExpressionUUID->"8d600f9f-45db-4fe9-a485-69f6d4c9de13"],
237 |
238 | Cell["XXXX", "Keywords",
239 | CellID->746234547,ExpressionUUID->"6c092148-21e9-4d2e-aac1-9eec0f442654"]
240 | }, Closed]]
241 | }, Open ]]
242 | },
243 | WindowSize->{700, 770},
244 | WindowMargins->{{398, Automatic}, {Automatic, 54}},
245 | TaggingRules->{
246 | "DocuToolsSettingsInternal" -> {
247 | "$PacletVersion" -> "0.10.2323", "$ApplicationName" -> "Mathematica",
248 | "$LinkBase" -> "Mathematica", "$ApplicationDirectory" ->
249 | "/Users/christopher/cvs/Mathematica/", "$DocumentationDirectory" ->
250 | "/Users/christopher/cvs/Mathematica/Documentation/English/",
251 | "$UseNewPageDialog" -> ""},
252 | "WelcomeScreenSettings" -> {"FEStarting" -> False}, "Paclet" ->
253 | "Wolfram/ChatGPTPluginKit"},
254 | FrontEndVersion->"13.3 for Mac OS X ARM (64-bit) (April 20, 2023)",
255 | StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "GuidePageStylesExt.nb",
256 | CharacterEncoding -> "UTF-8"],
257 | ExpressionUUID->"8d263370-70e1-4edf-9814-2cdfe8000c26"
258 | ]
259 | (* End of Notebook Content *)
260 |
261 | (* Internal cache information *)
262 | (*CellTagsOutline
263 | CellTagsIndex->{}
264 | *)
265 | (*CellTagsIndex
266 | CellTagsIndex->{}
267 | *)
268 | (*NotebookFileOutline
269 | Notebook[{
270 | Cell[CellGroupData[{
271 | Cell[580, 22, 180, 2, 88, "GuideTitle",ExpressionUUID->"b66b836d-8bd3-429b-ad1a-e0a878751cb0",
272 | CellID->1898039737],
273 | Cell[763, 26, 390, 7, 47, "GuideAbstract",ExpressionUUID->"e67747be-03bf-4bb8-84ab-1e393d7f257f",
274 | CellID->1631767221]
275 | }, Open ]],
276 | Cell[CellGroupData[{
277 | Cell[1190, 38, 109, 1, 72, "GuideFunctionsSection",ExpressionUUID->"05384643-2e5c-4b5d-a791-e67d5ede8bfe",
278 | CellID->1745511157],
279 | Cell[1302, 41, 635, 14, 27, "GuideText",ExpressionUUID->"864a183e-2feb-493b-a253-ff7cc485b8ad",
280 | CellID->31914032],
281 | Cell[1940, 57, 616, 13, 27, "GuideText",ExpressionUUID->"43fbf19f-410d-4bd1-ba8f-06e899fc0910",
282 | CellID->1655707721],
283 | Cell[2559, 72, 567, 12, 27, "GuideText",ExpressionUUID->"c6d6e456-d90c-4c46-bac3-819791d70f59",
284 | CellID->1873694747],
285 | Cell[3129, 86, 585, 13, 27, "GuideText",ExpressionUUID->"ee1aafc7-3c19-489d-8be4-5412a90dfe09",
286 | CellID->1435032171],
287 | Cell[CellGroupData[{
288 | Cell[3739, 103, 104, 1, 27, "GuideDelimiter",ExpressionUUID->"29abd819-1bbe-4ac9-bec0-999427dd8134",
289 | CellID->1013889632],
290 | Cell[3846, 106, 2135, 53, 27, "InlineGuideFunctionListing",ExpressionUUID->"45d98050-634d-4e91-b678-7d9e458cf903",
291 | CellID->1167597582]
292 | }, Open ]]
293 | }, Open ]],
294 | Cell[CellGroupData[{
295 | Cell[6030, 165, 119, 1, 74, "GuideTutorialsSection",ExpressionUUID->"44cd7134-10c4-4e9c-bc2e-fbba6c0427bb",
296 | CellID->2119586078],
297 | Cell[6152, 168, 105, 1, 24, "GuideTutorial",ExpressionUUID->"c5acee5d-38df-4b8f-9812-7f4324025f79",
298 | CellID->1424476510],
299 | Cell[6260, 171, 105, 1, 24, "GuideTutorial",ExpressionUUID->"d6536eaf-7596-49e8-9e58-92dfa4bd044b",
300 | CellID->1029006814]
301 | }, Open ]],
302 | Cell[CellGroupData[{
303 | Cell[6402, 177, 190, 2, 74, "GuideMoreAboutSection",ExpressionUUID->"2290eda2-f76a-4ee5-bb4b-cf374578e3ab",
304 | CellID->831713607],
305 | Cell[6595, 181, 105, 1, 24, "GuideMoreAbout",ExpressionUUID->"4904f3b8-087d-45b7-bc4f-4c804451f98f",
306 | CellID->639534526],
307 | Cell[6703, 184, 105, 1, 24, "GuideMoreAbout",ExpressionUUID->"f0d83f08-1c0d-4428-8d29-ee8ac8159954",
308 | CellID->501125247]
309 | }, Open ]],
310 | Cell[6823, 188, 125, 1, 74, "GuideRelatedLinksSection",ExpressionUUID->"c8c52101-4142-473a-9386-c1849211e6a4",
311 | CellID->2128646442],
312 | Cell[CellGroupData[{
313 | Cell[6973, 193, 111, 1, 72, "MetadataSection",ExpressionUUID->"5284a271-0deb-4895-b295-e46589fa474d",
314 | CellID->1230675321],
315 | Cell[7087, 196, 477, 12, 26, "History",ExpressionUUID->"fa213b1c-6886-4377-bb98-f01767dca08f",
316 | CellID->1545115790],
317 | Cell[CellGroupData[{
318 | Cell[7589, 212, 123, 1, 21, "CategorizationSection",ExpressionUUID->"b7c1f2a9-e4dd-4ee2-a1db-2dee2c41c3b9",
319 | CellID->1388823006],
320 | Cell[7715, 215, 133, 2, 35, "Categorization",ExpressionUUID->"cdb4bca9-fe73-4b92-86b1-31ea03392e84",
321 | CellID->948502599],
322 | Cell[7851, 219, 152, 2, 35, "Categorization",ExpressionUUID->"797a2868-0a59-488c-854a-098fa8baae8e",
323 | CellID->712069712],
324 | Cell[8006, 223, 150, 2, 35, "Categorization",ExpressionUUID->"bbcf70ed-246b-40a2-8cc6-137f335b83d8",
325 | CellID->1976768500],
326 | Cell[8159, 227, 168, 2, 35, "Categorization",ExpressionUUID->"047db68a-a92e-4dc8-8978-d017e3d3003b",
327 | CellID->1976160410]
328 | }, Open ]],
329 | Cell[CellGroupData[{
330 | Cell[8364, 234, 110, 1, 31, "KeywordsSection",ExpressionUUID->"8d600f9f-45db-4fe9-a485-69f6d4c9de13",
331 | CellID->345926368],
332 | Cell[8477, 237, 99, 1, 70, "Keywords",ExpressionUUID->"6c092148-21e9-4d2e-aac1-9eec0f442654",
333 | CellID->746234547]
334 | }, Closed]]
335 | }, Open ]]
336 | }
337 | ]
338 | *)
339 |
340 |
--------------------------------------------------------------------------------
/EXAMPLES.md:
--------------------------------------------------------------------------------
1 | # Examples
2 |
3 | ## 📁 File System Access
4 | Give ChatGPT access to your local file system:
5 |
6 | ```wl
7 | ChatGPTPluginDeploy[<|
8 | "Name" -> "FileBrowser",
9 | "Description" -> "Browse files on a computer",
10 | "Prompt" -> "Browse files on a computer",
11 | "Endpoints" -> <|
12 | "getDirectoryFiles" -> <|
13 | "Prompt" -> "lists the files in a directory",
14 | "APIFunction" -> APIFunction[
15 | "path" -> <|"Help"->"the path to the directory"|>,
16 | StringRiffle[FileNameTake/@FileNames["*",#path],"\n"]&
17 | ]
18 | |>,
19 | "getFileContents" -> <|
20 | "Prompt" -> "gets the contents of a file as text. Only request the contents of files that you are sure exist.",
21 | "APIFunction" ->
22 | APIFunction["path" -> <|"Help"->"the path to the file"|>, ReadString[#path]&]
23 | |>
24 | |>
25 | |>]
26 | ```
27 |
28 |
29 | Example chat
30 |
31 | 
32 |
33 |
34 |
35 | ## 🗃️ Database access
36 | Give ChatGPT access to run queries on a database:
37 |
38 | ```wl
39 | db = DatabaseReference[FindFile["ExampleData/ecommerce-database.sqlite"]];
40 | ChatGPTPluginDeploy[<|
41 | "Name" -> "Database",
42 | "Description" -> "Run queries on a database",
43 | "Prompt" -> "Run queries on an SQLite database. Always get the schema for all the tables in the database before querying it.",
44 | "Endpoints" -> <|
45 | "runQuery" -> <|
46 | "Prompt" -> "runs a query on an SQLite database",
47 | "APIFunction" -> APIFunction[
48 | "query" -> <|"Help"->"the SQLite query all on one line"|>,
49 | ExportForm[ExternalEvaluate[db, #query]/._Missing->Null,"CSV"]&
50 | ]
51 | |>
52 | |>
53 | |>]
54 | ```
55 |
56 |
57 | Example chat
58 |
59 | 
60 |
61 |
62 |
63 | ## 💻 Full kernel access
64 |
65 | Allow ChatGPT to run arbitrary Wolfram Language code in the local kernel session:
66 |
67 | ```wl
68 | ChatGPTPluginDeploy@ChatGPTPlugin[
69 | <|
70 | "Name" -> "KernelAccess",
71 | "Description" -> "Give ChatGPT access to your WL kernel",
72 | "Prompt" -> "Evaluate Wolfram Language code in a kernel session."
73 | |>,
74 | ChatGPTPluginEndpoint[
75 | {"runCode", "runs a Wolfram Language program in a kernel session"},
76 | "code" -> <|"Help"->"the Wolfram Language program"|>,
77 | ToExpression[#code]&
78 | ]
79 | ]
80 | ```
81 |
82 | This plugin is pretty dangerous. There is nothing here stopping ChatGPT from running code to delete files, etc. However, as long as you never tell it to do anything dangerous, you should be fine. (Assuming no Skynet, that is.)
83 |
84 | A better prompt could probably encourage it to be safe, and refuse requests to run unsafe operations.
85 |
86 |
87 | Example chat
88 |
89 | In the kernel from which the plugin was deployed:
90 |
91 | ```wl
92 | func[r_] := FixedPoint[Function[x, (x + r/x)/2], r]
93 | ```
94 |
95 | Then, with ChatGPT:
96 |
97 | 
98 |
99 | Later in the same kernel:
100 |
101 | ```wl
102 | shortestTourPlot[Thread@RandomGeoPosition[10]]
103 | ```
104 |
105 |
106 |
107 |
108 |
109 |
110 | ## 🔍 Documentation search
111 |
112 | Give ChatGPT access to Wolfram Language documentation. This uses a vector database and works the same way as OpenAI's [Retrieval plugin](https://github.com/openai/chatgpt-retrieval-plugin).
113 |
114 | ### Create vector database
115 |
116 | Use embeddings from OpenAI to to create a vector database for documentation search:
117 |
118 | ```wl
119 | PacletInstall["ChristopherWolfram/OpenAILink"];
120 | Needs["ChristopherWolfram`OpenAILink`"];
121 |
122 | symbolEmbeddings =
123 | Map[
124 | OpenAIEmbedding[StringRiffle[#, "\n"]]&,
125 | DeleteMissing[EntityValue["WolframLanguageSymbol", "TextStrings", "EntityAssociation"]]
126 | ];
127 | symbolEmbeddings //= Select[Not@*FailureQ];
128 | nf = Nearest[symbolEmbeddings, DistanceFunction -> CosineDistance]
129 | ```
130 |
131 | ### Deploy plugin
132 |
133 | ```wl
134 | ChatGPTPluginDeploy[<|
135 | "Name" -> "WolframLanguageDocumentation",
136 | "Description" -> "Get documentation on Wolfram Langauge symbols",
137 | "Prompt" -> "Get documentation on Wolfram Langauge symbols. Use the documentation to look up any Wolfram Language symbols that you are unsure about",
138 | "Endpoints" -> <|
139 | "getSymbolDocs" ->
140 | APIFunction["symbol" -> "WolframLanguageSymbol", StringRiffle[#symbol["TextStrings"],"\n"]&],
141 | "searchSymbols" -> <|
142 | "Prompt" -> "finds symbols which might be relevant to a query. Some symbols returned might not be relevant.",
143 | "APIFunction" -> APIFunction["query" -> "String", CanonicalName@nf[OpenAIEmbedding[#query],25]&]
144 | |>
145 | |>
146 | |>]
147 | ```
148 |
149 |
150 | Example chat
151 | Also with the kernel access plugin enabled:
152 |
153 | 
154 |
155 |
156 |
157 | ## 🌐 Web browsing
158 |
159 | Allow ChatGPT to use `Import` to get data form the web. It can extract data as plaintext, hyperlinks, or the full source. It also has access to a search endpoint:
160 |
161 | ```wl
162 | ChatGPTPluginDeploy[<|
163 | "Name" -> "WebAccess",
164 | "Description" -> "Give ChatGPT access to the internet",
165 | "Prompt" -> "Get information from the internet",
166 | "Endpoints" -> <|
167 | "webSearch" -> APIFunction[ "query", Normal@WebSearch[#query][All,{"PageTitle","Hyperlink"/*First}]&],
168 | "getPageHyperlinks" -> APIFunction[ "url", Import[#url,"Hyperlinks"]&],
169 | "getPagePlaintext" -> APIFunction["url", Import[#url,"Plaintext"]&],
170 | "getPageHTML" -> APIFunction["url", Import[#url,"Source"]&]
171 | |>
172 | |>]
173 | ```
174 |
175 |
176 | Example chat
177 |
178 | 
179 |
180 |
181 |
182 | ## 📱 SMS
183 |
184 | Give ChatGPT a simple SMS endpoint that can send messages to `$MobilePhone`:
185 |
186 | ```wl
187 | ChatGPTPluginDeploy[<|
188 | "Name" -> "SMS",
189 | "Description" -> "Send SMS messages",
190 | "Prompt" -> "Send SMS messages",
191 | "Endpoints" -> <|"sendMessage" -> APIFunction["message", SendMessage["SMS", #message]&]|>
192 | |>]
193 | ```
194 |
195 |
196 | Example chat
197 |
198 | 
199 |
200 |
201 |
202 | ## 🗂️ Organizing a directory
203 |
204 | Let ChatGPT help you organize the files in a directory. This takes advantage of `Import` to allow ChatGPT to inspect hundreds of different file formats that can be reduced to plaintext:
205 |
206 | ```wl
207 | ChatGPTPluginDeploy[<|
208 | "Name" -> "FileOrganizer",
209 | "Description" -> "View and organize files on a computer.",
210 | "Prompt" -> "View and organize files on a computer.",
211 | "Endpoints" -> <|
212 | "getFileNames" -> <|
213 | "Prompt" -> "lists the names of the files",
214 | "APIFunction" -> APIFunction[{},StringRiffle[FileNameTake/@FileNames["*",exampleDirectory],"\n"]&]
215 | |>,
216 | "getFileContents" -> <|
217 | "Prompt" -> "gets the contents of a file as text. Only request the contents of files that you are sure exist.",
218 | "APIFunction" -> APIFunction[
219 | "name" -> <|"Help"->"the name of the file"|>,
220 | StringTake[Import[FileNameJoin[{exampleDirectory,#name}],"Plaintext"],UpTo[1000]]&
221 | ]
222 | |>,
223 | "renameFile" -> APIFunction[
224 | {"oldName", "newName"},
225 | RenameFile[FileNameJoin[{exampleDirectory,#oldName}], FileNameJoin[{exampleDirectory,#newName}]]&
226 | ]
227 | |>
228 | |>]
229 | ```
230 |
231 |
232 | Example chat
233 |
234 | 
235 |
236 |
237 |
238 | ## 💡 Programming assistant
239 |
240 | Combine several of the plugins above to give ChatGPT the ability to:
241 |
242 | * Run code
243 | * Reload a Wolfram Language kernel
244 | * Edit code in a paclet
245 | * Search for keywords in a paclet
246 | * Search documentation
247 | * Read documentation
248 |
249 | Note: this uses the vector database from the documentation plugin.
250 |
251 |
252 | Full source
253 |
254 | ```wl
255 | formatResults[lines_, resLines_, radius_:2] :=
256 | With[{returnedLines = Split[Union@@(Range@@Clip[{#-radius,#+radius},{1,Length[lines]}]&/@resLines), #2-#1<=1&]},
257 | StringRiffle[#,"\n"]&/@Map[ToString[#] <> "\t" <> lines[[#]]&, returnedLines, {2}]
258 | ]
259 |
260 | basicSearch[dir_, query_] :=
261 | StringRiffle[
262 | Catenate@KeyValueMap[
263 | {fileName, res}|->(fileName<>":\n"<>#&/@res),
264 | FileSystemMap[
265 | Module[{lines, ps},
266 | lines = StringSplit[ReadString[#],"\n"];
267 | ps = Position[StringContainsQ[lines, query, IgnoreCase->True], True, {1}][[All,1]];
268 | formatResults[lines,ps]
269 | ]&,
270 | dir,
271 | Infinity,
272 | 1
273 | ]
274 | ],
275 | "\n\n"
276 | ]
277 |
278 | prompt = "Help the user program. All Wolfram Language code sent in the \"code\" parameter of runCode must be provided as a single-line string with NO comments (i.e. any text between `(*` and `*)`), extra line breaks, or formatting whitespace or tabs. If a line of code ends with a semicolon, its output will be suppressed. When editing a file, always read it before writing a change. When replacing an old or broken definition, always delete the old definition before inserting the replacement.";
279 |
280 | programmingAssistantPlugin[directory_, kernelInit_] :=
281 | Module[{ker, plugin},
282 | ker = First@LaunchKernels[1];
283 | With[{init = kernelInit}, ParallelEvaluate[ReleaseHold[init],ker]];
284 | plugin = ChatGPTPlugin[<|
285 | "Name" -> "ProgrammingAssistant",
286 | "Description" -> "Assist in programming.",
287 | "Prompt" -> prompt,
288 | "Endpoints" -> <|
289 |
290 | "searchFiles" -> <|
291 | "Prompt" -> "searches files for a keyword",
292 | "APIFunction" -> APIFunction["query" -> "String", basicSearch[directory, #query]&]
293 | |>,
294 |
295 | "getFileLines" -> <|
296 | "Prompt" -> "gets the contents of a file near a line number.",
297 | "APIFunction" -> APIFunction[
298 | {
299 | "fileName" -> <|"Help" -> "the name of the file"|>,
300 | "line" -> <|"Interpreter" -> "Integer", "Help" -> "the line number in the file"|>
301 | },
302 | First@formatResults[StringSplit[ReadString[FileNameJoin[{directory,#fileName}]],"\n"], {#line}]&
303 | ]
304 | |>,
305 |
306 | "insertFileLine" -> <|
307 | "Prompt" -> "inserts a line into a file. Always re-read a file before inserting lines.",
308 | "APIFunction" -> APIFunction[
309 | {
310 | "fileName" -> <|"Help" -> "the name of the file"|>,
311 | "line" -> <|"Interpreter" -> "Integer", "Help" -> "the line at which to insert"|>,
312 | "contents" -> <|"Help" -> "the contents to insert at the line"|>
313 | },
314 | Module[{path, lines, newStr},
315 | path = FileNameJoin[{directory,#fileName}];
316 | lines = StringSplit[ReadString[path],"\n"];
317 | newStr = StringRiffle[Insert[lines, #contents, #line], "\n"];
318 | WriteString[path, newStr];
319 | Close[path]
320 | ]&
321 | ]
322 | |>,
323 |
324 | "deleteFileLines" -> <|
325 | "Prompt" -> "deletes lines in a file from a range of line numbers",
326 | "APIFunction" -> APIFunction[
327 | {
328 | "fileName" -> <|"Help" -> "the name of the file"|>,
329 | "startLine" -> <|"Interpreter" -> "Integer", "Help" -> "the first line to delete"|>,
330 | "stopLine" -> <|"Interpreter" -> "Integer", "Help" -> "the last line to delete"|>
331 | },
332 | Module[{path, lines, newStr},
333 | path = FileNameJoin[{directory,#fileName}];
334 | lines = StringSplit[ReadString[path],"\n"];
335 | newStr = StringRiffle[Delete[lines, Range[#startLine, #stopLine]], "\n"];
336 | WriteString[path, newStr];
337 | Close[path]
338 | ]&
339 | ]
340 | |>,
341 |
342 | "restartKernel" -> <|
343 | "Prompt" -> "restarts the Wolfram Language kernel session and re-runs the initialization",
344 | "APIFunction" -> APIFunction[{},
345 | (
346 | CloseKernels[ker];
347 | {ker} = LaunchKernels[1];
348 | With[{init = kernelInit}, ParallelEvaluate[ReleaseHold[init],ker]];
349 | )&
350 | ]
351 | |>,
352 |
353 | "runCode" -> <|
354 | "Prompt" -> "runs a Wolfram Language program in the kernel session.",
355 | "APIFunction" -> APIFunction[
356 | "code" -> <|"Help"->"the Wolfram Language program"|>,
357 | ParallelEvaluate[ToExpression[#code],ker]&
358 | ]
359 | |>,
360 |
361 | "getSymbolDocs" ->
362 | APIFunction["symbol" -> "WolframLanguageSymbol", StringRiffle[#symbol["TextStrings"],"\n"]&],
363 |
364 | "searchSymbols" -> <|
365 | "Prompt" -> "finds symbols which might be relevant to a query. Some symbols returned might not be relevant.",
366 | "APIFunction" -> APIFunction["query" -> "String", CanonicalName@nf[OpenAIEmbedding[#query],25]&]
367 | |>
368 | |>
369 | |>];
370 | {plugin, ker}
371 | ]
372 | ```
373 |
374 |
375 |
376 | Deploy the plugin:
377 |
378 | ```wl
379 | {plugin,kernel} = programmingAssistantPlugin[
380 | FileNameJoin[{NotebookDirectory[],"ChatGPTPluginKitCopy","Kernel"}],
381 | Hold[
382 | PacletInstall["Wolfram/ChatGPTPluginKit"];
383 | Needs["Wolfram`ChatGPTPluginKit`"]
384 | ]
385 | ];
386 | ChatGPTPluginDeploy[server]
387 | ```
388 |
389 |
390 | Example chat
391 |
392 | 
393 |
394 |
395 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/ChatGPTPluginDeployment.nb:
--------------------------------------------------------------------------------
1 | (* Content-type: application/vnd.wolfram.mathematica *)
2 |
3 | (*** Wolfram Notebook File ***)
4 | (* http://www.wolfram.com/nb *)
5 |
6 | (* CreatedBy='Mathematica 13.2' *)
7 |
8 | (*CacheID: 234*)
9 | (* Internal cache information:
10 | NotebookFileLineBreakTest
11 | NotebookFileLineBreakTest
12 | NotebookDataPosition[ 158, 7]
13 | NotebookDataLength[ 19271, 526]
14 | NotebookOptionsPosition[ 13043, 393]
15 | NotebookOutlinePosition[ 14206, 426]
16 | CellTagsIndexPosition[ 14127, 421]
17 | WindowFrame->Normal*)
18 |
19 | (* Beginning of Notebook Content *)
20 | Notebook[{
21 |
22 | Cell[CellGroupData[{
23 | Cell["ChatGPTPluginDeployment", "ObjectName",
24 | CellID->1656834665,ExpressionUUID->"404870b7-ee89-4231-8e9e-16625f04e6fe"],
25 |
26 | Cell[TextData[{
27 | Cell[" ", "ModInfo",ExpressionUUID->"5f275097-662e-4eff-a659-873e741ab1a1"],
28 | Cell[BoxData[
29 | RowBox[{"ChatGPTPluginDeployment", "[",
30 | StyleBox["\[Ellipsis]", "TR"], "]"}]], "InlineFormula",ExpressionUUID->
31 | "2f4c1a68-68cb-4b6f-967a-6a977bfb602e"],
32 | " \[LineSeparator]represents a locally deployed ChatGPT plugin."
33 | }], "Usage",
34 | CellChangeTimes->{{3.890925483756669*^9, 3.890925501242968*^9}},
35 | CellID->2147247653,ExpressionUUID->"f95abe43-f5da-4b67-8c3f-0ecd695c29e2"],
36 |
37 | Cell[TextData[{
38 | "A web server represented by a ",
39 | Cell[BoxData[
40 | ButtonBox["ChatGPTPluginDeployment",
41 | BaseStyle->"Link",
42 | ButtonData->
43 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeployment"]],
44 | "InlineFormula",ExpressionUUID->"56b41f20-5c04-43ab-abe5-a8c3e74570b3"],
45 | " object can be stopped with ",
46 | Cell[BoxData[
47 | ButtonBox["DeleteObject",
48 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
49 | "c058591a-073e-4ca0-adf6-3f7e4a66a0b3"],
50 | "."
51 | }], "Notes",
52 | CellChangeTimes->{{3.890925505593273*^9, 3.890925531390181*^9}},
53 | CellID->328616136,ExpressionUUID->"aea30085-76dd-4bf9-8a84-64b7e63a3453"]
54 | }, Open ]],
55 |
56 | Cell[CellGroupData[{
57 |
58 | Cell[TextData[{
59 | "Tech Notes",
60 | Cell[BoxData[
61 | TemplateBox[{"TechNotes",
62 | Cell[
63 | BoxData[
64 | FrameBox[
65 | Cell["Insert links to related tech notes.", "MoreInfoText"], BaseStyle ->
66 | "IFrameBox"]], "MoreInfoTextOuter"]},
67 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
68 | "6f9f6b5a-5dca-4eab-9927-501ae6b01c76"]
69 | }], "TechNotesSection",
70 | CellID->1870941315,ExpressionUUID->"3790453f-d93a-4b3d-82ab-a7d635d3efbb"],
71 |
72 | Cell["XXXX", "Tutorials",
73 | CellID->1455121831,ExpressionUUID->"d5018928-6b98-47d6-8337-ac8a7ee16ce0"]
74 | }, Open ]],
75 |
76 | Cell[CellGroupData[{
77 |
78 | Cell[TextData[{
79 | "Related Links",
80 | Cell[BoxData[
81 | TemplateBox[{"RelatedLinks",
82 | Cell[
83 | BoxData[
84 | FrameBox[
85 | Cell[
86 | "Insert links to any related page, including web pages.",
87 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
88 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
89 | "c0e93f84-db76-4678-b0bd-ddaf7d24c060"]
90 | }], "RelatedLinksSection",
91 | CellID->688841581,ExpressionUUID->"3c65deb2-367f-4752-95cc-d83aea5dbd27"],
92 |
93 | Cell["XXXX", "RelatedLinks",
94 | CellID->276110890,ExpressionUUID->"c0792c20-e21e-4481-99a4-9818f1ce0041"]
95 | }, Open ]],
96 |
97 | Cell[CellGroupData[{
98 |
99 | Cell[TextData[{
100 | "See Also",
101 | Cell[BoxData[
102 | TemplateBox[{"SeeAlso",
103 | Cell[
104 | BoxData[
105 | FrameBox[
106 | Cell[
107 | "Insert links to any related reference (function) pages.",
108 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
109 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
110 | "cbff30b1-797e-4f94-92ff-bfa55249405d"]
111 | }], "SeeAlsoSection",
112 | CellID->2031050710,ExpressionUUID->"6c559eeb-c1c2-4873-a3cd-e73d658e9191"],
113 |
114 | Cell[TextData[{
115 | Cell[BoxData[
116 | ButtonBox["ChatGPTPluginDeploy",
117 | BaseStyle->"Link",
118 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeploy"]],
119 | "InlineSeeAlsoFunction",
120 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
121 | "3a504880-23a6-438b-99f7-d901380d392d"],
122 | StyleBox[" \[FilledVerySmallSquare] ", "InlineSeparator"],
123 | Cell[BoxData[
124 | ButtonBox["ChatGPTPluginCloudDeployment",
125 | BaseStyle->"Link",
126 | ButtonData->
127 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment"]],
128 | "InlineSeeAlsoFunction",
129 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
130 | "d1b509d5-5a70-4a26-93da-763b9a5028c5"],
131 | Cell[BoxData[
132 | RowBox[{
133 | Cell[TextData[StyleBox[
134 | " \[FilledVerySmallSquare] ", "InlineSeparator"]],ExpressionUUID->
135 | "972d3f80-4e64-46c7-a475-1baab72c9ab1"],
136 | DynamicModuleBox[{$CellContext`nbobj$$ = NotebookObject[
137 | "cd7595e7-5f90-44cd-a4b1-424f558f203b",
138 | "e9f18251-4226-4e89-9c4a-7ed6c6f871f9"], $CellContext`cellobj$$ =
139 | CellObject[
140 | "4a3cba65-d7a6-4455-85b7-149e7e1476ad",
141 | "19d17e16-0f78-45b1-935a-dd3ba23d7817"]},
142 | TemplateBox[{
143 | GraphicsBox[{{
144 | Thickness[0.06],
145 | StrokeForm[
146 | Hue[0.4167, 0.406, 0.502]],
147 | CircleBox[{0, 0}]}, {
148 | Thickness[0.06],
149 | StrokeForm[
150 | Hue[0.4167, 0.406, 0.502]],
151 | LineBox[{{0, 0.62}, {0, -0.62}}]}, {
152 | Thickness[0.06],
153 | StrokeForm[
154 | Hue[0.4167, 0.406, 0.502]],
155 | LineBox[{{-0.62, 0}, {0.62, 0}}]}},
156 | ImagePadding -> {{1., 1.}, {2.4, 1.}}, ImageSize -> 16,
157 | PlotRange -> {{-1.06, 1.06}, {-1.06, 1.06}},
158 | BaselinePosition -> (Center ->
159 | Center)], $CellContext`nbobj$$, $CellContext`cellobj$$},
160 | "InlineListingAddButton"],
161 | Initialization:>($CellContext`nbobj$$ =
162 | EvaluationNotebook[]; $CellContext`cellobj$$ = EvaluationCell[])]}]],
163 | "InlineListingAddButton",ExpressionUUID->
164 | "4a3cba65-d7a6-4455-85b7-149e7e1476ad"]
165 | }], "SeeAlso",
166 | CellChangeTimes->{{3.890925870812668*^9, 3.890925878994259*^9}},
167 | CellID->1616713905,ExpressionUUID->"69f2248c-1019-4dd5-952d-bcc508015a31"]
168 | }, Open ]],
169 |
170 | Cell[CellGroupData[{
171 |
172 | Cell["Related Guides", "MoreAboutSection",
173 | CellChangeTimes->{{3.843042374232973*^9, 3.843042375545676*^9}},
174 | CellID->15844,ExpressionUUID->"f76bd379-f3d6-4eff-b1aa-40a676911bd7"],
175 |
176 | Cell["XXXX", "MoreAbout",
177 | CellID->266290108,ExpressionUUID->"fa1c376f-73bd-49c6-a52f-b33388ff06bf"]
178 | }, Open ]],
179 |
180 | Cell[CellGroupData[{
181 |
182 | Cell[TextData[{
183 | "Examples Initialization",
184 | Cell[BoxData[
185 | TemplateBox[{"ExamplesInitialization",
186 | Cell[
187 | BoxData[
188 | FrameBox[
189 | Cell[
190 | "Input that is to be evaluated before any examples are run, e.g. \
191 | Needs[\[Ellipsis]].", "MoreInfoText"], BaseStyle -> "IFrameBox"]],
192 | "MoreInfoTextOuter"]},
193 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
194 | "5526ac52-d5cb-428e-89a7-20e402395a32"]
195 | }], "ExamplesInitializationSection",
196 | CellID->181924808,ExpressionUUID->"80def4c3-0b20-4b02-9824-51c5f81f9646"],
197 |
198 | Cell[BoxData[
199 | RowBox[{"Needs", "[", "\"\\"",
200 | "]"}]], "ExampleInitialization",
201 | CellID->1741018375,ExpressionUUID->"e4fb63bb-305a-4b2f-91f2-e009b65c8d82"]
202 | }, Open ]],
203 |
204 | Cell[BoxData[
205 | InterpretationBox[GridBox[{
206 | {
207 | StyleBox[
208 | RowBox[{"Basic", " ", "Examples"}], "PrimaryExamplesSection"],
209 | ButtonBox[
210 | RowBox[{
211 | RowBox[{"More", " ", "Examples"}], " ", "\[RightTriangle]"}],
212 | BaseStyle->"ExtendedExamplesLink",
213 | ButtonData:>"ExtendedExamples"]}
214 | }],
215 | $Line = 0; Null]], "PrimaryExamplesSection",
216 | CellID->1831138250,ExpressionUUID->"e87e4bd6-c73a-452b-8cf1-90fc2a64a18f"],
217 |
218 | Cell[CellGroupData[{
219 |
220 | Cell[TextData[{
221 | "More Examples",
222 | Cell[BoxData[
223 | TemplateBox[{"MoreExamples",
224 | Cell[
225 | BoxData[
226 | FrameBox[
227 | Cell["Extended examples in standardized sections.", "MoreInfoText"],
228 | BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
229 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
230 | "755ae3b3-f8d6-4c7d-93f2-e31d25c840f7"]
231 | }], "ExtendedExamplesSection",
232 | CellTags->"ExtendedExamples",
233 | CellID->352422593,ExpressionUUID->"d9844610-4393-468c-b5a6-b92defa44f24"],
234 |
235 | Cell[BoxData[
236 | InterpretationBox[Cell[
237 | "Scope", "ExampleSection",ExpressionUUID->
238 | "7017105a-749f-46e2-9e02-18f197acdb45"],
239 | $Line = 0; Null]], "ExampleSection",
240 | CellID->406622125,ExpressionUUID->"a7206a23-366b-405f-9b73-634144b1b9dd"],
241 |
242 | Cell[BoxData[
243 | InterpretationBox[Cell[
244 | "Generalizations & Extensions", "ExampleSection",ExpressionUUID->
245 | "f932881b-dc11-4209-9557-a1d9abb6baa1"],
246 | $Line = 0; Null]], "ExampleSection",
247 | CellID->805090121,ExpressionUUID->"5af2285d-43e6-4f24-9c2b-813c96dedb44"],
248 |
249 | Cell[CellGroupData[{
250 |
251 | Cell[BoxData[
252 | InterpretationBox[Cell[
253 | "Options", "ExampleSection",ExpressionUUID->
254 | "39ca370e-e5ef-4072-b357-50818472fb4c"],
255 | $Line = 0; Null]], "ExampleSection",
256 | CellID->2002687547,ExpressionUUID->"39c73c8a-0f1c-4ff6-9147-bf7b95aca5dc"],
257 |
258 | Cell[BoxData[
259 | InterpretationBox[Cell[
260 | "XXXX", "ExampleSubsection",ExpressionUUID->
261 | "d5024813-d7db-4f90-9e82-ac1d2f08c057"],
262 | $Line = 0; Null]], "ExampleSubsection",
263 | CellID->1658402998,ExpressionUUID->"ac5375e0-616f-476a-9fd1-251ea266b58a"],
264 |
265 | Cell[BoxData[
266 | InterpretationBox[Cell[
267 | "XXXX", "ExampleSubsection",ExpressionUUID->
268 | "d7c8fc52-cbe2-4990-b2fa-db4b2e2f8014"],
269 | $Line = 0; Null]], "ExampleSubsection",
270 | CellID->588932973,ExpressionUUID->"21390d4a-d4d8-4d60-9a32-5bdbbbc7611c"]
271 | }, Open ]],
272 |
273 | Cell[BoxData[
274 | InterpretationBox[Cell[
275 | "Applications", "ExampleSection",ExpressionUUID->
276 | "d64c8c6e-adc1-46cd-8303-1110a97989e3"],
277 | $Line = 0; Null]], "ExampleSection",
278 | CellID->444348188,ExpressionUUID->"3cd33013-e516-4a5c-b75e-6af21c7c6bb8"],
279 |
280 | Cell[BoxData[
281 | InterpretationBox[Cell[
282 | "Properties & Relations", "ExampleSection",ExpressionUUID->
283 | "95abca98-76c2-4f89-a65c-ed2034933533"],
284 | $Line = 0; Null]], "ExampleSection",
285 | CellID->1359355097,ExpressionUUID->"06500de3-50bb-4b62-92f2-20810b24cc3e"],
286 |
287 | Cell[BoxData[
288 | InterpretationBox[Cell[
289 | "Possible Issues", "ExampleSection",ExpressionUUID->
290 | "d0883d3e-5999-4d4b-b114-7246918a8d10"],
291 | $Line = 0; Null]], "ExampleSection",
292 | CellID->1750078493,ExpressionUUID->"3d9cc070-ec4e-4f5c-b798-280e862ff0d2"],
293 |
294 | Cell[BoxData[
295 | InterpretationBox[Cell[
296 | "Interactive Examples", "ExampleSection",ExpressionUUID->
297 | "38636134-49a1-4175-9ebb-88d6aefc3f59"],
298 | $Line = 0; Null]], "ExampleSection",
299 | CellID->1633202539,ExpressionUUID->"a20da58a-0525-48d1-af10-f94d23aa96a1"],
300 |
301 | Cell[BoxData[
302 | InterpretationBox[Cell[
303 | "Neat Examples", "ExampleSection",ExpressionUUID->
304 | "a34f6daa-f8fa-4041-8031-48d4989122a5"],
305 | $Line = 0; Null]], "ExampleSection",
306 | CellID->99097019,ExpressionUUID->"76f5aa07-5d13-410f-b8a8-a7e4e8927064"]
307 | }, Open ]],
308 |
309 | Cell[CellGroupData[{
310 |
311 | Cell["Metadata", "MetadataSection",
312 | CellID->1223771908,ExpressionUUID->"d4e95ed9-accf-4290-92f3-b2c73c090709"],
313 |
314 | Cell[TextData[{
315 | "New in: ",
316 | Cell["XX", "HistoryData",
317 | CellTags->"New",ExpressionUUID->"f62f4a08-c802-4b29-9183-6db69861b6b8"],
318 | " | Modified in: ",
319 | Cell[" ", "HistoryData",
320 | CellTags->"Modified",ExpressionUUID->"44852355-dc92-46ce-b4bf-a237c3dbaad4"],
321 | " | Obsolete in: ",
322 | Cell[" ", "HistoryData",
323 | CellTags->"Obsolete",ExpressionUUID->
324 | "419ba91c-f389-4831-b977-2767b90b72e5"]
325 | }], "History",
326 | CellID->1483570437,ExpressionUUID->"bdfedd69-c817-44dd-a0e1-c6b0aff1f338"],
327 |
328 | Cell[CellGroupData[{
329 |
330 | Cell[TextData[{
331 | "Categorization",
332 | Cell[BoxData[
333 | TemplateBox[{"Metadata",
334 | Cell[
335 | BoxData[
336 | FrameBox[
337 | Cell[
338 | "Metadata such as page URI, context, and type of documentation page.",
339 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
340 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
341 | "2e0165b8-e0a8-4752-8487-9e8f134e0ca7"]
342 | }], "CategorizationSection",
343 | CellID->2083192989,ExpressionUUID->"915b098a-3265-47df-9b21-75b93d2fe1ad"],
344 |
345 | Cell["Symbol", "Categorization",
346 | CellLabel->"Entity Type",
347 | CellID->1798669082,ExpressionUUID->"7b1c11e5-df3f-4aaf-9d64-510987e73e4c"],
348 |
349 | Cell["Wolfram/ChatGPTPluginKit", "Categorization",
350 | CellLabel->"Paclet Name",
351 | CellID->103962355,ExpressionUUID->"79c5ad63-dc4b-4156-b775-cf8010e28b66"],
352 |
353 | Cell["Wolfram`ChatGPTPluginKit`", "Categorization",
354 | CellLabel->"Context",
355 | CellID->1391095474,ExpressionUUID->"461041f7-e4f3-4470-8075-5c582e403a16"],
356 |
357 | Cell["Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeployment", "Categorization",
358 | CellLabel->"URI",
359 | CellID->487166629,ExpressionUUID->"e92a8c67-8ce6-41c8-9c3a-ced264829a82"]
360 | }, Closed]],
361 |
362 | Cell[CellGroupData[{
363 |
364 | Cell["Keywords", "KeywordsSection",
365 | CellID->1601871239,ExpressionUUID->"c198aa77-6a80-41b7-abf5-455b9e46d6b9"],
366 |
367 | Cell["XXXX", "Keywords",
368 | CellID->1794915081,ExpressionUUID->"1e84f3ad-ccaa-4fef-b694-4b48bce35eff"]
369 | }, Closed]],
370 |
371 | Cell[CellGroupData[{
372 |
373 | Cell["Syntax Templates", "TemplatesSection",
374 | CellID->1434976958,ExpressionUUID->"2bdf4a04-250b-48f2-a994-4f68c9a08904"],
375 |
376 | Cell[BoxData[""], "Template",
377 | CellLabel->"Additional Function Template",
378 | CellID->1416377296,ExpressionUUID->"e97a3e26-8194-4d56-9cce-4e03c58edc7a"],
379 |
380 | Cell[BoxData[""], "Template",
381 | CellLabel->"Arguments Pattern",
382 | CellID->196986877,ExpressionUUID->"601a30e3-9168-4d7d-bdf8-218498e6644e"],
383 |
384 | Cell[BoxData[""], "Template",
385 | CellLabel->"Local Variables",
386 | CellID->1486141712,ExpressionUUID->"4474f76c-2776-4bb1-a783-9c6e34d97522"],
387 |
388 | Cell[BoxData[""], "Template",
389 | CellLabel->"Color Equal Signs",
390 | CellID->201455327,ExpressionUUID->"d6d7e560-f2ff-4397-b9e1-8c15a0475b1d"]
391 | }, Closed]]
392 | }, Open ]]
393 | },
394 | WindowSize->{700, 770},
395 | WindowMargins->{{436, Automatic}, {Automatic, 50}},
396 | TaggingRules->{
397 | "DocuToolsSettingsInternal" -> {
398 | "$PacletVersion" -> "0.10.2323", "$ApplicationName" -> "Mathematica",
399 | "$LinkBase" -> "Mathematica", "$ApplicationDirectory" ->
400 | "/Users/christopher/cvs/Mathematica/", "$DocumentationDirectory" ->
401 | "/Users/christopher/cvs/Mathematica/Documentation/English/",
402 | "$UseNewPageDialog" -> ""},
403 | "WelcomeScreenSettings" -> {"FEStarting" -> False}, "Paclet" ->
404 | "Wolfram/ChatGPTPluginKit"},
405 | FrontEndVersion->"13.2 for Mac OS X x86 (64-bit) (November 18, 2022)",
406 | StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "FunctionPageStylesExt.nb",
407 | CharacterEncoding -> "UTF-8"],
408 | ExpressionUUID->"cd7595e7-5f90-44cd-a4b1-424f558f203b"
409 | ]
410 | (* End of Notebook Content *)
411 |
412 | (* Internal cache information *)
413 | (*CellTagsOutline
414 | CellTagsIndex->{
415 | "ExtendedExamples"->{
416 | Cell[7220, 219, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"d9844610-4393-468c-b5a6-b92defa44f24",
417 | CellTags->"ExtendedExamples",
418 | CellID->352422593]}
419 | }
420 | *)
421 | (*CellTagsIndex
422 | CellTagsIndex->{
423 | {"ExtendedExamples", 13934, 414}
424 | }
425 | *)
426 | (*NotebookFileOutline
427 | Notebook[{
428 | Cell[CellGroupData[{
429 | Cell[580, 22, 121, 1, 74, "ObjectName",ExpressionUUID->"404870b7-ee89-4231-8e9e-16625f04e6fe",
430 | CellID->1656834665],
431 | Cell[704, 25, 492, 9, 79, "Usage",ExpressionUUID->"f95abe43-f5da-4b67-8c3f-0ecd695c29e2",
432 | CellID->2147247653],
433 | Cell[1199, 36, 622, 16, 28, "Notes",ExpressionUUID->"aea30085-76dd-4bf9-8a84-64b7e63a3453",
434 | CellID->328616136]
435 | }, Open ]],
436 | Cell[CellGroupData[{
437 | Cell[1858, 57, 436, 12, 47, "TechNotesSection",ExpressionUUID->"3790453f-d93a-4b3d-82ab-a7d635d3efbb",
438 | CellID->1870941315],
439 | Cell[2297, 71, 101, 1, 19, "Tutorials",ExpressionUUID->"d5018928-6b98-47d6-8337-ac8a7ee16ce0",
440 | CellID->1455121831]
441 | }, Open ]],
442 | Cell[CellGroupData[{
443 | Cell[2435, 77, 472, 13, 34, "RelatedLinksSection",ExpressionUUID->"3c65deb2-367f-4752-95cc-d83aea5dbd27",
444 | CellID->688841581],
445 | Cell[2910, 92, 103, 1, 19, "RelatedLinks",ExpressionUUID->"c0792c20-e21e-4481-99a4-9818f1ce0041",
446 | CellID->276110890]
447 | }, Open ]],
448 | Cell[CellGroupData[{
449 | Cell[3050, 98, 459, 13, 34, "SeeAlsoSection",ExpressionUUID->"6c559eeb-c1c2-4873-a3cd-e73d658e9191",
450 | CellID->2031050710],
451 | Cell[3512, 113, 2151, 53, 23, "SeeAlso",ExpressionUUID->"69f2248c-1019-4dd5-952d-bcc508015a31",
452 | CellID->1616713905]
453 | }, Open ]],
454 | Cell[CellGroupData[{
455 | Cell[5700, 171, 179, 2, 34, "MoreAboutSection",ExpressionUUID->"f76bd379-f3d6-4eff-b1aa-40a676911bd7",
456 | CellID->15844],
457 | Cell[5882, 175, 100, 1, 19, "MoreAbout",ExpressionUUID->"fa1c376f-73bd-49c6-a52f-b33388ff06bf",
458 | CellID->266290108]
459 | }, Open ]],
460 | Cell[CellGroupData[{
461 | Cell[6019, 181, 530, 14, 70, "ExamplesInitializationSection",ExpressionUUID->"80def4c3-0b20-4b02-9824-51c5f81f9646",
462 | CellID->181924808],
463 | Cell[6552, 197, 185, 3, 47, "ExampleInitialization",ExpressionUUID->"e4fb63bb-305a-4b2f-91f2-e009b65c8d82",
464 | CellID->1741018375]
465 | }, Open ]],
466 | Cell[6752, 203, 443, 12, 73, "PrimaryExamplesSection",ExpressionUUID->"e87e4bd6-c73a-452b-8cf1-90fc2a64a18f",
467 | CellID->1831138250],
468 | Cell[CellGroupData[{
469 | Cell[7220, 219, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"d9844610-4393-468c-b5a6-b92defa44f24",
470 | CellTags->"ExtendedExamples",
471 | CellID->352422593],
472 | Cell[7710, 234, 241, 5, 35, "ExampleSection",ExpressionUUID->"a7206a23-366b-405f-9b73-634144b1b9dd",
473 | CellID->406622125],
474 | Cell[7954, 241, 264, 5, 23, "ExampleSection",ExpressionUUID->"5af2285d-43e6-4f24-9c2b-813c96dedb44",
475 | CellID->805090121],
476 | Cell[CellGroupData[{
477 | Cell[8243, 250, 244, 5, 23, "ExampleSection",ExpressionUUID->"39c73c8a-0f1c-4ff6-9147-bf7b95aca5dc",
478 | CellID->2002687547],
479 | Cell[8490, 257, 247, 5, 26, "ExampleSubsection",ExpressionUUID->"ac5375e0-616f-476a-9fd1-251ea266b58a",
480 | CellID->1658402998],
481 | Cell[8740, 264, 246, 5, 22, "ExampleSubsection",ExpressionUUID->"21390d4a-d4d8-4d60-9a32-5bdbbbc7611c",
482 | CellID->588932973]
483 | }, Open ]],
484 | Cell[9001, 272, 248, 5, 35, "ExampleSection",ExpressionUUID->"3cd33013-e516-4a5c-b75e-6af21c7c6bb8",
485 | CellID->444348188],
486 | Cell[9252, 279, 259, 5, 23, "ExampleSection",ExpressionUUID->"06500de3-50bb-4b62-92f2-20810b24cc3e",
487 | CellID->1359355097],
488 | Cell[9514, 286, 252, 5, 23, "ExampleSection",ExpressionUUID->"3d9cc070-ec4e-4f5c-b798-280e862ff0d2",
489 | CellID->1750078493],
490 | Cell[9769, 293, 257, 5, 23, "ExampleSection",ExpressionUUID->"a20da58a-0525-48d1-af10-f94d23aa96a1",
491 | CellID->1633202539],
492 | Cell[10029, 300, 248, 5, 23, "ExampleSection",ExpressionUUID->"76f5aa07-5d13-410f-b8a8-a7e4e8927064",
493 | CellID->99097019]
494 | }, Open ]],
495 | Cell[CellGroupData[{
496 | Cell[10314, 310, 111, 1, 72, "MetadataSection",ExpressionUUID->"d4e95ed9-accf-4290-92f3-b2c73c090709",
497 | CellID->1223771908],
498 | Cell[10428, 313, 477, 12, 26, "History",ExpressionUUID->"bdfedd69-c817-44dd-a0e1-c6b0aff1f338",
499 | CellID->1483570437],
500 | Cell[CellGroupData[{
501 | Cell[10930, 329, 485, 13, 21, "CategorizationSection",ExpressionUUID->"915b098a-3265-47df-9b21-75b93d2fe1ad",
502 | CellID->2083192989],
503 | Cell[11418, 344, 135, 2, 70, "Categorization",ExpressionUUID->"7b1c11e5-df3f-4aaf-9d64-510987e73e4c",
504 | CellID->1798669082],
505 | Cell[11556, 348, 152, 2, 70, "Categorization",ExpressionUUID->"79c5ad63-dc4b-4156-b775-cf8010e28b66",
506 | CellID->103962355],
507 | Cell[11711, 352, 150, 2, 70, "Categorization",ExpressionUUID->"461041f7-e4f3-4470-8075-5c582e403a16",
508 | CellID->1391095474],
509 | Cell[11864, 356, 172, 2, 70, "Categorization",ExpressionUUID->"e92a8c67-8ce6-41c8-9c3a-ced264829a82",
510 | CellID->487166629]
511 | }, Closed]],
512 | Cell[CellGroupData[{
513 | Cell[12073, 363, 111, 1, 21, "KeywordsSection",ExpressionUUID->"c198aa77-6a80-41b7-abf5-455b9e46d6b9",
514 | CellID->1601871239],
515 | Cell[12187, 366, 100, 1, 70, "Keywords",ExpressionUUID->"1e84f3ad-ccaa-4fef-b694-4b48bce35eff",
516 | CellID->1794915081]
517 | }, Closed]],
518 | Cell[CellGroupData[{
519 | Cell[12324, 372, 120, 1, 21, "TemplatesSection",ExpressionUUID->"2bdf4a04-250b-48f2-a994-4f68c9a08904",
520 | CellID->1434976958],
521 | Cell[12447, 375, 149, 2, 70, "Template",ExpressionUUID->"e97a3e26-8194-4d56-9cce-4e03c58edc7a",
522 | CellID->1416377296],
523 | Cell[12599, 379, 137, 2, 70, "Template",ExpressionUUID->"601a30e3-9168-4d7d-bdf8-218498e6644e",
524 | CellID->196986877],
525 | Cell[12739, 383, 136, 2, 70, "Template",ExpressionUUID->"4474f76c-2776-4bb1-a783-9c6e34d97522",
526 | CellID->1486141712],
527 | Cell[12878, 387, 137, 2, 70, "Template",ExpressionUUID->"d6d7e560-f2ff-4397-b9e1-8c15a0475b1d",
528 | CellID->201455327]
529 | }, Closed]]
530 | }, Open ]]
531 | }
532 | ]
533 | *)
534 |
535 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/ChatGPTPluginCloudDeployment.nb:
--------------------------------------------------------------------------------
1 | (* Content-type: application/vnd.wolfram.mathematica *)
2 |
3 | (*** Wolfram Notebook File ***)
4 | (* http://www.wolfram.com/nb *)
5 |
6 | (* CreatedBy='Mathematica 13.2' *)
7 |
8 | (*CacheID: 234*)
9 | (* Internal cache information:
10 | NotebookFileLineBreakTest
11 | NotebookFileLineBreakTest
12 | NotebookDataPosition[ 158, 7]
13 | NotebookDataLength[ 19474, 534]
14 | NotebookOptionsPosition[ 13255, 401]
15 | NotebookOutlinePosition[ 14416, 434]
16 | CellTagsIndexPosition[ 14337, 429]
17 | WindowFrame->Normal*)
18 |
19 | (* Beginning of Notebook Content *)
20 | Notebook[{
21 |
22 | Cell[CellGroupData[{
23 | Cell["ChatGPTPluginCloudDeployment", "ObjectName",
24 | CellID->276280783,ExpressionUUID->"dd4a09b6-9ad2-4448-a624-5ad8ec446a7f"],
25 |
26 | Cell[TextData[{
27 | Cell[" ", "ModInfo",ExpressionUUID->"5e4f26ca-f347-4e59-9a4a-9f52df141b81"],
28 | Cell[BoxData[
29 | RowBox[{"ChatGPTPluginCloudDeployment", "[",
30 | StyleBox["\[Ellipsis]", "TR"], "]"}]], "InlineFormula",ExpressionUUID->
31 | "9cc1051c-5a9b-4a78-a861-4c3ee34f186e"],
32 | " \[LineSeparator]represents a cloud deployed ChatGPT plugin."
33 | }], "Usage",
34 | CellChangeTimes->{{3.890925814565531*^9, 3.890925821412292*^9}},
35 | CellID->591475067,ExpressionUUID->"ca51e9b6-8efa-4d30-9266-4252cc11efd2"],
36 |
37 | Cell[TextData[{
38 | "The ",
39 | Cell[BoxData[
40 | ButtonBox["CloudObject",
41 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
42 | "47313981-4007-47c5-8b90-a9f10359be9b"],
43 | " objects represented by a ",
44 | Cell[BoxData[
45 | ButtonBox["ChatGPTPluginCloudDeployment",
46 | BaseStyle->"Link",
47 | ButtonData->
48 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment"]],
49 | "InlineFormula",ExpressionUUID->"858b69ce-3512-4b0d-a624-f03cede831fa"],
50 | " can be deleted with ",
51 | Cell[BoxData[
52 | ButtonBox["DeleteObject",
53 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
54 | "4b6d6278-e0a6-43b2-8256-8900058fca82"],
55 | "."
56 | }], "Notes",
57 | CellChangeTimes->{{3.890925505593273*^9, 3.890925531390181*^9}, {
58 | 3.89092582905414*^9, 3.8909258502735863`*^9}},
59 | CellID->328616136,ExpressionUUID->"c8857a42-22c3-4e78-b073-40fe753a000b"]
60 | }, Open ]],
61 |
62 | Cell[CellGroupData[{
63 |
64 | Cell[TextData[{
65 | "Tech Notes",
66 | Cell[BoxData[
67 | TemplateBox[{"TechNotes",
68 | Cell[
69 | BoxData[
70 | FrameBox[
71 | Cell["Insert links to related tech notes.", "MoreInfoText"], BaseStyle ->
72 | "IFrameBox"]], "MoreInfoTextOuter"]},
73 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
74 | "6f49225e-4eb6-481a-b6d8-ba1960b21716"]
75 | }], "TechNotesSection",
76 | CellID->118135349,ExpressionUUID->"7c9716dd-d075-462d-b87a-cd9a3c267074"],
77 |
78 | Cell["XXXX", "Tutorials",
79 | CellID->1225920815,ExpressionUUID->"203f05bd-2be6-4327-9320-5f7f184c07ff"]
80 | }, Open ]],
81 |
82 | Cell[CellGroupData[{
83 |
84 | Cell[TextData[{
85 | "Related Links",
86 | Cell[BoxData[
87 | TemplateBox[{"RelatedLinks",
88 | Cell[
89 | BoxData[
90 | FrameBox[
91 | Cell[
92 | "Insert links to any related page, including web pages.",
93 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
94 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
95 | "ba911660-4868-4342-b92d-d528dc8ae56a"]
96 | }], "RelatedLinksSection",
97 | CellID->1093028387,ExpressionUUID->"e6e3d0f0-b420-4a55-8766-63ea8dabbd27"],
98 |
99 | Cell["XXXX", "RelatedLinks",
100 | CellID->952983871,ExpressionUUID->"c791e3d2-3c43-4691-b82f-43419f0b18c9"]
101 | }, Open ]],
102 |
103 | Cell[CellGroupData[{
104 |
105 | Cell[TextData[{
106 | "See Also",
107 | Cell[BoxData[
108 | TemplateBox[{"SeeAlso",
109 | Cell[
110 | BoxData[
111 | FrameBox[
112 | Cell[
113 | "Insert links to any related reference (function) pages.",
114 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
115 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
116 | "0fa56d9b-cdfb-42b9-ba69-d19f6d58e378"]
117 | }], "SeeAlsoSection",
118 | CellID->866880571,ExpressionUUID->"d78cf2d9-78dc-45ec-bb59-19cf645f5aad"],
119 |
120 | Cell[TextData[{
121 | Cell[BoxData[
122 | ButtonBox["ChatGPTPluginCloudDeploy",
123 | BaseStyle->"Link",
124 | ButtonData->
125 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeploy"]],
126 | "InlineSeeAlsoFunction",
127 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
128 | "3f192f79-a8a2-48b2-8948-8227117b0770"],
129 | StyleBox[" \[FilledVerySmallSquare] ", "InlineSeparator"],
130 | Cell[BoxData[
131 | ButtonBox["ChatGPTPluginDeployment",
132 | BaseStyle->"Link",
133 | ButtonData->
134 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeployment"]],
135 | "InlineSeeAlsoFunction",
136 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
137 | "18f7204d-4d51-4c02-8b8b-103f7cae5660"],
138 | Cell[BoxData[
139 | RowBox[{
140 | Cell[TextData[StyleBox[
141 | " \[FilledVerySmallSquare] ", "InlineSeparator"]],ExpressionUUID->
142 | "a87b9630-385b-4962-8bb4-a36c8514a5a1"],
143 | DynamicModuleBox[{$CellContext`nbobj$$ = NotebookObject[
144 | "a4e12d4e-0047-4fbe-9ef5-a8a7bd667b43",
145 | "8351f38f-7bf1-4b94-954a-3f43f45b9ba5"], $CellContext`cellobj$$ =
146 | CellObject[
147 | "a047d56b-93fe-4d3e-83b9-526633d19ffc",
148 | "e34bcb68-adf5-4045-8e7a-4d3dae1560d4"]},
149 | TemplateBox[{
150 | GraphicsBox[{{
151 | Thickness[0.06],
152 | StrokeForm[
153 | Hue[0.4167, 0.406, 0.502]],
154 | CircleBox[{0, 0}]}, {
155 | Thickness[0.06],
156 | StrokeForm[
157 | Hue[0.4167, 0.406, 0.502]],
158 | LineBox[{{0, 0.62}, {0, -0.62}}]}, {
159 | Thickness[0.06],
160 | StrokeForm[
161 | Hue[0.4167, 0.406, 0.502]],
162 | LineBox[{{-0.62, 0}, {0.62, 0}}]}},
163 | ImagePadding -> {{1., 1.}, {2.4, 1.}}, ImageSize -> 16,
164 | PlotRange -> {{-1.06, 1.06}, {-1.06, 1.06}},
165 | BaselinePosition -> (Center ->
166 | Center)], $CellContext`nbobj$$, $CellContext`cellobj$$},
167 | "InlineListingAddButton"],
168 | Initialization:>($CellContext`nbobj$$ =
169 | EvaluationNotebook[]; $CellContext`cellobj$$ = EvaluationCell[])]}]],
170 | "InlineListingAddButton",ExpressionUUID->
171 | "a047d56b-93fe-4d3e-83b9-526633d19ffc"]
172 | }], "SeeAlso",
173 | CellChangeTimes->{{3.890925883292036*^9, 3.890925891170388*^9}},
174 | CellID->1132695549,ExpressionUUID->"9117d650-044e-427f-b792-5f58bf8903d0"]
175 | }, Open ]],
176 |
177 | Cell[CellGroupData[{
178 |
179 | Cell["Related Guides", "MoreAboutSection",
180 | CellChangeTimes->{{3.843042374232973*^9, 3.843042375545676*^9}},
181 | CellID->1919045035,ExpressionUUID->"c2e0f328-4189-426e-bcd5-c07e091343f4"],
182 |
183 | Cell["XXXX", "MoreAbout",
184 | CellID->333008952,ExpressionUUID->"a2707521-cf17-4ebc-951d-06bccaca953b"]
185 | }, Open ]],
186 |
187 | Cell[CellGroupData[{
188 |
189 | Cell[TextData[{
190 | "Examples Initialization",
191 | Cell[BoxData[
192 | TemplateBox[{"ExamplesInitialization",
193 | Cell[
194 | BoxData[
195 | FrameBox[
196 | Cell[
197 | "Input that is to be evaluated before any examples are run, e.g. \
198 | Needs[\[Ellipsis]].", "MoreInfoText"], BaseStyle -> "IFrameBox"]],
199 | "MoreInfoTextOuter"]},
200 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
201 | "7243cfa9-99eb-4d4f-8c9d-8bb0153252a3"]
202 | }], "ExamplesInitializationSection",
203 | CellID->539072182,ExpressionUUID->"eea14939-484d-40e3-ba43-0c128cc9eade"],
204 |
205 | Cell[BoxData[
206 | RowBox[{"Needs", "[", "\"\\"",
207 | "]"}]], "ExampleInitialization",
208 | CellID->2100139828,ExpressionUUID->"12a46c69-ee31-4d25-997e-3bd48b41f65e"]
209 | }, Open ]],
210 |
211 | Cell[BoxData[
212 | InterpretationBox[GridBox[{
213 | {
214 | StyleBox[
215 | RowBox[{"Basic", " ", "Examples"}], "PrimaryExamplesSection"],
216 | ButtonBox[
217 | RowBox[{
218 | RowBox[{"More", " ", "Examples"}], " ", "\[RightTriangle]"}],
219 | BaseStyle->"ExtendedExamplesLink",
220 | ButtonData:>"ExtendedExamples"]}
221 | }],
222 | $Line = 0; Null]], "PrimaryExamplesSection",
223 | CellID->1008867104,ExpressionUUID->"8eff1415-64d8-40f4-ad34-4306c22a0ff0"],
224 |
225 | Cell[CellGroupData[{
226 |
227 | Cell[TextData[{
228 | "More Examples",
229 | Cell[BoxData[
230 | TemplateBox[{"MoreExamples",
231 | Cell[
232 | BoxData[
233 | FrameBox[
234 | Cell["Extended examples in standardized sections.", "MoreInfoText"],
235 | BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
236 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
237 | "d29dcc8a-fb06-42cc-971c-c3ed3996cd02"]
238 | }], "ExtendedExamplesSection",
239 | CellTags->"ExtendedExamples",
240 | CellID->1646023863,ExpressionUUID->"2ebbb595-6865-4914-a219-05131b77fdec"],
241 |
242 | Cell[BoxData[
243 | InterpretationBox[Cell[
244 | "Scope", "ExampleSection",ExpressionUUID->
245 | "c8721a80-7718-4383-9110-4d43587ff02c"],
246 | $Line = 0; Null]], "ExampleSection",
247 | CellID->838724787,ExpressionUUID->"6b3c5fd1-e418-4e6b-820f-0d1f15516ef9"],
248 |
249 | Cell[BoxData[
250 | InterpretationBox[Cell[
251 | "Generalizations & Extensions", "ExampleSection",ExpressionUUID->
252 | "b5b8014c-18e5-451b-9dda-4a1791d3b351"],
253 | $Line = 0; Null]], "ExampleSection",
254 | CellID->364836201,ExpressionUUID->"1fc343bd-d4b2-4c71-b2a9-0303695f7f44"],
255 |
256 | Cell[CellGroupData[{
257 |
258 | Cell[BoxData[
259 | InterpretationBox[Cell[
260 | "Options", "ExampleSection",ExpressionUUID->
261 | "849d8f11-2884-4fd6-9e9c-58816dc928c6"],
262 | $Line = 0; Null]], "ExampleSection",
263 | CellID->736218022,ExpressionUUID->"1bddb740-c121-44d7-bfd6-5463e9fba731"],
264 |
265 | Cell[BoxData[
266 | InterpretationBox[Cell[
267 | "XXXX", "ExampleSubsection",ExpressionUUID->
268 | "bf1b3002-1acb-4e32-a447-7c375d2cb64f"],
269 | $Line = 0; Null]], "ExampleSubsection",
270 | CellID->1963005387,ExpressionUUID->"3e3b7af7-ada5-4b57-a1a0-52bcd612e821"],
271 |
272 | Cell[BoxData[
273 | InterpretationBox[Cell[
274 | "XXXX", "ExampleSubsection",ExpressionUUID->
275 | "f1ebed81-2c13-4b04-80fe-1a5bcea9f008"],
276 | $Line = 0; Null]], "ExampleSubsection",
277 | CellID->440270448,ExpressionUUID->"31c2aebb-d605-431e-952c-3e846db01b2d"]
278 | }, Open ]],
279 |
280 | Cell[BoxData[
281 | InterpretationBox[Cell[
282 | "Applications", "ExampleSection",ExpressionUUID->
283 | "c6fb0d31-952c-4fad-849c-1dfea8c9fa57"],
284 | $Line = 0; Null]], "ExampleSection",
285 | CellID->1544255621,ExpressionUUID->"eff6e0b1-1d69-489c-b0ae-4f4f7400988d"],
286 |
287 | Cell[BoxData[
288 | InterpretationBox[Cell[
289 | "Properties & Relations", "ExampleSection",ExpressionUUID->
290 | "d9328d5f-d15b-4c9c-95b9-ee180a600dc2"],
291 | $Line = 0; Null]], "ExampleSection",
292 | CellID->1964348152,ExpressionUUID->"98fbf779-c84c-4214-93e7-fe2aa2951ab4"],
293 |
294 | Cell[BoxData[
295 | InterpretationBox[Cell[
296 | "Possible Issues", "ExampleSection",ExpressionUUID->
297 | "d16031b4-affc-4dad-8e95-5dd686b86b1a"],
298 | $Line = 0; Null]], "ExampleSection",
299 | CellID->1533285333,ExpressionUUID->"0ebab53e-b18d-4529-bb4e-f600c0533bcb"],
300 |
301 | Cell[BoxData[
302 | InterpretationBox[Cell[
303 | "Interactive Examples", "ExampleSection",ExpressionUUID->
304 | "fd70ff2e-7fcb-45e0-afc4-35e22f337f90"],
305 | $Line = 0; Null]], "ExampleSection",
306 | CellID->122827731,ExpressionUUID->"c0059970-76a4-42af-8a92-7d084d60e665"],
307 |
308 | Cell[BoxData[
309 | InterpretationBox[Cell[
310 | "Neat Examples", "ExampleSection",ExpressionUUID->
311 | "100531fa-d99b-43ec-b987-7f58e82b3fef"],
312 | $Line = 0; Null]], "ExampleSection",
313 | CellID->633890150,ExpressionUUID->"bbb70f75-bf85-4bbf-a86e-cd1d2a4224a8"]
314 | }, Open ]],
315 |
316 | Cell[CellGroupData[{
317 |
318 | Cell["Metadata", "MetadataSection",
319 | CellID->125378283,ExpressionUUID->"f5f14665-ff7e-4667-a1ef-cc3a193a97cd"],
320 |
321 | Cell[TextData[{
322 | "New in: ",
323 | Cell["XX", "HistoryData",
324 | CellTags->"New",ExpressionUUID->"408add41-a847-427d-b83a-8b74c7f70896"],
325 | " | Modified in: ",
326 | Cell[" ", "HistoryData",
327 | CellTags->"Modified",ExpressionUUID->"f1200046-82ce-49b8-993f-31ad0fae97e7"],
328 | " | Obsolete in: ",
329 | Cell[" ", "HistoryData",
330 | CellTags->"Obsolete",ExpressionUUID->
331 | "caa6c24c-635b-41ca-beb4-632463ed4797"]
332 | }], "History",
333 | CellID->551344674,ExpressionUUID->"b254f954-cee6-437d-af78-5583cba51e93"],
334 |
335 | Cell[CellGroupData[{
336 |
337 | Cell[TextData[{
338 | "Categorization",
339 | Cell[BoxData[
340 | TemplateBox[{"Metadata",
341 | Cell[
342 | BoxData[
343 | FrameBox[
344 | Cell[
345 | "Metadata such as page URI, context, and type of documentation page.",
346 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
347 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
348 | "24a3f6a5-b744-4617-a694-f841b3902dfe"]
349 | }], "CategorizationSection",
350 | CellID->57999113,ExpressionUUID->"e7bb5861-cc50-4bb7-85a8-11735081b481"],
351 |
352 | Cell["Symbol", "Categorization",
353 | CellLabel->"Entity Type",
354 | CellID->1981000100,ExpressionUUID->"e2481a3e-ef81-4b92-bf68-7ef775971653"],
355 |
356 | Cell["Wolfram/ChatGPTPluginKit", "Categorization",
357 | CellLabel->"Paclet Name",
358 | CellID->82217612,ExpressionUUID->"2fd8ef08-af5e-42b7-9764-2476651432b5"],
359 |
360 | Cell["Wolfram`ChatGPTPluginKit`", "Categorization",
361 | CellLabel->"Context",
362 | CellID->999419863,ExpressionUUID->"7db31580-890a-4b29-8284-301147c1bac7"],
363 |
364 | Cell["Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment", \
365 | "Categorization",
366 | CellLabel->"URI",
367 | CellID->1780034254,ExpressionUUID->"cc051d90-bfdb-42d5-a528-acf1bac501f5"]
368 | }, Closed]],
369 |
370 | Cell[CellGroupData[{
371 |
372 | Cell["Keywords", "KeywordsSection",
373 | CellID->441020621,ExpressionUUID->"1b6234ab-f029-43b1-a315-1a061a6c933e"],
374 |
375 | Cell["XXXX", "Keywords",
376 | CellID->1267511350,ExpressionUUID->"9505d41b-c8e1-4a16-9fa9-20216baf597d"]
377 | }, Closed]],
378 |
379 | Cell[CellGroupData[{
380 |
381 | Cell["Syntax Templates", "TemplatesSection",
382 | CellID->25481210,ExpressionUUID->"f84b8985-1620-45ff-8b2e-c61b0834f140"],
383 |
384 | Cell[BoxData[""], "Template",
385 | CellLabel->"Additional Function Template",
386 | CellID->913450717,ExpressionUUID->"c1821235-e157-49c6-8c23-f501996ba0a2"],
387 |
388 | Cell[BoxData[""], "Template",
389 | CellLabel->"Arguments Pattern",
390 | CellID->5608216,ExpressionUUID->"be7101f3-2265-4823-990d-804092ab5d9d"],
391 |
392 | Cell[BoxData[""], "Template",
393 | CellLabel->"Local Variables",
394 | CellID->1915489491,ExpressionUUID->"63c3b9d5-60f1-4995-bf6b-217a61320376"],
395 |
396 | Cell[BoxData[""], "Template",
397 | CellLabel->"Color Equal Signs",
398 | CellID->704523060,ExpressionUUID->"97ddff26-f930-4df1-be3c-27ceada747e7"]
399 | }, Closed]]
400 | }, Open ]]
401 | },
402 | WindowSize->{700, 770},
403 | WindowMargins->{{Automatic, 405}, {Automatic, 62}},
404 | TaggingRules->{
405 | "DocuToolsSettingsInternal" -> {
406 | "$PacletVersion" -> "0.10.2323", "$ApplicationName" -> "Mathematica",
407 | "$LinkBase" -> "Mathematica", "$ApplicationDirectory" ->
408 | "/Users/christopher/cvs/Mathematica/", "$DocumentationDirectory" ->
409 | "/Users/christopher/cvs/Mathematica/Documentation/English/",
410 | "$UseNewPageDialog" -> ""},
411 | "WelcomeScreenSettings" -> {"FEStarting" -> False}, "Paclet" ->
412 | "Wolfram/ChatGPTPluginKit"},
413 | FrontEndVersion->"13.3 for Mac OS X ARM (64-bit) (April 20, 2023)",
414 | StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "FunctionPageStylesExt.nb",
415 | CharacterEncoding -> "UTF-8"],
416 | ExpressionUUID->"a4e12d4e-0047-4fbe-9ef5-a8a7bd667b43"
417 | ]
418 | (* End of Notebook Content *)
419 |
420 | (* Internal cache information *)
421 | (*CellTagsOutline
422 | CellTagsIndex->{
423 | "ExtendedExamples"->{
424 | Cell[7435, 226, 488, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"2ebbb595-6865-4914-a219-05131b77fdec",
425 | CellTags->"ExtendedExamples",
426 | CellID->1646023863]}
427 | }
428 | *)
429 | (*CellTagsIndex
430 | CellTagsIndex->{
431 | {"ExtendedExamples", 14143, 422}
432 | }
433 | *)
434 | (*NotebookFileOutline
435 | Notebook[{
436 | Cell[CellGroupData[{
437 | Cell[580, 22, 125, 1, 74, "ObjectName",ExpressionUUID->"dd4a09b6-9ad2-4448-a624-5ad8ec446a7f",
438 | CellID->276280783],
439 | Cell[708, 25, 494, 9, 79, "Usage",ExpressionUUID->"ca51e9b6-8efa-4d30-9266-4252cc11efd2",
440 | CellID->591475067],
441 | Cell[1205, 36, 822, 22, 47, "Notes",ExpressionUUID->"c8857a42-22c3-4e78-b073-40fe753a000b",
442 | CellID->328616136]
443 | }, Open ]],
444 | Cell[CellGroupData[{
445 | Cell[2064, 63, 435, 12, 41, "TechNotesSection",ExpressionUUID->"7c9716dd-d075-462d-b87a-cd9a3c267074",
446 | CellID->118135349],
447 | Cell[2502, 77, 101, 1, 19, "Tutorials",ExpressionUUID->"203f05bd-2be6-4327-9320-5f7f184c07ff",
448 | CellID->1225920815]
449 | }, Open ]],
450 | Cell[CellGroupData[{
451 | Cell[2640, 83, 473, 13, 40, "RelatedLinksSection",ExpressionUUID->"e6e3d0f0-b420-4a55-8766-63ea8dabbd27",
452 | CellID->1093028387],
453 | Cell[3116, 98, 103, 1, 19, "RelatedLinks",ExpressionUUID->"c791e3d2-3c43-4691-b82f-43419f0b18c9",
454 | CellID->952983871]
455 | }, Open ]],
456 | Cell[CellGroupData[{
457 | Cell[3256, 104, 458, 13, 40, "SeeAlsoSection",ExpressionUUID->"d78cf2d9-78dc-45ec-bb59-19cf645f5aad",
458 | CellID->866880571],
459 | Cell[3717, 119, 2156, 54, 23, "SeeAlso",ExpressionUUID->"9117d650-044e-427f-b792-5f58bf8903d0",
460 | CellID->1132695549]
461 | }, Open ]],
462 | Cell[CellGroupData[{
463 | Cell[5910, 178, 184, 2, 40, "MoreAboutSection",ExpressionUUID->"c2e0f328-4189-426e-bcd5-c07e091343f4",
464 | CellID->1919045035],
465 | Cell[6097, 182, 100, 1, 19, "MoreAbout",ExpressionUUID->"a2707521-cf17-4ebc-951d-06bccaca953b",
466 | CellID->333008952]
467 | }, Open ]],
468 | Cell[CellGroupData[{
469 | Cell[6234, 188, 530, 14, 70, "ExamplesInitializationSection",ExpressionUUID->"eea14939-484d-40e3-ba43-0c128cc9eade",
470 | CellID->539072182],
471 | Cell[6767, 204, 185, 3, 47, "ExampleInitialization",ExpressionUUID->"12a46c69-ee31-4d25-997e-3bd48b41f65e",
472 | CellID->2100139828]
473 | }, Open ]],
474 | Cell[6967, 210, 443, 12, 73, "PrimaryExamplesSection",ExpressionUUID->"8eff1415-64d8-40f4-ad34-4306c22a0ff0",
475 | CellID->1008867104],
476 | Cell[CellGroupData[{
477 | Cell[7435, 226, 488, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"2ebbb595-6865-4914-a219-05131b77fdec",
478 | CellTags->"ExtendedExamples",
479 | CellID->1646023863],
480 | Cell[7926, 241, 241, 5, 35, "ExampleSection",ExpressionUUID->"6b3c5fd1-e418-4e6b-820f-0d1f15516ef9",
481 | CellID->838724787],
482 | Cell[8170, 248, 264, 5, 23, "ExampleSection",ExpressionUUID->"1fc343bd-d4b2-4c71-b2a9-0303695f7f44",
483 | CellID->364836201],
484 | Cell[CellGroupData[{
485 | Cell[8459, 257, 243, 5, 23, "ExampleSection",ExpressionUUID->"1bddb740-c121-44d7-bfd6-5463e9fba731",
486 | CellID->736218022],
487 | Cell[8705, 264, 247, 5, 26, "ExampleSubsection",ExpressionUUID->"3e3b7af7-ada5-4b57-a1a0-52bcd612e821",
488 | CellID->1963005387],
489 | Cell[8955, 271, 246, 5, 22, "ExampleSubsection",ExpressionUUID->"31c2aebb-d605-431e-952c-3e846db01b2d",
490 | CellID->440270448]
491 | }, Open ]],
492 | Cell[9216, 279, 249, 5, 35, "ExampleSection",ExpressionUUID->"eff6e0b1-1d69-489c-b0ae-4f4f7400988d",
493 | CellID->1544255621],
494 | Cell[9468, 286, 259, 5, 23, "ExampleSection",ExpressionUUID->"98fbf779-c84c-4214-93e7-fe2aa2951ab4",
495 | CellID->1964348152],
496 | Cell[9730, 293, 252, 5, 23, "ExampleSection",ExpressionUUID->"0ebab53e-b18d-4529-bb4e-f600c0533bcb",
497 | CellID->1533285333],
498 | Cell[9985, 300, 256, 5, 23, "ExampleSection",ExpressionUUID->"c0059970-76a4-42af-8a92-7d084d60e665",
499 | CellID->122827731],
500 | Cell[10244, 307, 249, 5, 23, "ExampleSection",ExpressionUUID->"bbb70f75-bf85-4bbf-a86e-cd1d2a4224a8",
501 | CellID->633890150]
502 | }, Open ]],
503 | Cell[CellGroupData[{
504 | Cell[10530, 317, 110, 1, 72, "MetadataSection",ExpressionUUID->"f5f14665-ff7e-4667-a1ef-cc3a193a97cd",
505 | CellID->125378283],
506 | Cell[10643, 320, 476, 12, 26, "History",ExpressionUUID->"b254f954-cee6-437d-af78-5583cba51e93",
507 | CellID->551344674],
508 | Cell[CellGroupData[{
509 | Cell[11144, 336, 483, 13, 21, "CategorizationSection",ExpressionUUID->"e7bb5861-cc50-4bb7-85a8-11735081b481",
510 | CellID->57999113],
511 | Cell[11630, 351, 135, 2, 70, "Categorization",ExpressionUUID->"e2481a3e-ef81-4b92-bf68-7ef775971653",
512 | CellID->1981000100],
513 | Cell[11768, 355, 151, 2, 70, "Categorization",ExpressionUUID->"2fd8ef08-af5e-42b7-9764-2476651432b5",
514 | CellID->82217612],
515 | Cell[11922, 359, 149, 2, 70, "Categorization",ExpressionUUID->"7db31580-890a-4b29-8284-301147c1bac7",
516 | CellID->999419863],
517 | Cell[12074, 363, 180, 3, 70, "Categorization",ExpressionUUID->"cc051d90-bfdb-42d5-a528-acf1bac501f5",
518 | CellID->1780034254]
519 | }, Closed]],
520 | Cell[CellGroupData[{
521 | Cell[12291, 371, 110, 1, 21, "KeywordsSection",ExpressionUUID->"1b6234ab-f029-43b1-a315-1a061a6c933e",
522 | CellID->441020621],
523 | Cell[12404, 374, 100, 1, 70, "Keywords",ExpressionUUID->"9505d41b-c8e1-4a16-9fa9-20216baf597d",
524 | CellID->1267511350]
525 | }, Closed]],
526 | Cell[CellGroupData[{
527 | Cell[12541, 380, 118, 1, 21, "TemplatesSection",ExpressionUUID->"f84b8985-1620-45ff-8b2e-c61b0834f140",
528 | CellID->25481210],
529 | Cell[12662, 383, 148, 2, 70, "Template",ExpressionUUID->"c1821235-e157-49c6-8c23-f501996ba0a2",
530 | CellID->913450717],
531 | Cell[12813, 387, 135, 2, 70, "Template",ExpressionUUID->"be7101f3-2265-4823-990d-804092ab5d9d",
532 | CellID->5608216],
533 | Cell[12951, 391, 136, 2, 70, "Template",ExpressionUUID->"63c3b9d5-60f1-4995-bf6b-217a61320376",
534 | CellID->1915489491],
535 | Cell[13090, 395, 137, 2, 70, "Template",ExpressionUUID->"97ddff26-f930-4df1-be3c-27ceada747e7",
536 | CellID->704523060]
537 | }, Closed]]
538 | }, Open ]]
539 | }
540 | ]
541 | *)
542 |
543 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/ChatGPTPluginEndpoint.nb:
--------------------------------------------------------------------------------
1 | (* Content-type: application/vnd.wolfram.mathematica *)
2 |
3 | (*** Wolfram Notebook File ***)
4 | (* http://www.wolfram.com/nb *)
5 |
6 | (* CreatedBy='Mathematica 13.2' *)
7 |
8 | (*CacheID: 234*)
9 | (* Internal cache information:
10 | NotebookFileLineBreakTest
11 | NotebookFileLineBreakTest
12 | NotebookDataPosition[ 158, 7]
13 | NotebookDataLength[ 30349, 772]
14 | NotebookOptionsPosition[ 22844, 615]
15 | NotebookOutlinePosition[ 24008, 648]
16 | CellTagsIndexPosition[ 23929, 643]
17 | WindowFrame->Normal*)
18 |
19 | (* Beginning of Notebook Content *)
20 | Notebook[{
21 |
22 | Cell[CellGroupData[{
23 | Cell["ChatGPTPluginEndpoint", "ObjectName",
24 | CellID->1789944913,ExpressionUUID->"a524aeb2-32a7-4a66-9e50-d0023888bf4c"],
25 |
26 | Cell[TextData[{
27 | Cell[" ", "ModInfo",ExpressionUUID->"04eca98c-0f05-4fdd-8d0b-2198127558a7"],
28 | Cell[BoxData[
29 | RowBox[{"ChatGPTPluginEndpoint", "[",
30 | RowBox[{
31 | StyleBox["name", "TI"], ",",
32 | StyleBox["params", "TI"], ",",
33 | StyleBox["fun", "TI"]}], "]"}]], "InlineFormula",ExpressionUUID->
34 | "2e100f9a-adce-4d78-b739-c92eb42a4764"],
35 | " \[LineSeparator]Represents an endpoint with the specified name, \
36 | parameters, and function body.\n",
37 | Cell[" ", "ModInfo",ExpressionUUID->"81321e40-10af-45bb-96dd-8b4c02ea0cb5"],
38 | Cell[BoxData[
39 | RowBox[{"ChatGPTPluginEndpoint", "[",
40 | RowBox[{
41 | RowBox[{"{",
42 | RowBox[{
43 | StyleBox["name", "TI"], ",",
44 | StyleBox["prompt", "TI"]}], "}"}], ",",
45 | StyleBox["params", "TI"], ",",
46 | StyleBox["fun", "TI"]}], "]"}]], "InlineFormula",ExpressionUUID->
47 | "86f876df-e412-4987-8d84-f78c2a40030f"],
48 | "\[LineSeparator]Associates the specified prompt with the endpoint.\n",
49 | Cell[" ", "ModInfo",ExpressionUUID->"f05b4afa-57c3-4d55-b7c7-6f88b5b07278"],
50 | Cell[BoxData[
51 | RowBox[{"ChatGPTPluginEndpoint", "[",
52 | RowBox[{
53 | StyleBox["name", "TI"], ",",
54 | StyleBox["assoc", "TI"]}], "]"}]], "InlineFormula",ExpressionUUID->
55 | "ecf66c2d-5a39-443c-a34f-bf8278aebbc5"],
56 | "\[LineSeparator]Uses an association to specify and endpoint."
57 | }], "Usage",
58 | CellChangeTimes->{{3.889460034535874*^9, 3.889460085592732*^9}, {
59 | 3.889484574051124*^9, 3.889484601746159*^9}, {3.890399074338606*^9,
60 | 3.890399106303656*^9}, {3.8903992036133204`*^9, 3.890399208855879*^9}},
61 | CellID->1653225615,ExpressionUUID->"4b991515-d159-420e-8c18-e40177cee29d"],
62 |
63 | Cell[TextData[{
64 | Cell[BoxData[
65 | StyleBox["name", "TI"]], "InlineFormula",ExpressionUUID->
66 | "20d4cb42-c2fe-44b0-a900-db666ac1dc3c"],
67 | " gives the operation ID of the endpoint. This is the name that should be \
68 | used in the plugin prompt to refer to the endpoint."
69 | }], "Notes",
70 | CellChangeTimes->{{3.889460217404907*^9, 3.889460244124159*^9}},
71 | CellID->1158657570,ExpressionUUID->"99e0d199-53a6-485b-9e93-db52cd24ae7d"],
72 |
73 | Cell[TextData[{
74 | Cell[BoxData[
75 | StyleBox["params", "TI"]], "InlineFormula",ExpressionUUID->
76 | "fa5d83e9-04a9-438d-8a25-bbe72d1ae813"],
77 | " can be a single parameter or a list of parameters. Elements of ",
78 | Cell[BoxData[
79 | StyleBox["params", "TI"]], "InlineFormula",ExpressionUUID->
80 | "8ddd2d28-01c2-4f76-beef-cfe87cfec3e6"],
81 | " can take the following forms:"
82 | }], "Notes",
83 | CellChangeTimes->{{3.889460205934572*^9, 3.889460214683498*^9}, {
84 | 3.8894603234952374`*^9, 3.8894603379092073`*^9}, {3.889460408462914*^9,
85 | 3.88946042342177*^9}},
86 | CellID->1619486419,ExpressionUUID->"dfe37d5e-75cc-40b6-9306-6fb0a3b3a5a6"],
87 |
88 | Cell[BoxData[GridBox[{
89 | {Cell[" ", "ModInfo",ExpressionUUID->
90 | "faafcd43-4c8e-4b5a-96fc-8c2944f928ea"],
91 | "\"\<\!\(\*StyleBox[\"paramName\", \"TI\"]\)\>\"", Cell[
92 | "named string parameter", "TableText",ExpressionUUID->
93 | "c99a9556-2f09-4789-a13a-7aca4b279dc7"]},
94 | {Cell[" ", "ModInfo",ExpressionUUID->
95 | "f2a817f8-7989-4470-9750-4259b411db1e"],
96 | RowBox[{"\"\<\!\(\*StyleBox[\"paramName\", \"TI\"]\)\>\"", "\[Rule]",
97 | StyleBox["type", "TI"]}], Cell[
98 | "uses the specified interpreter type", "TableText",ExpressionUUID->
99 | "1b269ff6-ec95-4572-a333-089ae353a4cd"]},
100 | {Cell[" ", "ModInfo",ExpressionUUID->
101 | "af9debfd-62ba-429b-8484-bd7695edc9de"],
102 | RowBox[{"\"\<\!\(\*StyleBox[\"paramName\", \"TI\"]\)\>\"", "\[Rule]",
103 | StyleBox["assoc", "TI"]}], Cell[
104 | "uses an association to specify the parameter", "TableText",
105 | ExpressionUUID->"b2694480-d01e-41c9-b81b-e931ed44c1ef"]}
106 | }]], "2ColumnTableMod",
107 | CellChangeTimes->{{3.8894603399757233`*^9, 3.8894603971839952`*^9}, {
108 | 3.8894604287029743`*^9, 3.889460447439815*^9}},
109 | CellID->558862579,ExpressionUUID->"a6a4ff61-ef6b-459a-8096-54d8c5a9a15a"],
110 |
111 | Cell[TextData[{
112 | "Possible keys in ",
113 | Cell[BoxData[
114 | StyleBox["assoc", "TI"]], "InlineFormula",ExpressionUUID->
115 | "bef4a356-7baa-4ecf-8118-cb14599d1cc5"],
116 | " include:"
117 | }], "Notes",
118 | CellChangeTimes->{{3.889460450630801*^9, 3.8894604622642527`*^9}},
119 | CellID->1530865763,ExpressionUUID->"e8a0ef78-4ba3-4059-8dbd-75fbc05e6af3"],
120 |
121 | Cell[BoxData[GridBox[{
122 | {Cell[" ", "ModInfo",ExpressionUUID->
123 | "2697e63d-b0b6-4e5e-abda-1d4ce07361bf"], "\"\\"", Cell[
124 | "interpreter type", "TableText",ExpressionUUID->
125 | "b3a34d73-43d0-479d-b535-ae09d802ce59"]},
126 | {Cell[" ", "ModInfo",ExpressionUUID->
127 | "a0d7b1f9-c72e-4d88-b2d2-c11005dfeeac"], "\"\\"", Cell[
128 | "prompt for the parameter", "TableText",ExpressionUUID->
129 | "d0071429-aa3c-4c01-97b1-df651df89b7a"]},
130 | {Cell[" ", "ModInfo",ExpressionUUID->
131 | "42882507-bfb3-44ff-9ada-1b555b3bcc84"], "\"\\"", Cell[
132 | "whether the parameter is required", "TableText",ExpressionUUID->
133 | "be3fca5f-9995-47b0-a672-352d1f917af4"]}
134 | }]], "2ColumnTableMod",
135 | CellChangeTimes->{{3.889460476137401*^9, 3.889460521209247*^9}},
136 | CellID->1167989943,ExpressionUUID->"b8e6d2cd-1ccf-40a8-b0c6-b26be4de377a"],
137 |
138 | Cell[TextData[{
139 | "When the endpoint is called, ",
140 | Cell[BoxData[
141 | StyleBox["fun", "TI"]], "InlineFormula",ExpressionUUID->
142 | "c0224f06-1e16-449a-a668-628b0ffa4910"],
143 | " is applied to an association with keys for each of the input parameters."
144 | }], "Notes",
145 | CellChangeTimes->{{3.889460542790601*^9, 3.889460575772822*^9}},
146 | CellID->742353863,ExpressionUUID->"caea48bf-9265-4774-a14d-29b07da69780"],
147 |
148 | Cell[TextData[{
149 | Cell[BoxData[
150 | StyleBox["assoc", "TI"]], "InlineFormula",ExpressionUUID->
151 | "dd79682a-c10f-4a57-b5cf-f76a486b9b27"],
152 | " can include the following keys:"
153 | }], "Notes",
154 | CellChangeTimes->{{3.890399114367832*^9, 3.890399126239596*^9}},
155 | CellID->494064204,ExpressionUUID->"8f32bda5-9fa8-4d44-9b8a-f8c6f78d71db"],
156 |
157 | Cell[BoxData[GridBox[{
158 | {Cell[" ", "ModInfo",ExpressionUUID->
159 | "46aab53e-e5ba-4008-869e-23fb42bd4f24"], "\"\\"", Cell[
160 | "prompt", "TableText",ExpressionUUID->
161 | "dd844bf7-e03c-4295-b4b1-1eb4f87bc254"]},
162 | {Cell[" ", "ModInfo",ExpressionUUID->
163 | "c2f9002c-2641-4ebe-b9e1-409d7c64cb95"], "\"\\"", Cell[
164 | TextData[{
165 | Cell[BoxData[
166 | ButtonBox["APIFunction",
167 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
168 | "dd20d89c-cc9b-432f-bbcf-a9ec06739a48"],
169 | " defining parameters and body (required)"
170 | }], "TableText",ExpressionUUID->"2a955acc-c36b-418b-97f1-8501fd58b84e"]}
171 | }]], "2ColumnTableMod",
172 | CellChangeTimes->{{3.890399154576005*^9, 3.890399244351823*^9}},
173 | CellID->363677027,ExpressionUUID->"c5ad02f1-0033-4161-a50f-1f40b07e57a8"]
174 | }, Open ]],
175 |
176 | Cell[CellGroupData[{
177 |
178 | Cell[TextData[{
179 | "See Also",
180 | Cell[BoxData[
181 | TemplateBox[{"SeeAlso",
182 | Cell[
183 | BoxData[
184 | FrameBox[
185 | Cell[
186 | "Insert links to any related reference (function) pages.",
187 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
188 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
189 | "79e64ec7-1762-4600-bfe2-7fbb0be748d4"]
190 | }], "SeeAlsoSection",
191 | CellID->1500502055,ExpressionUUID->"375609b4-aaed-4964-9336-a83ba30a3217"],
192 |
193 | Cell[TextData[{
194 | Cell[BoxData[
195 | ButtonBox["ChatGPTPlugin",
196 | BaseStyle->"Link",
197 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPlugin"]],
198 | "InlineSeeAlsoFunction",
199 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
200 | "d7717dcc-47e3-4b8b-adb4-c3f28563c43d"],
201 | Cell[BoxData[
202 | RowBox[{
203 | Cell[TextData[StyleBox[
204 | " \[FilledVerySmallSquare] ", "InlineSeparator"]],ExpressionUUID->
205 | "4a86444d-d946-4671-9a36-742f60be024f"],
206 | DynamicModuleBox[{$CellContext`nbobj$$ = NotebookObject[
207 | "b3d8cb14-ff9e-4c37-8fdd-2935b39e9382",
208 | "5d4c58ca-c39e-4884-9829-17fa9bcfdf73"], $CellContext`cellobj$$ =
209 | CellObject[
210 | "0634900f-d47d-4657-9f2f-d617682323a2",
211 | "44f0ba73-ddf7-4816-b778-0a86f37523c6"]},
212 | TemplateBox[{
213 | GraphicsBox[{{
214 | Thickness[0.06],
215 | StrokeForm[
216 | Hue[0.4167, 0.406, 0.502]],
217 | CircleBox[{0, 0}]}, {
218 | Thickness[0.06],
219 | StrokeForm[
220 | Hue[0.4167, 0.406, 0.502]],
221 | LineBox[{{0, 0.62}, {0, -0.62}}]}, {
222 | Thickness[0.06],
223 | StrokeForm[
224 | Hue[0.4167, 0.406, 0.502]],
225 | LineBox[{{-0.62, 0}, {0.62, 0}}]}},
226 | ImagePadding -> {{1., 1.}, {2.4, 1.}}, ImageSize -> 16,
227 | PlotRange -> {{-1.06, 1.06}, {-1.06, 1.06}},
228 | BaselinePosition -> (Center ->
229 | Center)], $CellContext`nbobj$$, $CellContext`cellobj$$},
230 | "InlineListingAddButton"],
231 | Initialization:>($CellContext`nbobj$$ =
232 | EvaluationNotebook[]; $CellContext`cellobj$$ = EvaluationCell[])]}]],
233 | "InlineListingAddButton",ExpressionUUID->
234 | "0634900f-d47d-4657-9f2f-d617682323a2"]
235 | }], "SeeAlso",
236 | CellChangeTimes->{{3.889461072478552*^9, 3.889461074476598*^9}},
237 | CellID->1037571664,ExpressionUUID->"0b41888f-6d22-4164-98db-616c1af1700c"]
238 | }, Open ]],
239 |
240 | Cell[CellGroupData[{
241 |
242 | Cell[TextData[{
243 | "Tech Notes",
244 | Cell[BoxData[
245 | TemplateBox[{"TechNotes",
246 | Cell[
247 | BoxData[
248 | FrameBox[
249 | Cell["Insert links to related tech notes.", "MoreInfoText"], BaseStyle ->
250 | "IFrameBox"]], "MoreInfoTextOuter"]},
251 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
252 | "a97ad86c-fe66-455b-ac07-c1479fb35bc9"]
253 | }], "TechNotesSection",
254 | CellID->899743208,ExpressionUUID->"b6323982-ba68-4f46-abda-b5672f0965f3"],
255 |
256 | Cell["XXXX", "Tutorials",
257 | CellID->1551738329,ExpressionUUID->"fe8b9ad7-d4b5-4639-9d21-79613212d55e"]
258 | }, Open ]],
259 |
260 | Cell[CellGroupData[{
261 |
262 | Cell["Related Guides", "MoreAboutSection",
263 | CellID->1024686335,ExpressionUUID->"bfa19dce-ebf4-469e-b5e2-97941b04131f"],
264 |
265 | Cell["XXXX", "MoreAbout",
266 | CellID->1231867052,ExpressionUUID->"6fa35e52-d12d-4c61-83bd-de35c95ebae6"]
267 | }, Open ]],
268 |
269 | Cell[CellGroupData[{
270 |
271 | Cell[TextData[{
272 | "Related Links",
273 | Cell[BoxData[
274 | TemplateBox[{"RelatedLinks",
275 | Cell[
276 | BoxData[
277 | FrameBox[
278 | Cell[
279 | "Insert links to any related page, including web pages.",
280 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
281 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
282 | "6274a4db-555d-41d5-8443-962192bcb383"]
283 | }], "RelatedLinksSection",
284 | CellID->99702237,ExpressionUUID->"e5f839fe-2bc0-49d6-b8a7-f324292862de"],
285 |
286 | Cell["XXXX", "RelatedLinks",
287 | CellID->658252599,ExpressionUUID->"d4c3c9ba-fc05-426f-91fe-317d95cdfd42"]
288 | }, Open ]],
289 |
290 | Cell[CellGroupData[{
291 |
292 | Cell[TextData[{
293 | "Examples Initialization",
294 | Cell[BoxData[
295 | TemplateBox[{"ExamplesInitialization",
296 | Cell[
297 | BoxData[
298 | FrameBox[
299 | Cell[
300 | "Input that is to be evaluated before any examples are run, e.g. \
301 | Needs[\[Ellipsis]].", "MoreInfoText"], BaseStyle -> "IFrameBox"]],
302 | "MoreInfoTextOuter"]},
303 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
304 | "7818e279-36e7-448f-b829-4305151936d2"]
305 | }], "ExamplesInitializationSection",
306 | CellID->1563165696,ExpressionUUID->"6fef9b2e-a376-4e81-9065-3ba1bd278f16"],
307 |
308 | Cell[BoxData[
309 | RowBox[{"Needs", "[", "\"\\"",
310 | "]"}]], "ExampleInitialization",
311 | CellChangeTimes->{3.8903239128005257`*^9},
312 | CellID->1958398921,ExpressionUUID->"e3801c33-1667-485a-9d76-30761d40060d"]
313 | }, Open ]],
314 |
315 | Cell[CellGroupData[{
316 |
317 | Cell[BoxData[
318 | InterpretationBox[GridBox[{
319 | {
320 | StyleBox[
321 | RowBox[{"Basic", " ", "Examples"}], "PrimaryExamplesSection"],
322 | ButtonBox[
323 | RowBox[{
324 | RowBox[{"More", " ", "Examples"}], " ", "\[RightTriangle]"}],
325 | BaseStyle->"ExtendedExamplesLink",
326 | ButtonData:>"ExtendedExamples"]}
327 | }],
328 | $Line = 0; Null]], "PrimaryExamplesSection",
329 | CellID->328807678,ExpressionUUID->"2ad35463-b7d3-48b8-b523-5d6249704426"],
330 |
331 | Cell["\<\
332 | Create a simple endpoint to be called from a ChatGPT plugin:\
333 | \>", "ExampleText",
334 | CellChangeTimes->{{3.889461137580209*^9, 3.8894611502550907`*^9}},
335 | CellID->449440125,ExpressionUUID->"1e1a3bd7-0104-44e3-a1e3-9c9a251ae768"],
336 |
337 | Cell[CellGroupData[{
338 |
339 | Cell[BoxData[
340 | RowBox[{"ChatGPTPluginEndpoint", "[",
341 | RowBox[{"\"\\"", ",", "\"\\"", ",",
342 | RowBox[{
343 | RowBox[{"StringReverse", "[", "#string", "]"}], "&"}]}], "]"}]], "Input",
344 | CellChangeTimes->{{3.88946108456107*^9, 3.889461130072298*^9}, {
345 | 3.89032431398488*^9, 3.890324314098775*^9}},
346 | CellLabel->"In[2]:=",
347 | CellID->1082447407,ExpressionUUID->"5a631fe9-8d43-4694-b86f-d763131b6b3a"],
348 |
349 | Cell[BoxData[
350 | InterpretationBox[
351 | RowBox[{
352 | TagBox["ChatGPTPluginEndpoint",
353 | "SummaryHead"], "[",
354 | DynamicModuleBox[{Typeset`open$$ = False, Typeset`embedState$$ = "Ready"},
355 |
356 | TemplateBox[{
357 | PaneSelectorBox[{False -> GridBox[{{
358 | PaneBox[
359 | ButtonBox[
360 | DynamicBox[
361 | FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxOpener"]],
362 | ButtonFunction :> (Typeset`open$$ = True), Appearance -> None,
363 | BaseStyle -> {}, Evaluator -> Automatic, Method ->
364 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
365 | Dynamic[{
366 | Automatic,
367 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
368 | Magnification])}]],
369 | GridBox[{{
370 | RowBox[{
371 | TagBox["\"name: \"", "SummaryItemAnnotation"],
372 | "\[InvisibleSpace]",
373 | TagBox["\"reverse\"", "SummaryItem"]}]}},
374 | GridBoxAlignment -> {
375 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete ->
376 | False, GridBoxItemSize -> {
377 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
378 | GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
379 | BaseStyle -> {
380 | ShowStringCharacters -> False, NumberMarks -> False,
381 | PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
382 | GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
383 | AutoDelete -> False,
384 | GridBoxItemSize -> {
385 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
386 | BaselinePosition -> {1, 1}], True -> GridBox[{{
387 | PaneBox[
388 | ButtonBox[
389 | DynamicBox[
390 | FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxCloser"]],
391 | ButtonFunction :> (Typeset`open$$ = False), Appearance -> None,
392 | BaseStyle -> {}, Evaluator -> Automatic, Method ->
393 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
394 | Dynamic[{
395 | Automatic,
396 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
397 | Magnification])}]],
398 | GridBox[{{
399 | RowBox[{
400 | TagBox["\"name: \"", "SummaryItemAnnotation"],
401 | "\[InvisibleSpace]",
402 | TagBox["\"reverse\"", "SummaryItem"]}]}, {
403 | RowBox[{
404 | TagBox["\"prompt: \"", "SummaryItemAnnotation"],
405 | "\[InvisibleSpace]",
406 | TagBox[
407 | RowBox[{"Missing", "[", "\"NotSpecified\"", "]"}],
408 | "SummaryItem"]}]}},
409 | GridBoxAlignment -> {
410 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete ->
411 | False, GridBoxItemSize -> {
412 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
413 | GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
414 | BaseStyle -> {
415 | ShowStringCharacters -> False, NumberMarks -> False,
416 | PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
417 | GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
418 | AutoDelete -> False,
419 | GridBoxItemSize -> {
420 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
421 | BaselinePosition -> {1, 1}]},
422 | Dynamic[Typeset`open$$], ImageSize -> Automatic]},
423 | "SummaryPanel"],
424 | DynamicModuleValues:>{}], "]"}],
425 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[{"reverse",
426 | Missing["NotSpecified"]}, {
427 | "string" -> <|
428 | "Interpreter" -> "String", "Help" -> Missing["NotSpecified"], "Required" ->
429 | True|>}, StringReverse[
430 | Slot["string"]]& , {}],
431 | Editable->False,
432 | SelectWithContents->True,
433 | Selectable->False]], "Output",
434 | CellChangeTimes->{3.889461130343058*^9, 3.890324314692669*^9},
435 | CellLabel->"Out[2]=",
436 | CellID->1309045448,ExpressionUUID->"d2edf077-e08f-4d4d-9744-103d0bc9d616"]
437 | }, Open ]]
438 | }, Open ]],
439 |
440 | Cell[CellGroupData[{
441 |
442 | Cell[TextData[{
443 | "More Examples",
444 | Cell[BoxData[
445 | TemplateBox[{"MoreExamples",
446 | Cell[
447 | BoxData[
448 | FrameBox[
449 | Cell["Extended examples in standardized sections.", "MoreInfoText"],
450 | BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
451 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
452 | "4dc16343-a5b1-4b23-a33c-9b6ef43305f0"]
453 | }], "ExtendedExamplesSection",
454 | CellTags->"ExtendedExamples",
455 | CellID->795220415,ExpressionUUID->"ca8d1482-b8bc-4c58-9964-4052abdfc8a8"],
456 |
457 | Cell[BoxData[
458 | InterpretationBox[Cell[
459 | "Scope", "ExampleSection",ExpressionUUID->
460 | "611a4e3f-ce52-4c96-a728-40734344843c"],
461 | $Line = 0; Null]], "ExampleSection",
462 | CellID->1478779624,ExpressionUUID->"51046524-7046-42a7-859b-fee0caf65bec"],
463 |
464 | Cell[BoxData[
465 | InterpretationBox[Cell[
466 | "Generalizations & Extensions", "ExampleSection",ExpressionUUID->
467 | "6f375b8c-db4c-4275-beff-8902e097e88f"],
468 | $Line = 0; Null]], "ExampleSection",
469 | CellID->1020893837,ExpressionUUID->"9fcb69f9-1ac3-48c5-82d1-5cd7063cd106"],
470 |
471 | Cell[CellGroupData[{
472 |
473 | Cell[BoxData[
474 | InterpretationBox[Cell[
475 | "Options", "ExampleSection",ExpressionUUID->
476 | "4de493ec-b0d7-48dd-9b17-ea91399c1862"],
477 | $Line = 0; Null]], "ExampleSection",
478 | CellID->1915862576,ExpressionUUID->"b2be4fbd-d0df-46f2-84ac-5a217e460339"],
479 |
480 | Cell[BoxData[
481 | InterpretationBox[Cell[
482 | "XXXX", "ExampleSubsection",ExpressionUUID->
483 | "cc164a94-3bd4-4963-baf3-e54cb9fe7e1c"],
484 | $Line = 0; Null]], "ExampleSubsection",
485 | CellID->532511714,ExpressionUUID->"7af7eb53-be52-4e43-8aba-70d27707423b"],
486 |
487 | Cell[BoxData[
488 | InterpretationBox[Cell[
489 | "XXXX", "ExampleSubsection",ExpressionUUID->
490 | "ca593247-d209-47c5-875e-1c9727c2a6af"],
491 | $Line = 0; Null]], "ExampleSubsection",
492 | CellID->1360020149,ExpressionUUID->"c18b2e08-90b3-421e-a8f4-60f565b1d131"]
493 | }, Open ]],
494 |
495 | Cell[BoxData[
496 | InterpretationBox[Cell[
497 | "Applications", "ExampleSection",ExpressionUUID->
498 | "ebea721a-21e3-4b59-a6c6-3ac22442ec30"],
499 | $Line = 0; Null]], "ExampleSection",
500 | CellID->42705575,ExpressionUUID->"848a3b53-1a17-4159-b18d-a21865959e4b"],
501 |
502 | Cell[BoxData[
503 | InterpretationBox[Cell[
504 | "Properties & Relations", "ExampleSection",ExpressionUUID->
505 | "b910f072-9602-4ea6-8e2c-209bacb82ce7"],
506 | $Line = 0; Null]], "ExampleSection",
507 | CellID->493060927,ExpressionUUID->"29be0de6-2117-4ed0-8d68-5ee99e780b9f"],
508 |
509 | Cell[BoxData[
510 | InterpretationBox[Cell[
511 | "Possible Issues", "ExampleSection",ExpressionUUID->
512 | "a8a005f3-fb7e-455f-bfe0-d658c2129158"],
513 | $Line = 0; Null]], "ExampleSection",
514 | CellID->1883089963,ExpressionUUID->"0516ca62-b071-4906-9ecc-7110531e182b"],
515 |
516 | Cell[BoxData[
517 | InterpretationBox[Cell[
518 | "Interactive Examples", "ExampleSection",ExpressionUUID->
519 | "dce2c365-9cb5-43b8-8e2b-bb573fa59ac3"],
520 | $Line = 0; Null]], "ExampleSection",
521 | CellID->1626502302,ExpressionUUID->"03736a74-ba30-4593-ad8d-5c5d3e6a6e51"],
522 |
523 | Cell[BoxData[
524 | InterpretationBox[Cell[
525 | "Neat Examples", "ExampleSection",ExpressionUUID->
526 | "7ca6f104-4808-4c4f-80c0-a4b499ca34bf"],
527 | $Line = 0; Null]], "ExampleSection",
528 | CellID->1304847051,ExpressionUUID->"cc96537d-fede-405c-b741-7af10950d189"]
529 | }, Open ]],
530 |
531 | Cell[CellGroupData[{
532 |
533 | Cell["Metadata", "MetadataSection",
534 | CellID->461382993,ExpressionUUID->"ecc33bd3-8dcd-4456-95f5-0680b5507a96"],
535 |
536 | Cell[TextData[{
537 | "New in: ",
538 | Cell["XX", "HistoryData",
539 | CellTags->"New",ExpressionUUID->"cbd6337f-6636-4ff6-938f-3211d8f0db3a"],
540 | " | Modified in: ",
541 | Cell[" ", "HistoryData",
542 | CellTags->"Modified",ExpressionUUID->"30916762-3e85-4d1c-ae48-a80e2fec8563"],
543 | " | Obsolete in: ",
544 | Cell[" ", "HistoryData",
545 | CellTags->"Obsolete",ExpressionUUID->
546 | "4575e275-d8c9-46bb-bba4-2f32809f4fc8"]
547 | }], "History",
548 | CellID->2047997681,ExpressionUUID->"88e2e177-8700-4b03-a8b1-08e55712df46"],
549 |
550 | Cell[CellGroupData[{
551 |
552 | Cell[TextData[{
553 | "Categorization",
554 | Cell[BoxData[
555 | TemplateBox[{"Metadata",
556 | Cell[
557 | BoxData[
558 | FrameBox[
559 | Cell[
560 | "Metadata such as page URI, context, and type of documentation page.",
561 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
562 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
563 | "d8caa403-a31b-4496-aa19-0be8e2dd283f"]
564 | }], "CategorizationSection",
565 | CellID->829130451,ExpressionUUID->"82449b88-71df-422c-af42-c1ee7fc1583b"],
566 |
567 | Cell["Symbol", "Categorization",
568 | CellLabel->"Entity Type",
569 | CellID->174104574,ExpressionUUID->"987fde4b-8985-4b0a-8b19-c0d5877d66a2"],
570 |
571 | Cell["Wolfram/ChatGPTPluginKit", "Categorization",
572 | CellLabel->"Paclet Name",
573 | CellID->1302848004,ExpressionUUID->"5053e166-8912-47eb-b07b-3143e3ef90b6"],
574 |
575 | Cell["Wolfram`ChatGPTPluginKit`", "Categorization",
576 | CellLabel->"Context",
577 | CellID->1223138416,ExpressionUUID->"99b44dcc-fe0c-49c6-bb1c-013f0c0b38e2"],
578 |
579 | Cell["Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginEndpoint", "Categorization",
580 | CellLabel->"URI",
581 | CellID->1573888628,ExpressionUUID->"649726ac-9a8a-483f-84d7-cf7f3d667ac8"]
582 | }, Open ]],
583 |
584 | Cell[CellGroupData[{
585 |
586 | Cell["Keywords", "KeywordsSection",
587 | CellID->1790090697,ExpressionUUID->"d858f2f2-72f7-42bc-8cfe-94a5d1e19f24"],
588 |
589 | Cell["XXXX", "Keywords",
590 | CellID->1955933656,ExpressionUUID->"46c8ae80-762f-46f3-a202-a932f02a90eb"]
591 | }, Closed]],
592 |
593 | Cell[CellGroupData[{
594 |
595 | Cell["Syntax Templates", "TemplatesSection",
596 | CellID->1844771763,ExpressionUUID->"bec92b59-c64e-4688-8b96-ee2e94efe4a3"],
597 |
598 | Cell[BoxData[""], "Template",
599 | CellLabel->"Additional Function Template",
600 | CellID->1857609002,ExpressionUUID->"9cc9c470-1ed8-463a-8d07-1e7ef1c06bab"],
601 |
602 | Cell[BoxData[""], "Template",
603 | CellLabel->"Arguments Pattern",
604 | CellID->717236528,ExpressionUUID->"922efd23-6489-4a3f-877e-bd65f11ee439"],
605 |
606 | Cell[BoxData[""], "Template",
607 | CellLabel->"Local Variables",
608 | CellID->768615485,ExpressionUUID->"059c6b9d-b6b1-4b93-9e94-c642c8021267"],
609 |
610 | Cell[BoxData[""], "Template",
611 | CellLabel->"Color Equal Signs",
612 | CellID->1006319690,ExpressionUUID->"44062700-7f77-4cef-939e-cee4b8074b77"]
613 | }, Closed]]
614 | }, Open ]]
615 | },
616 | WindowSize->{700, 770},
617 | WindowMargins->{{484, Automatic}, {Automatic, 42}},
618 | TaggingRules->{
619 | "DocuToolsSettingsInternal" -> {
620 | "$PacletVersion" -> "0.10.2323", "$ApplicationName" -> "Mathematica",
621 | "$LinkBase" -> "Mathematica", "$ApplicationDirectory" ->
622 | "/Users/christopher/cvs/Mathematica/", "$DocumentationDirectory" ->
623 | "/Users/christopher/cvs/Mathematica/Documentation/English/",
624 | "$UseNewPageDialog" -> ""},
625 | "WelcomeScreenSettings" -> {"FEStarting" -> False}, "Paclet" ->
626 | "Wolfram/ChatGPTPluginKit"},
627 | FrontEndVersion->"13.2 for Mac OS X ARM (64-bit) (November 18, 2022)",
628 | StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "FunctionPageStylesExt.nb",
629 | CharacterEncoding -> "UTF-8"],
630 | ExpressionUUID->"b3d8cb14-ff9e-4c37-8fdd-2935b39e9382"
631 | ]
632 | (* End of Notebook Content *)
633 |
634 | (* Internal cache information *)
635 | (*CellTagsOutline
636 | CellTagsIndex->{
637 | "ExtendedExamples"->{
638 | Cell[17022, 441, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"ca8d1482-b8bc-4c58-9964-4052abdfc8a8",
639 | CellTags->"ExtendedExamples",
640 | CellID->795220415]}
641 | }
642 | *)
643 | (*CellTagsIndex
644 | CellTagsIndex->{
645 | {"ExtendedExamples", 23735, 636}
646 | }
647 | *)
648 | (*NotebookFileOutline
649 | Notebook[{
650 | Cell[CellGroupData[{
651 | Cell[580, 22, 119, 1, 74, "ObjectName",ExpressionUUID->"a524aeb2-32a7-4a66-9e50-d0023888bf4c",
652 | CellID->1789944913],
653 | Cell[702, 25, 1597, 35, 166, "Usage",ExpressionUUID->"4b991515-d159-420e-8c18-e40177cee29d",
654 | CellID->1653225615],
655 | Cell[2302, 62, 418, 8, 45, "Notes",ExpressionUUID->"99e0d199-53a6-485b-9e93-db52cd24ae7d",
656 | CellID->1158657570],
657 | Cell[2723, 72, 614, 13, 27, "Notes",ExpressionUUID->"dfe37d5e-75cc-40b6-9306-6fb0a3b3a5a6",
658 | CellID->1619486419],
659 | Cell[3340, 87, 1161, 21, 61, "2ColumnTableMod",ExpressionUUID->"a6a4ff61-ef6b-459a-8096-54d8c5a9a15a",
660 | CellID->558862579],
661 | Cell[4504, 110, 326, 8, 27, "Notes",ExpressionUUID->"e8a0ef78-4ba3-4059-8dbd-75fbc05e6af3",
662 | CellID->1530865763],
663 | Cell[4833, 120, 867, 15, 61, "2ColumnTableMod",ExpressionUUID->"b8e6d2cd-1ccf-40a8-b0c6-b26be4de377a",
664 | CellID->1167989943],
665 | Cell[5703, 137, 397, 8, 27, "Notes",ExpressionUUID->"caea48bf-9265-4774-a14d-29b07da69780",
666 | CellID->742353863],
667 | Cell[6103, 147, 324, 7, 27, "Notes",ExpressionUUID->"8f32bda5-9fa8-4d44-9b8a-f8c6f78d71db",
668 | CellID->494064204],
669 | Cell[6430, 156, 814, 16, 45, "2ColumnTableMod",ExpressionUUID->"c5ad02f1-0033-4161-a50f-1f40b07e57a8",
670 | CellID->363677027]
671 | }, Open ]],
672 | Cell[CellGroupData[{
673 | Cell[7281, 177, 459, 13, 34, "SeeAlsoSection",ExpressionUUID->"375609b4-aaed-4964-9336-a83ba30a3217",
674 | CellID->1500502055],
675 | Cell[7743, 192, 1777, 44, 23, "SeeAlso",ExpressionUUID->"0b41888f-6d22-4164-98db-616c1af1700c",
676 | CellID->1037571664]
677 | }, Open ]],
678 | Cell[CellGroupData[{
679 | Cell[9557, 241, 435, 12, 47, "TechNotesSection",ExpressionUUID->"b6323982-ba68-4f46-abda-b5672f0965f3",
680 | CellID->899743208],
681 | Cell[9995, 255, 101, 1, 19, "Tutorials",ExpressionUUID->"fe8b9ad7-d4b5-4639-9d21-79613212d55e",
682 | CellID->1551738329]
683 | }, Open ]],
684 | Cell[CellGroupData[{
685 | Cell[10133, 261, 118, 1, 34, "MoreAboutSection",ExpressionUUID->"bfa19dce-ebf4-469e-b5e2-97941b04131f",
686 | CellID->1024686335],
687 | Cell[10254, 264, 101, 1, 19, "MoreAbout",ExpressionUUID->"6fa35e52-d12d-4c61-83bd-de35c95ebae6",
688 | CellID->1231867052]
689 | }, Open ]],
690 | Cell[CellGroupData[{
691 | Cell[10392, 270, 471, 13, 34, "RelatedLinksSection",ExpressionUUID->"e5f839fe-2bc0-49d6-b8a7-f324292862de",
692 | CellID->99702237],
693 | Cell[10866, 285, 103, 1, 19, "RelatedLinks",ExpressionUUID->"d4c3c9ba-fc05-426f-91fe-317d95cdfd42",
694 | CellID->658252599]
695 | }, Open ]],
696 | Cell[CellGroupData[{
697 | Cell[11006, 291, 531, 14, 70, "ExamplesInitializationSection",ExpressionUUID->"6fef9b2e-a376-4e81-9065-3ba1bd278f16",
698 | CellID->1563165696],
699 | Cell[11540, 307, 229, 4, 47, "ExampleInitialization",ExpressionUUID->"e3801c33-1667-485a-9d76-30761d40060d",
700 | CellID->1958398921]
701 | }, Open ]],
702 | Cell[CellGroupData[{
703 | Cell[11806, 316, 442, 12, 73, "PrimaryExamplesSection",ExpressionUUID->"2ad35463-b7d3-48b8-b523-5d6249704426",
704 | CellID->328807678],
705 | Cell[12251, 330, 235, 4, 24, "ExampleText",ExpressionUUID->"1e1a3bd7-0104-44e3-a1e3-9c9a251ae768",
706 | CellID->449440125],
707 | Cell[CellGroupData[{
708 | Cell[12511, 338, 413, 8, 27, "Input",ExpressionUUID->"5a631fe9-8d43-4694-b86f-d763131b6b3a",
709 | CellID->1082447407],
710 | Cell[12927, 348, 4046, 87, 52, "Output",ExpressionUUID->"d2edf077-e08f-4d4d-9744-103d0bc9d616",
711 | CellID->1309045448]
712 | }, Open ]]
713 | }, Open ]],
714 | Cell[CellGroupData[{
715 | Cell[17022, 441, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"ca8d1482-b8bc-4c58-9964-4052abdfc8a8",
716 | CellTags->"ExtendedExamples",
717 | CellID->795220415],
718 | Cell[17512, 456, 242, 5, 35, "ExampleSection",ExpressionUUID->"51046524-7046-42a7-859b-fee0caf65bec",
719 | CellID->1478779624],
720 | Cell[17757, 463, 265, 5, 23, "ExampleSection",ExpressionUUID->"9fcb69f9-1ac3-48c5-82d1-5cd7063cd106",
721 | CellID->1020893837],
722 | Cell[CellGroupData[{
723 | Cell[18047, 472, 244, 5, 23, "ExampleSection",ExpressionUUID->"b2be4fbd-d0df-46f2-84ac-5a217e460339",
724 | CellID->1915862576],
725 | Cell[18294, 479, 246, 5, 26, "ExampleSubsection",ExpressionUUID->"7af7eb53-be52-4e43-8aba-70d27707423b",
726 | CellID->532511714],
727 | Cell[18543, 486, 247, 5, 22, "ExampleSubsection",ExpressionUUID->"c18b2e08-90b3-421e-a8f4-60f565b1d131",
728 | CellID->1360020149]
729 | }, Open ]],
730 | Cell[18805, 494, 247, 5, 35, "ExampleSection",ExpressionUUID->"848a3b53-1a17-4159-b18d-a21865959e4b",
731 | CellID->42705575],
732 | Cell[19055, 501, 258, 5, 23, "ExampleSection",ExpressionUUID->"29be0de6-2117-4ed0-8d68-5ee99e780b9f",
733 | CellID->493060927],
734 | Cell[19316, 508, 252, 5, 23, "ExampleSection",ExpressionUUID->"0516ca62-b071-4906-9ecc-7110531e182b",
735 | CellID->1883089963],
736 | Cell[19571, 515, 257, 5, 23, "ExampleSection",ExpressionUUID->"03736a74-ba30-4593-ad8d-5c5d3e6a6e51",
737 | CellID->1626502302],
738 | Cell[19831, 522, 250, 5, 23, "ExampleSection",ExpressionUUID->"cc96537d-fede-405c-b741-7af10950d189",
739 | CellID->1304847051]
740 | }, Open ]],
741 | Cell[CellGroupData[{
742 | Cell[20118, 532, 110, 1, 72, "MetadataSection",ExpressionUUID->"ecc33bd3-8dcd-4456-95f5-0680b5507a96",
743 | CellID->461382993],
744 | Cell[20231, 535, 477, 12, 26, "History",ExpressionUUID->"88e2e177-8700-4b03-a8b1-08e55712df46",
745 | CellID->2047997681],
746 | Cell[CellGroupData[{
747 | Cell[20733, 551, 484, 13, 21, "CategorizationSection",ExpressionUUID->"82449b88-71df-422c-af42-c1ee7fc1583b",
748 | CellID->829130451],
749 | Cell[21220, 566, 134, 2, 35, "Categorization",ExpressionUUID->"987fde4b-8985-4b0a-8b19-c0d5877d66a2",
750 | CellID->174104574],
751 | Cell[21357, 570, 153, 2, 35, "Categorization",ExpressionUUID->"5053e166-8912-47eb-b07b-3143e3ef90b6",
752 | CellID->1302848004],
753 | Cell[21513, 574, 150, 2, 35, "Categorization",ExpressionUUID->"99b44dcc-fe0c-49c6-bb1c-013f0c0b38e2",
754 | CellID->1223138416],
755 | Cell[21666, 578, 171, 2, 35, "Categorization",ExpressionUUID->"649726ac-9a8a-483f-84d7-cf7f3d667ac8",
756 | CellID->1573888628]
757 | }, Open ]],
758 | Cell[CellGroupData[{
759 | Cell[21874, 585, 111, 1, 31, "KeywordsSection",ExpressionUUID->"d858f2f2-72f7-42bc-8cfe-94a5d1e19f24",
760 | CellID->1790090697],
761 | Cell[21988, 588, 100, 1, 70, "Keywords",ExpressionUUID->"46c8ae80-762f-46f3-a202-a932f02a90eb",
762 | CellID->1955933656]
763 | }, Closed]],
764 | Cell[CellGroupData[{
765 | Cell[22125, 594, 120, 1, 21, "TemplatesSection",ExpressionUUID->"bec92b59-c64e-4688-8b96-ee2e94efe4a3",
766 | CellID->1844771763],
767 | Cell[22248, 597, 149, 2, 70, "Template",ExpressionUUID->"9cc9c470-1ed8-463a-8d07-1e7ef1c06bab",
768 | CellID->1857609002],
769 | Cell[22400, 601, 137, 2, 70, "Template",ExpressionUUID->"922efd23-6489-4a3f-877e-bd65f11ee439",
770 | CellID->717236528],
771 | Cell[22540, 605, 135, 2, 70, "Template",ExpressionUUID->"059c6b9d-b6b1-4b93-9e94-c642c8021267",
772 | CellID->768615485],
773 | Cell[22678, 609, 138, 2, 70, "Template",ExpressionUUID->"44062700-7f77-4cef-939e-cee4b8074b77",
774 | CellID->1006319690]
775 | }, Closed]]
776 | }, Open ]]
777 | }
778 | ]
779 | *)
780 |
781 |
--------------------------------------------------------------------------------
/ChatGPTPluginKit/Documentation/English/ReferencePages/Symbols/ChatGPTPluginCloudDeploy.nb:
--------------------------------------------------------------------------------
1 | (* Content-type: application/vnd.wolfram.mathematica *)
2 |
3 | (*** Wolfram Notebook File ***)
4 | (* http://www.wolfram.com/nb *)
5 |
6 | (* CreatedBy='Mathematica 13.2' *)
7 |
8 | (*CacheID: 234*)
9 | (* Internal cache information:
10 | NotebookFileLineBreakTest
11 | NotebookFileLineBreakTest
12 | NotebookDataPosition[ 158, 7]
13 | NotebookDataLength[ 57658, 1270]
14 | NotebookOptionsPosition[ 50518, 1119]
15 | NotebookOutlinePosition[ 51679, 1152]
16 | CellTagsIndexPosition[ 51599, 1147]
17 | WindowFrame->Normal*)
18 |
19 | (* Beginning of Notebook Content *)
20 | Notebook[{
21 |
22 | Cell[CellGroupData[{
23 | Cell["ChatGPTPluginCloudDeploy", "ObjectName",
24 | CellID->1572053415,ExpressionUUID->"fbae3251-84e8-4e4a-bbfe-ee3760bee80b"],
25 |
26 | Cell[TextData[{
27 | Cell[" ", "ModInfo",ExpressionUUID->"aad96205-9feb-4c3b-b893-0c12cba5789e"],
28 | Cell[BoxData[
29 | RowBox[{"ChatGPTPluginCloudDeploy", "[",
30 | StyleBox["plugin", "TI"], "]"}]], "InlineFormula",ExpressionUUID->
31 | "2d83afd3-222e-488f-b254-b0a611533e65"],
32 | " \[LineSeparator]deploys a ChatGPT plugin to the public Wolfram Cloud."
33 | }], "Usage",
34 | CellChangeTimes->{{3.890925567613296*^9, 3.890925585496047*^9}},
35 | CellID->1010436864,ExpressionUUID->"003034b2-4964-4808-9752-4959599a63d6"],
36 |
37 | Cell["\<\
38 | Currently, only one plugin can be deployed per Wolfram Cloud account.\
39 | \>", "Notes",
40 | CellChangeTimes->{{3.890925587670133*^9, 3.8909255974566402`*^9}},
41 | CellID->111692772,ExpressionUUID->"bf498240-4d17-4847-b09b-2f7967fb0e0a"],
42 |
43 | Cell[TextData[{
44 | Cell[BoxData[
45 | ButtonBox["ChatGPTPluginCloudDeploy",
46 | BaseStyle->"Link",
47 | ButtonData->
48 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeploy"]],
49 | "InlineFormula",ExpressionUUID->"3fec34d5-7f57-4dac-b976-2b6f73e65d28"],
50 | " returns a ",
51 | Cell[BoxData[
52 | ButtonBox["ChatGPTPluginCloudDeployment",
53 | BaseStyle->"Link",
54 | ButtonData->
55 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment"]],
56 | "InlineFormula",ExpressionUUID->"492df785-bc5c-4880-8a2d-ca4ac95d8024"],
57 | "."
58 | }], "Notes",
59 | CellChangeTimes->{{3.890925603066917*^9, 3.8909256297742987`*^9}},
60 | CellID->1423540098,ExpressionUUID->"9fd6e944-fa56-42a0-8234-fdfbc122ba63"],
61 |
62 | Cell[TextData[{
63 | Cell[BoxData[
64 | ButtonBox["CloudObject",
65 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
66 | "6b26c4f0-ce89-41c0-b059-55f0719a5810"],
67 | " objects created by ",
68 | Cell[BoxData[
69 | ButtonBox["ChatGPTPluginCloudDeploy",
70 | BaseStyle->"Link",
71 | ButtonData->
72 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeploy"]],
73 | "InlineFormula",ExpressionUUID->"1b9564fa-a1bd-4aab-ab64-34983d16358f"],
74 | " can be viewed in the returned ",
75 | Cell[BoxData[
76 | ButtonBox["ChatGPTPluginCloudDeployment",
77 | BaseStyle->"Link",
78 | ButtonData->
79 | "paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeployment"]],
80 | "InlineFormula",ExpressionUUID->"7cccb75a-f6df-44bd-bad2-4a9f3ec8e966"],
81 | ". ",
82 | Cell[BoxData[
83 | ButtonBox["DeleteObject",
84 | BaseStyle->"Link"]], "InlineFormula",ExpressionUUID->
85 | "669bce21-c49a-47fd-bf4b-6482e408d94c"],
86 | " can be used to delete them."
87 | }], "Notes",
88 | CellChangeTimes->{{3.890925634317771*^9, 3.890925683247592*^9}},
89 | CellID->1103581460,ExpressionUUID->"a4b09672-1847-4384-a5b3-772e6a66cfc3"],
90 |
91 | Cell[TextData[{
92 | Cell[BoxData[
93 | StyleBox["plugin", "TI"]], "InlineFormula",ExpressionUUID->
94 | "2c122edc-f740-4b3a-8b63-8022f72acd01"],
95 | " must be a valid ",
96 | Cell[BoxData[
97 | ButtonBox["ChatGPTPlugin",
98 | BaseStyle->"Link",
99 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPlugin"]],
100 | "InlineFormula",ExpressionUUID->"36e0629c-fdb4-4f9b-9afa-0c09cffbd908"],
101 | " object, or an association that specifies a valid ",
102 | Cell[BoxData[
103 | ButtonBox["ChatGPTPlugin",
104 | BaseStyle->"Link",
105 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPlugin"]],
106 | "InlineFormula",ExpressionUUID->"06aaae8d-080e-4df0-bd07-f955a92e3193"],
107 | "."
108 | }], "Notes",
109 | CellChangeTimes->{{3.8894732911277847`*^9, 3.889473305332693*^9}, {
110 | 3.890398696616632*^9, 3.890398720878022*^9}},
111 | CellID->1735908722,ExpressionUUID->"2571c1d5-00a0-4fda-8ae1-65e4da180a82"],
112 |
113 | Cell["Endpoints are evaluated in the Wolfram Cloud.", "Notes",
114 | CellChangeTimes->{{3.889473789626955*^9, 3.8894738028991003`*^9}, {
115 | 3.8909257018137074`*^9, 3.8909257083560057`*^9}},
116 | CellID->178889690,ExpressionUUID->"a1d1cae9-c28e-4232-88a0-2f1e9d8fcd11"]
117 | }, Open ]],
118 |
119 | Cell[CellGroupData[{
120 |
121 | Cell[TextData[{
122 | "Tech Notes",
123 | Cell[BoxData[
124 | TemplateBox[{"TechNotes",
125 | Cell[
126 | BoxData[
127 | FrameBox[
128 | Cell["Insert links to related tech notes.", "MoreInfoText"], BaseStyle ->
129 | "IFrameBox"]], "MoreInfoTextOuter"]},
130 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
131 | "74560ed1-d25b-44bf-a9f2-dbb885bed134"]
132 | }], "TechNotesSection",
133 | CellID->319711526,ExpressionUUID->"f33e455b-c92a-4c61-b170-0f0effde0a9d"],
134 |
135 | Cell["XXXX", "Tutorials",
136 | CellID->387532688,ExpressionUUID->"c46c99b3-56d9-4304-8602-ff28cb408a7a"]
137 | }, Open ]],
138 |
139 | Cell[CellGroupData[{
140 |
141 | Cell[TextData[{
142 | "Related Links",
143 | Cell[BoxData[
144 | TemplateBox[{"RelatedLinks",
145 | Cell[
146 | BoxData[
147 | FrameBox[
148 | Cell[
149 | "Insert links to any related page, including web pages.",
150 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
151 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
152 | "d2a3c0c6-8bab-419a-b162-839408904c0c"]
153 | }], "RelatedLinksSection",
154 | CellID->2091469512,ExpressionUUID->"97756ea9-a4c5-48c2-8084-4ec207b1e0f8"],
155 |
156 | Cell["XXXX", "RelatedLinks",
157 | CellID->1315754088,ExpressionUUID->"71ba1039-ce73-4d29-80fb-8268d7a10c7e"]
158 | }, Open ]],
159 |
160 | Cell[CellGroupData[{
161 |
162 | Cell[TextData[{
163 | "See Also",
164 | Cell[BoxData[
165 | TemplateBox[{"SeeAlso",
166 | Cell[
167 | BoxData[
168 | FrameBox[
169 | Cell[
170 | "Insert links to any related reference (function) pages.",
171 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
172 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
173 | "a08be529-affd-47a4-99d5-88d9f181582f"]
174 | }], "SeeAlsoSection",
175 | CellID->1239843857,ExpressionUUID->"6c3eb39c-83df-43c6-ad76-9ecd3c2619ae"],
176 |
177 | Cell[TextData[{
178 | Cell[BoxData[
179 | ButtonBox["ChatGPTPlugin",
180 | BaseStyle->"Link",
181 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPlugin"]],
182 | "InlineSeeAlsoFunction",
183 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
184 | "4ac1dc36-44a3-4b34-8a58-5b2da9e475a7"],
185 | StyleBox[" \[FilledVerySmallSquare] ", "InlineSeparator"],
186 | Cell[BoxData[
187 | ButtonBox["ChatGPTPluginDeploy",
188 | BaseStyle->"Link",
189 | ButtonData->"paclet:Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginDeploy"]],
190 | "InlineSeeAlsoFunction",
191 | TaggingRules->{"PageType" -> "Function"},ExpressionUUID->
192 | "59941984-f6ff-4a29-ae15-1d6046a27114"],
193 | Cell[BoxData[
194 | RowBox[{
195 | Cell[TextData[StyleBox[
196 | " \[FilledVerySmallSquare] ", "InlineSeparator"]],ExpressionUUID->
197 | "4152f6b1-75a1-43b6-ad03-75d0db55e118"],
198 | DynamicModuleBox[{$CellContext`nbobj$$ = NotebookObject[
199 | "936c0d2f-7e9b-4e6d-831a-5968fa9576df",
200 | "61c2501b-d51d-454f-8892-e56cf5c4a618"], $CellContext`cellobj$$ =
201 | CellObject[
202 | "859a5fcf-a5bf-4281-89b8-5788d1044b18",
203 | "cbd7f024-1996-4802-bf60-479851d5713b"]},
204 | TemplateBox[{
205 | GraphicsBox[{{
206 | Thickness[0.06],
207 | StrokeForm[
208 | Hue[0.4167, 0.406, 0.502]],
209 | CircleBox[{0, 0}]}, {
210 | Thickness[0.06],
211 | StrokeForm[
212 | Hue[0.4167, 0.406, 0.502]],
213 | LineBox[{{0, 0.62}, {0, -0.62}}]}, {
214 | Thickness[0.06],
215 | StrokeForm[
216 | Hue[0.4167, 0.406, 0.502]],
217 | LineBox[{{-0.62, 0}, {0.62, 0}}]}},
218 | ImagePadding -> {{1., 1.}, {2.4, 1.}}, ImageSize -> 16,
219 | PlotRange -> {{-1.06, 1.06}, {-1.06, 1.06}},
220 | BaselinePosition -> (Center ->
221 | Center)], $CellContext`nbobj$$, $CellContext`cellobj$$},
222 | "InlineListingAddButton"],
223 | Initialization:>($CellContext`nbobj$$ =
224 | EvaluationNotebook[]; $CellContext`cellobj$$ = EvaluationCell[])]}]],
225 | "InlineListingAddButton",ExpressionUUID->
226 | "859a5fcf-a5bf-4281-89b8-5788d1044b18"]
227 | }], "SeeAlso",
228 | CellChangeTimes->{{3.89092571507045*^9, 3.890925721953266*^9}},
229 | CellID->1021877758,ExpressionUUID->"ecdd96be-5b06-4daa-9e62-fa76a16e039f"]
230 | }, Open ]],
231 |
232 | Cell[CellGroupData[{
233 |
234 | Cell["Related Guides", "MoreAboutSection",
235 | CellChangeTimes->{{3.843042374232973*^9, 3.843042375545676*^9}},
236 | CellID->1272753647,ExpressionUUID->"4fcbaa21-6d8d-4c21-b532-d5607504a54f"],
237 |
238 | Cell["XXXX", "MoreAbout",
239 | CellID->85937362,ExpressionUUID->"5f85763b-aa4f-4e3a-a581-03b6d51fca82"]
240 | }, Open ]],
241 |
242 | Cell[CellGroupData[{
243 |
244 | Cell[TextData[{
245 | "Examples Initialization",
246 | Cell[BoxData[
247 | TemplateBox[{"ExamplesInitialization",
248 | Cell[
249 | BoxData[
250 | FrameBox[
251 | Cell[
252 | "Input that is to be evaluated before any examples are run, e.g. \
253 | Needs[\[Ellipsis]].", "MoreInfoText"], BaseStyle -> "IFrameBox"]],
254 | "MoreInfoTextOuter"]},
255 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
256 | "a8d970fd-fce7-48ff-9020-c3c85940f035"]
257 | }], "ExamplesInitializationSection",
258 | CellID->1240232350,ExpressionUUID->"cf609ad0-c1b4-4c77-930d-85dfe25d8065"],
259 |
260 | Cell[BoxData[
261 | RowBox[{"Needs", "[", "\"\\"",
262 | "]"}]], "ExampleInitialization",
263 | CellID->1108828668,ExpressionUUID->"028831b2-2759-4a8b-8672-34d02e191357"]
264 | }, Open ]],
265 |
266 | Cell[CellGroupData[{
267 |
268 | Cell[BoxData[
269 | InterpretationBox[GridBox[{
270 | {
271 | StyleBox[
272 | RowBox[{"Basic", " ", "Examples"}], "PrimaryExamplesSection"],
273 | ButtonBox[
274 | RowBox[{
275 | RowBox[{"More", " ", "Examples"}], " ", "\[RightTriangle]"}],
276 | BaseStyle->"ExtendedExamplesLink",
277 | ButtonData:>"ExtendedExamples"]}
278 | }],
279 | $Line = 0; Null]], "PrimaryExamplesSection",
280 | CellID->220334410,ExpressionUUID->"a9ca88cf-1e68-4d53-81af-78604043ec55"],
281 |
282 | Cell["Deploy a ChatGPT plugin to the Wolfram Cloud:", "ExampleText",
283 | CellChangeTimes->{{3.889473009228105*^9, 3.889473020802627*^9}, {
284 | 3.890398799300242*^9, 3.8903988109837*^9}, {3.890925750153597*^9,
285 | 3.890925751980392*^9}},
286 | CellID->374440937,ExpressionUUID->"ebfb416f-9f4d-4da8-9add-39b97a97d1bd"],
287 |
288 | Cell[CellGroupData[{
289 |
290 | Cell[BoxData[
291 | RowBox[{"server", "=",
292 | RowBox[{"ChatGPTPluginCloudDeploy", "[",
293 | RowBox[{"<|", "\[IndentingNewLine]",
294 | RowBox[{
295 | RowBox[{"\"\\"", "->", "\"\\""}], ",",
296 | "\[IndentingNewLine]",
297 | RowBox[{"\"\\"", "->",
298 | RowBox[{"<|",
299 | RowBox[{"\"\\"", "->",
300 | RowBox[{"APIFunction", "[",
301 | RowBox[{
302 | RowBox[{"\"\\"", "->", "\"\\""}], ",",
303 | RowBox[{
304 | RowBox[{"#city", "[", "\"\\"", "]"}], "&"}]}],
305 | "]"}]}], "|>"}]}]}], "\[IndentingNewLine]", "|>"}], "]"}]}]], "Input",\
306 |
307 | CellChangeTimes->{{3.8894730240943127`*^9, 3.889473030319086*^9}, {
308 | 3.890398737336687*^9, 3.890398752365046*^9}, {3.890398801057192*^9,
309 | 3.890398818379952*^9}, {3.89092539896572*^9, 3.890925399082377*^9}, {
310 | 3.890925755048667*^9, 3.8909257581878347`*^9}},
311 | CellLabel->"In[4]:=",
312 | CellID->428262334,ExpressionUUID->"50a9cc11-1a62-48b9-9996-d4e57d51eac2"],
313 |
314 | Cell[BoxData[
315 | InterpretationBox[
316 | RowBox[{
317 | TagBox["ChatGPTPluginCloudDeployment",
318 | "SummaryHead"], "[",
319 | DynamicModuleBox[{Typeset`open$$ = False, Typeset`embedState$$ = "Ready"},
320 |
321 | TemplateBox[{
322 | PaneSelectorBox[{False -> GridBox[{{
323 | PaneBox[
324 | ButtonBox[
325 | DynamicBox[
326 | FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxOpener"],
327 | ImageSizeCache -> {10., {0., 10.}}], Appearance -> None,
328 | BaseStyle -> {}, ButtonFunction :> (Typeset`open$$ = True),
329 | Evaluator -> Automatic, Method -> "Preemptive"],
330 | Alignment -> {Center, Center}, ImageSize ->
331 | Dynamic[{
332 | Automatic,
333 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
334 | Magnification])}]],
335 | GridBox[{{
336 | TagBox[
337 | TemplateBox[{
338 | RowBox[{
339 | TagBox["\"url: \"", "SummaryItemAnnotation"],
340 | "\[InvisibleSpace]",
341 | TagBox[
342 | "\"https://chriswolfram-assets.wolframcloud.com\"",
343 | "SummaryItem"]}],
344 | ButtonBox[
345 |
346 | DynamicModuleBox[{
347 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$ =
348 | False, Wolfram`ChatGPTPluginKit`CopyButton`Private`\
349 | mouseHover$$ = False},
350 | TagBox[
351 | PaneSelectorBox[{"Default" -> FrameBox[
352 | GraphicsBox[
353 | GeometricTransformationBox[{
354 | GrayLevel[0.65],
355 | Thickness[0.05],
356 | CapForm["Butt"],
357 | JoinForm["Bevel"],
358 |
359 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
360 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
361 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
362 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
363 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
364 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
365 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
366 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
367 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
368 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
369 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
370 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
371 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
372 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
373 | 9.895429611206055, 21.}, {11., 21.}}},
374 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
375 | ImageSize -> 20], Background -> GrayLevel[0, 0],
376 | FrameMargins -> 5, FrameStyle -> GrayLevel[0, 0],
377 | RoundingRadius -> 5, StripOnInput -> False], "Hover" ->
378 | FrameBox[
379 | GraphicsBox[
380 | GeometricTransformationBox[{
381 | GrayLevel[0.286],
382 | Thickness[0.05],
383 | CapForm["Butt"],
384 | JoinForm["Bevel"],
385 |
386 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
387 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
388 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
389 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
390 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
391 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
392 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
393 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
394 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
395 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
396 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
397 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
398 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
399 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
400 | 9.895429611206055, 21.}, {11., 21.}}},
401 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
402 | ImageSize -> 20], Background -> GrayLevel[0, 0],
403 | FrameMargins -> 5, FrameStyle -> GrayLevel[0, 0],
404 | RoundingRadius -> 5, StripOnInput -> False], "Pressed" ->
405 | FrameBox[
406 | GraphicsBox[
407 | GeometricTransformationBox[{
408 | GrayLevel[0.286],
409 | Thickness[0.05],
410 | CapForm["Butt"],
411 | JoinForm["Bevel"],
412 |
413 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
414 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
415 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
416 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
417 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
418 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
419 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
420 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
421 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
422 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
423 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
424 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
425 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
426 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
427 | 9.895429611206055, 21.}, {11., 21.}}},
428 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
429 | ImageSize -> 20], Background -> GrayLevel[0., 0.05],
430 | FrameMargins -> 5, FrameStyle -> GrayLevel[0, 0],
431 | RoundingRadius -> 5, StripOnInput -> False]},
432 | Dynamic[
433 | FEPrivate`Which[
434 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
435 | "Pressed",
436 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
437 | "Hover", True, "Default"]]],
438 |
439 | EventHandlerTag[{
440 | "MouseDown" :>
441 | FEPrivate`Set[
442 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
443 | True], "MouseUp" :>
444 | FEPrivate`Set[
445 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
446 | False], "MouseEntered" :>
447 | FEPrivate`Set[
448 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
449 | True], "MouseExited" :>
450 | FEPrivate`Set[
451 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
452 | False], PassEventsDown -> True, Method -> "Preemptive",
453 | PassEventsUp -> True}]], DynamicModuleValues :> {}],
454 | Appearance -> {
455 | "Default" ->
456 | FrontEnd`FileName[{"Misc"}, "TransparentBG.9.png"]},
457 | ButtonFunction :> CopyToClipboard[
458 |
459 | Wolfram`ChatGPTPluginKit`ChatGPTPluginCloudDeployment[<|
460 | "CloudObjects" -> {
461 | CloudObject[
462 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
463 | known/ai-plugin.json"],
464 | CloudObject[
465 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
466 | known/openapi.json"],
467 | CloudObject[
468 | "https://www.wolframcloud.com/obj/chriswolfram/\
469 | getCityPopulation"]}, "Plugin" ->
470 | Wolfram`ChatGPTPluginKit`ChatGPTPlugin[<|
471 | "Name" -> "CityPopulationFinder", "Description" -> "",
472 | "Prompt" -> "", "Endpoints" -> {
473 |
474 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[<|
475 | "OperationID" -> "getCityPopulation", "Prompt" ->
476 | Missing["NotSpecified"],
477 | "Parameters" -> {
478 | "city" -> <|"Interpreter" -> "City", "Help" ->
479 | Missing["NotSpecified"], "Required" -> True|>},
480 | "Function" -> (Slot["city"]["Population"]& ),
481 | "APIFunctionOptions" -> {}|>, {}]}|>, {}], "URL" ->
482 | "https://chriswolfram-assets.wolframcloud.com"|>]["URL"]],
483 | Evaluator -> Automatic, Method -> "Preemptive"]},
484 | "RowDefault"], "SummaryItem"]}}, AutoDelete -> False,
485 | BaseStyle -> {
486 | ShowStringCharacters -> False, NumberMarks -> False,
487 | PrintPrecision -> 3, ShowSyntaxStyles -> False},
488 | GridBoxAlignment -> {
489 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}},
490 | GridBoxItemSize -> {
491 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
492 | GridBoxSpacings -> {
493 | "Columns" -> {{2}}, "Rows" -> {{Automatic}}}]}}, AutoDelete ->
494 | False, BaselinePosition -> {1, 1},
495 | GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
496 | GridBoxItemSize -> {
497 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], True ->
498 | GridBox[{{
499 | PaneBox[
500 | ButtonBox[
501 | DynamicBox[
502 | FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxCloser"]],
503 | Appearance -> None, BaseStyle -> {},
504 | ButtonFunction :> (Typeset`open$$ = False), Evaluator ->
505 | Automatic, Method -> "Preemptive"],
506 | Alignment -> {Center, Center}, ImageSize ->
507 | Dynamic[{
508 | Automatic,
509 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
510 | Magnification])}]],
511 | GridBox[{{
512 | TagBox[
513 | TemplateBox[{
514 | RowBox[{
515 | TagBox["\"url: \"", "SummaryItemAnnotation"],
516 | "\[InvisibleSpace]",
517 | TagBox[
518 | "\"https://chriswolfram-assets.wolframcloud.com\"",
519 | "SummaryItem"]}],
520 | ButtonBox[
521 |
522 | DynamicModuleBox[{
523 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$ =
524 | False, Wolfram`ChatGPTPluginKit`CopyButton`Private`\
525 | mouseHover$$ = False},
526 | TagBox[
527 | PaneSelectorBox[{"Default" -> FrameBox[
528 | GraphicsBox[
529 | GeometricTransformationBox[{
530 | GrayLevel[0.65],
531 | Thickness[0.05],
532 | CapForm["Butt"],
533 | JoinForm["Bevel"],
534 |
535 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
536 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
537 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
538 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
539 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
540 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
541 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
542 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
543 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
544 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
545 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
546 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
547 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
548 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
549 | 9.895429611206055, 21.}, {11., 21.}}},
550 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
551 | ImageSize -> 20], FrameStyle -> GrayLevel[0, 0],
552 | RoundingRadius -> 5, FrameMargins -> 5, Background ->
553 | GrayLevel[0, 0], StripOnInput -> False], "Hover" ->
554 | FrameBox[
555 | GraphicsBox[
556 | GeometricTransformationBox[{
557 | GrayLevel[0.286],
558 | Thickness[0.05],
559 | CapForm["Butt"],
560 | JoinForm["Bevel"],
561 |
562 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
563 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
564 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
565 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
566 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
567 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
568 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
569 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
570 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
571 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
572 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
573 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
574 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
575 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
576 | 9.895429611206055, 21.}, {11., 21.}}},
577 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
578 | ImageSize -> 20], FrameStyle -> GrayLevel[0, 0],
579 | RoundingRadius -> 5, FrameMargins -> 5, Background ->
580 | GrayLevel[0, 0], StripOnInput -> False], "Pressed" ->
581 | FrameBox[
582 | GraphicsBox[
583 | GeometricTransformationBox[{
584 | GrayLevel[0.286],
585 | Thickness[0.05],
586 | CapForm["Butt"],
587 | JoinForm["Bevel"],
588 |
589 | JoinedCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3,
590 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}, {{0, 2, 0}, {1, 3,
591 | 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1,
592 | 0}, {1, 3, 3}}}, {{{9., 15.}, {5., 15.}, {
593 | 3.895430088043213, 15.}, {3., 14.104599952697754`}, {3.,
594 | 13.}, {3., 5.}, {3., 3.895430088043213}, {
595 | 3.895430088043213, 3.}, {5., 3.}, {13., 3.}, {
596 | 14.104599952697754`, 3.}, {15., 3.895430088043213}, {15.,
597 | 5.}, {15., 9.}}, {{11., 21.}, {19., 21.}, {
598 | 20.10460090637207, 21.}, {21., 20.10460090637207}, {21.,
599 | 19.}, {21., 11.}, {21., 9.895429611206055}, {
600 | 20.10460090637207, 9.}, {19., 9.}, {11., 9.}, {
601 | 9.895429611206055, 9.}, {9., 9.895429611206055}, {9.,
602 | 11.}, {9., 19.}, {9., 20.10460090637207}, {
603 | 9.895429611206055, 21.}, {11., 21.}}},
604 | CurveClosed -> {0, 1}]}, {{{1, 0}, {0, -1}}, {0, 0}}],
605 | ImageSize -> 20], FrameStyle -> GrayLevel[0, 0],
606 | RoundingRadius -> 5, FrameMargins -> 5, Background ->
607 | GrayLevel[0., 0.05], StripOnInput -> False]},
608 | Dynamic[
609 | FEPrivate`Which[
610 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
611 | "Pressed",
612 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
613 | "Hover", True, "Default"]]],
614 |
615 | EventHandlerTag[{
616 | "MouseDown" :>
617 | FEPrivate`Set[
618 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
619 | True], "MouseUp" :>
620 | FEPrivate`Set[
621 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseDown$$,
622 | False], "MouseEntered" :>
623 | FEPrivate`Set[
624 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
625 | True], "MouseExited" :>
626 | FEPrivate`Set[
627 | Wolfram`ChatGPTPluginKit`CopyButton`Private`mouseHover$$,
628 | False], PassEventsDown -> True, Method -> "Preemptive",
629 | PassEventsUp -> True}]], DynamicModuleValues :> {}],
630 | ButtonFunction :> CopyToClipboard[
631 |
632 | Wolfram`ChatGPTPluginKit`ChatGPTPluginCloudDeployment[<|
633 | "CloudObjects" -> {
634 | CloudObject[
635 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
636 | known/ai-plugin.json"],
637 | CloudObject[
638 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
639 | known/openapi.json"],
640 | CloudObject[
641 | "https://www.wolframcloud.com/obj/chriswolfram/\
642 | getCityPopulation"]}, "Plugin" ->
643 | Wolfram`ChatGPTPluginKit`ChatGPTPlugin[<|
644 | "Name" -> "CityPopulationFinder", "Description" -> "",
645 | "Prompt" -> "", "Endpoints" -> {
646 |
647 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[<|
648 | "OperationID" -> "getCityPopulation", "Prompt" ->
649 | Missing["NotSpecified"],
650 | "Parameters" -> {
651 | "city" -> <|"Interpreter" -> "City", "Help" ->
652 | Missing["NotSpecified"], "Required" -> True|>},
653 | "Function" -> (Slot["city"]["Population"]& ),
654 | "APIFunctionOptions" -> {}|>, {}]}|>, {}], "URL" ->
655 | "https://chriswolfram-assets.wolframcloud.com"|>]["URL"]],
656 | Appearance -> {
657 | "Default" ->
658 | FrontEnd`FileName[{"Misc"}, "TransparentBG.9.png"]},
659 | Evaluator -> Automatic, Method -> "Preemptive"]},
660 | "RowDefault"], "SummaryItem"]}, {
661 | RowBox[{
662 | TagBox["\"plugin: \"", "SummaryItemAnnotation"],
663 | "\[InvisibleSpace]",
664 | TagBox[
665 | InterpretationBox[
666 | RowBox[{
667 | TagBox["ChatGPTPlugin", "SummaryHead"], "[",
668 |
669 | DynamicModuleBox[{
670 | Typeset`open$$ = False, Typeset`embedState$$ = "Ready"},
671 | TemplateBox[{
672 | PaneSelectorBox[{False -> GridBox[{{
673 | PaneBox[
674 | ButtonBox[
675 | DynamicBox[
676 | FEPrivate`FrontEndResource[
677 | "FEBitmaps", "SummaryBoxOpener"]],
678 | ButtonFunction :> (Typeset`open$$ = True), Appearance ->
679 | None, BaseStyle -> {}, Evaluator -> Automatic, Method ->
680 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
681 | Dynamic[{Automatic,
682 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
683 | Magnification])}]],
684 | GridBox[{{
685 | RowBox[{
686 | TagBox["\"name: \"", "SummaryItemAnnotation"],
687 | "\[InvisibleSpace]",
688 | TagBox["\"CityPopulationFinder\"", "SummaryItem"]}]}, {
689 | RowBox[{
690 | TagBox["\"description: \"", "SummaryItemAnnotation"],
691 | "\[InvisibleSpace]",
692 | TagBox["\"\"", "SummaryItem"]}]}},
693 | GridBoxAlignment -> {
694 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}},
695 | AutoDelete -> False,
696 | GridBoxItemSize -> {
697 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
698 | GridBoxSpacings -> {
699 | "Columns" -> {{2}}, "Rows" -> {{Automatic}}},
700 | BaseStyle -> {
701 | ShowStringCharacters -> False, NumberMarks -> False,
702 | PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
703 | GridBoxAlignment -> {
704 | "Columns" -> {{Left}}, "Rows" -> {{Top}}}, AutoDelete ->
705 | False, GridBoxItemSize -> {
706 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
707 | BaselinePosition -> {1, 1}], True -> GridBox[{{
708 | PaneBox[
709 | ButtonBox[
710 | DynamicBox[
711 | FEPrivate`FrontEndResource[
712 | "FEBitmaps", "SummaryBoxCloser"]],
713 | ButtonFunction :> (Typeset`open$$ = False), Appearance ->
714 | None, BaseStyle -> {}, Evaluator -> Automatic, Method ->
715 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
716 | Dynamic[{Automatic,
717 | 3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
718 | Magnification])}]],
719 | GridBox[{{
720 | RowBox[{
721 | TagBox["\"name: \"", "SummaryItemAnnotation"],
722 | "\[InvisibleSpace]",
723 | TagBox["\"CityPopulationFinder\"", "SummaryItem"]}]}, {
724 | RowBox[{
725 | TagBox["\"description: \"", "SummaryItemAnnotation"],
726 | "\[InvisibleSpace]",
727 | TagBox["\"\"", "SummaryItem"]}]}, {
728 | RowBox[{
729 | TagBox["\"endpoints: \"", "SummaryItemAnnotation"],
730 | "\[InvisibleSpace]",
731 | TagBox[
732 | TagBox[
733 | GridBox[{{
734 | InterpretationBox[
735 | RowBox[{
736 | TagBox["ChatGPTPluginEndpoint", "SummaryHead"], "[",
737 |
738 | DynamicModuleBox[{Typeset`open$$ = False,
739 | Typeset`embedState$$ = "Ready"},
740 | TemplateBox[{
741 | PaneSelectorBox[{False -> GridBox[{{
742 | PaneBox[
743 | ButtonBox[
744 | DynamicBox[
745 | FEPrivate`FrontEndResource[
746 | "FEBitmaps", "SummaryBoxOpener"]],
747 | ButtonFunction :> (Typeset`open$$ = True), Appearance ->
748 | None, BaseStyle -> {}, Evaluator -> Automatic, Method ->
749 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
750 | Dynamic[{Automatic, 3.5 (CurrentValue["FontCapHeight"]/
751 | AbsoluteCurrentValue[Magnification])}]],
752 | GridBox[{{
753 | RowBox[{
754 | TagBox["\"name: \"", "SummaryItemAnnotation"],
755 | "\[InvisibleSpace]",
756 | TagBox["\"getCityPopulation\"", "SummaryItem"]}]}},
757 | GridBoxAlignment -> {"Columns" -> {{Left}},
758 | "Rows" -> {{Automatic}}}, AutoDelete -> False,
759 | GridBoxItemSize -> {"Columns" -> {{Automatic}},
760 | "Rows" -> {{Automatic}}}, GridBoxSpacings -> {
761 | "Columns" -> {{2}}, "Rows" -> {{Automatic}}},
762 | BaseStyle -> {ShowStringCharacters -> False, NumberMarks ->
763 | False, PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
764 | GridBoxAlignment -> {"Columns" -> {{Left}},
765 | "Rows" -> {{Top}}}, AutoDelete -> False,
766 | GridBoxItemSize -> {"Columns" -> {{Automatic}},
767 | "Rows" -> {{Automatic}}}, BaselinePosition -> {1, 1}],
768 | True -> GridBox[{{
769 | PaneBox[
770 | ButtonBox[
771 | DynamicBox[
772 | FEPrivate`FrontEndResource[
773 | "FEBitmaps", "SummaryBoxCloser"]],
774 | ButtonFunction :> (Typeset`open$$ = False), Appearance ->
775 | None, BaseStyle -> {}, Evaluator -> Automatic, Method ->
776 | "Preemptive"], Alignment -> {Center, Center}, ImageSize ->
777 | Dynamic[{Automatic, 3.5 (CurrentValue["FontCapHeight"]/
778 | AbsoluteCurrentValue[Magnification])}]],
779 | GridBox[{{
780 | RowBox[{
781 | TagBox["\"name: \"", "SummaryItemAnnotation"],
782 | "\[InvisibleSpace]",
783 | TagBox["\"getCityPopulation\"", "SummaryItem"]}]}, {
784 | RowBox[{
785 | TagBox["\"prompt: \"", "SummaryItemAnnotation"],
786 | "\[InvisibleSpace]",
787 | TagBox[
788 | RowBox[{"Missing", "[", "\"NotSpecified\"", "]"}],
789 | "SummaryItem"]}]}}, GridBoxAlignment -> {
790 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}},
791 | AutoDelete -> False, GridBoxItemSize -> {
792 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
793 | GridBoxSpacings -> {"Columns" -> {{2}},
794 | "Rows" -> {{Automatic}}}, BaseStyle -> {
795 | ShowStringCharacters -> False, NumberMarks -> False,
796 | PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
797 | GridBoxAlignment -> {"Columns" -> {{Left}},
798 | "Rows" -> {{Top}}}, AutoDelete -> False,
799 | GridBoxItemSize -> {"Columns" -> {{Automatic}},
800 | "Rows" -> {{Automatic}}}, BaselinePosition -> {1, 1}]},
801 | Dynamic[Typeset`open$$], ImageSize -> Automatic]},
802 | "SummaryPanel"], DynamicModuleValues :> {}], "]"}],
803 |
804 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[<|
805 | "OperationID" -> "getCityPopulation", "Prompt" ->
806 | Missing["NotSpecified"],
807 | "Parameters" -> {"city" -> <|
808 | "Interpreter" -> "City", "Help" ->
809 | Missing["NotSpecified"], "Required" -> True|>},
810 | "Function" -> (Slot["city"]["Population"]& ),
811 | "APIFunctionOptions" -> {}|>, {}], Selectable -> False,
812 | Editable -> False, SelectWithContents -> True]}},
813 | GridBoxAlignment -> {"Columns" -> {{Left}}},
814 | DefaultBaseStyle -> "Column",
815 | GridBoxItemSize -> {
816 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
817 | "Column"], "SummaryItem"]}]}, {
818 | RowBox[{
819 | TagBox["\"prompt: \"", "SummaryItemAnnotation"],
820 | "\[InvisibleSpace]",
821 | TagBox["\"\"", "SummaryItem"]}]}},
822 | GridBoxAlignment -> {
823 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}},
824 | AutoDelete -> False,
825 | GridBoxItemSize -> {
826 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
827 | GridBoxSpacings -> {
828 | "Columns" -> {{2}}, "Rows" -> {{Automatic}}},
829 | BaseStyle -> {
830 | ShowStringCharacters -> False, NumberMarks -> False,
831 | PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
832 | GridBoxAlignment -> {
833 | "Columns" -> {{Left}}, "Rows" -> {{Top}}}, AutoDelete ->
834 | False, GridBoxItemSize -> {
835 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
836 | BaselinePosition -> {1, 1}]},
837 | Dynamic[Typeset`open$$], ImageSize -> Automatic]},
838 | "SummaryPanel"], DynamicModuleValues :> {}], "]"}],
839 |
840 | Wolfram`ChatGPTPluginKit`ChatGPTPlugin[<|
841 | "Name" -> "CityPopulationFinder", "Description" -> "",
842 | "Prompt" -> "", "Endpoints" -> {
843 |
844 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[<|
845 | "OperationID" -> "getCityPopulation", "Prompt" ->
846 | Missing["NotSpecified"],
847 | "Parameters" -> {
848 | "city" -> <|
849 | "Interpreter" -> "City", "Help" ->
850 | Missing["NotSpecified"], "Required" -> True|>},
851 | "Function" -> (Slot["city"]["Population"]& ),
852 | "APIFunctionOptions" -> {}|>, {}]}|>, {}], Editable ->
853 | False, SelectWithContents -> True, Selectable -> False],
854 | "SummaryItem"]}]}, {
855 | RowBox[{
856 | TagBox["\"cloud objects: \"", "SummaryItemAnnotation"],
857 | "\[InvisibleSpace]",
858 | TagBox[
859 | RowBox[{"{",
860 | RowBox[{
861 | InterpretationBox[
862 | RowBox[{"CloudObject", "[",
863 |
864 | TemplateBox[{
865 | "\"https://www.wolframcloud.com/obj/chriswolfram/.well-\
866 | known/ai-plugin.json\"",
867 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
868 | known/ai-plugin.json"}, "HyperlinkURL"], "]"}],
869 | CloudObject[
870 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
871 | known/ai-plugin.json"], SelectWithContents -> True], ",",
872 | InterpretationBox[
873 | RowBox[{"CloudObject", "[",
874 |
875 | TemplateBox[{
876 | "\"https://www.wolframcloud.com/obj/chriswolfram/.well-\
877 | known/openapi.json\"",
878 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
879 | known/openapi.json"}, "HyperlinkURL"], "]"}],
880 | CloudObject[
881 | "https://www.wolframcloud.com/obj/chriswolfram/.well-\
882 | known/openapi.json"], SelectWithContents -> True], ",",
883 | InterpretationBox[
884 | RowBox[{"CloudObject", "[",
885 | TemplateBox[{
886 | "\"https://www.wolframcloud.com/obj/chriswolfram/\
887 | getCityPopulation\"",
888 | "https://www.wolframcloud.com/obj/chriswolfram/\
889 | getCityPopulation"}, "HyperlinkURL"], "]"}],
890 | CloudObject[
891 | "https://www.wolframcloud.com/obj/chriswolfram/\
892 | getCityPopulation"], SelectWithContents -> True]}], "}"}], "SummaryItem"]}]}},
893 | AutoDelete -> False,
894 | BaseStyle -> {
895 | ShowStringCharacters -> False, NumberMarks -> False,
896 | PrintPrecision -> 3, ShowSyntaxStyles -> False},
897 | GridBoxAlignment -> {
898 | "Columns" -> {{Left}}, "Rows" -> {{Automatic}}},
899 | GridBoxItemSize -> {
900 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
901 | GridBoxSpacings -> {
902 | "Columns" -> {{2}}, "Rows" -> {{Automatic}}}]}}, AutoDelete ->
903 | False, BaselinePosition -> {1, 1},
904 | GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
905 | GridBoxItemSize -> {
906 | "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}]},
907 | Dynamic[Typeset`open$$], ImageSize -> Automatic]},
908 | "SummaryPanel"],
909 | DynamicModuleValues:>{}], "]"}],
910 | Wolfram`ChatGPTPluginKit`ChatGPTPluginCloudDeployment[<|"CloudObjects" -> {
911 | CloudObject[
912 | "https://www.wolframcloud.com/obj/chriswolfram/.well-known/ai-plugin.\
913 | json"],
914 | CloudObject[
915 | "https://www.wolframcloud.com/obj/chriswolfram/.well-known/openapi.\
916 | json"],
917 | CloudObject[
918 | "https://www.wolframcloud.com/obj/chriswolfram/getCityPopulation"]},
919 | "Plugin" -> Wolfram`ChatGPTPluginKit`ChatGPTPlugin[<|
920 | "Name" -> "CityPopulationFinder", "Description" -> "", "Prompt" -> "",
921 | "Endpoints" -> {
922 | Wolfram`ChatGPTPluginKit`ChatGPTPluginEndpoint[<|
923 | "OperationID" -> "getCityPopulation", "Prompt" ->
924 | Missing["NotSpecified"],
925 | "Parameters" -> {
926 | "city" -> <|
927 | "Interpreter" -> "City", "Help" -> Missing["NotSpecified"],
928 | "Required" -> True|>},
929 | "Function" -> (Slot["city"]["Population"]& ),
930 | "APIFunctionOptions" -> {}|>, {}]}|>, {}], "URL" ->
931 | "https://chriswolfram-assets.wolframcloud.com"|>],
932 | Editable->False,
933 | SelectWithContents->True,
934 | Selectable->False]], "Output",
935 | CellChangeTimes->{{3.889473027310793*^9, 3.8894730306369877`*^9},
936 | 3.8903243280603333`*^9, {3.890398778190605*^9, 3.890398818646522*^9},
937 | 3.890925190601407*^9, 3.890925234555771*^9, 3.8909253999360323`*^9, {
938 | 3.8909257584431334`*^9, 3.890925765005921*^9}},
939 | CellLabel->"Out[4]=",
940 | CellID->1503385882,ExpressionUUID->"901fed35-61d3-4429-a2f8-d906b358a6ce"]
941 | }, Open ]]
942 | }, Open ]],
943 |
944 | Cell[CellGroupData[{
945 |
946 | Cell[TextData[{
947 | "More Examples",
948 | Cell[BoxData[
949 | TemplateBox[{"MoreExamples",
950 | Cell[
951 | BoxData[
952 | FrameBox[
953 | Cell["Extended examples in standardized sections.", "MoreInfoText"],
954 | BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
955 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
956 | "cade88e8-391c-42ff-8ff8-d65d4250b723"]
957 | }], "ExtendedExamplesSection",
958 | CellTags->"ExtendedExamples",
959 | CellID->898621442,ExpressionUUID->"c8c94e85-9498-4c41-ac16-39e6dbaf79ff"],
960 |
961 | Cell[BoxData[
962 | InterpretationBox[Cell[
963 | "Scope", "ExampleSection",ExpressionUUID->
964 | "eff9adde-dc4b-4c83-b66e-50b7c7eb7bd9"],
965 | $Line = 0; Null]], "ExampleSection",
966 | CellID->2025569990,ExpressionUUID->"8af4922f-ee3a-4904-a715-14b33e4dbc28"],
967 |
968 | Cell[BoxData[
969 | InterpretationBox[Cell[
970 | "Generalizations & Extensions", "ExampleSection",ExpressionUUID->
971 | "61806c53-0030-4000-8db5-bbc004a4a953"],
972 | $Line = 0; Null]], "ExampleSection",
973 | CellID->1844049686,ExpressionUUID->"508ae225-d3e4-4c2c-95b6-e216333bb073"],
974 |
975 | Cell[CellGroupData[{
976 |
977 | Cell[BoxData[
978 | InterpretationBox[Cell[
979 | "Options", "ExampleSection",ExpressionUUID->
980 | "2bac4e5e-4e7f-40c7-84d3-eb691863a89f"],
981 | $Line = 0; Null]], "ExampleSection",
982 | CellID->459079098,ExpressionUUID->"bf09cc48-0e52-4168-b167-dea0d4b8f010"],
983 |
984 | Cell[BoxData[
985 | InterpretationBox[Cell[
986 | "XXXX", "ExampleSubsection",ExpressionUUID->
987 | "253395e6-96d2-430b-abfc-620464ef5e4a"],
988 | $Line = 0; Null]], "ExampleSubsection",
989 | CellID->1981140062,ExpressionUUID->"a06bcc4b-3764-4443-b9b4-ad38d24b2878"],
990 |
991 | Cell[BoxData[
992 | InterpretationBox[Cell[
993 | "XXXX", "ExampleSubsection",ExpressionUUID->
994 | "2bd3fcec-8c00-4361-bbd2-9c4ccd4364be"],
995 | $Line = 0; Null]], "ExampleSubsection",
996 | CellID->287075299,ExpressionUUID->"10f13369-c0a4-413c-84f5-544199bb33ab"]
997 | }, Open ]],
998 |
999 | Cell[BoxData[
1000 | InterpretationBox[Cell[
1001 | "Applications", "ExampleSection",ExpressionUUID->
1002 | "781fd8e1-2f48-48ce-995c-2c9355edf8c7"],
1003 | $Line = 0; Null]], "ExampleSection",
1004 | CellID->1626279131,ExpressionUUID->"6f5c877a-79cd-4dbd-bbfd-d1e00588f9c6"],
1005 |
1006 | Cell[BoxData[
1007 | InterpretationBox[Cell[
1008 | "Properties & Relations", "ExampleSection",ExpressionUUID->
1009 | "d53b5c80-5ded-48b3-9460-7fd87d361121"],
1010 | $Line = 0; Null]], "ExampleSection",
1011 | CellID->1848979348,ExpressionUUID->"18148ce1-f5a6-4ce2-be44-7cb4371d3115"],
1012 |
1013 | Cell[BoxData[
1014 | InterpretationBox[Cell[
1015 | "Possible Issues", "ExampleSection",ExpressionUUID->
1016 | "f27b7c13-b969-474d-af34-dca485ee49b2"],
1017 | $Line = 0; Null]], "ExampleSection",
1018 | CellID->1707529746,ExpressionUUID->"fba90314-4493-49b5-bd6d-9277896d179d"],
1019 |
1020 | Cell[BoxData[
1021 | InterpretationBox[Cell[
1022 | "Interactive Examples", "ExampleSection",ExpressionUUID->
1023 | "b92da9c3-8859-4ec4-9688-807054820573"],
1024 | $Line = 0; Null]], "ExampleSection",
1025 | CellID->1628466161,ExpressionUUID->"1fc1849a-cd0e-4c74-b824-77aacf779512"],
1026 |
1027 | Cell[BoxData[
1028 | InterpretationBox[Cell[
1029 | "Neat Examples", "ExampleSection",ExpressionUUID->
1030 | "1f64c429-bb34-451b-b07d-5d43297d4c60"],
1031 | $Line = 0; Null]], "ExampleSection",
1032 | CellID->2099170559,ExpressionUUID->"93fca0f4-934d-48d9-a14c-211d513576ae"]
1033 | }, Open ]],
1034 |
1035 | Cell[CellGroupData[{
1036 |
1037 | Cell["Metadata", "MetadataSection",
1038 | CellID->1898232197,ExpressionUUID->"9d2e0d82-95d0-49b4-9526-ad37d5865437"],
1039 |
1040 | Cell[TextData[{
1041 | "New in: ",
1042 | Cell["XX", "HistoryData",
1043 | CellTags->"New",ExpressionUUID->"a8b56489-8d72-4646-b7d3-a58561c052f9"],
1044 | " | Modified in: ",
1045 | Cell[" ", "HistoryData",
1046 | CellTags->"Modified",ExpressionUUID->"1ef22906-538b-444e-a644-4050ca9069a0"],
1047 | " | Obsolete in: ",
1048 | Cell[" ", "HistoryData",
1049 | CellTags->"Obsolete",ExpressionUUID->
1050 | "d494b45f-97b4-43d4-84eb-57ed824801fe"]
1051 | }], "History",
1052 | CellID->571475147,ExpressionUUID->"7f082a49-99ca-4dad-b59f-051a26533f27"],
1053 |
1054 | Cell[CellGroupData[{
1055 |
1056 | Cell[TextData[{
1057 | "Categorization",
1058 | Cell[BoxData[
1059 | TemplateBox[{"Metadata",
1060 | Cell[
1061 | BoxData[
1062 | FrameBox[
1063 | Cell[
1064 | "Metadata such as page URI, context, and type of documentation page.",
1065 | "MoreInfoText"], BaseStyle -> "IFrameBox"]], "MoreInfoTextOuter"]},
1066 | "MoreInfoOpenerButtonTemplate"]],ExpressionUUID->
1067 | "ecc8b287-77a9-42b1-a881-19e4bd92c67a"]
1068 | }], "CategorizationSection",
1069 | CellID->1235926245,ExpressionUUID->"7e763f2c-731c-408c-ac3a-b393c01566d9"],
1070 |
1071 | Cell["Symbol", "Categorization",
1072 | CellLabel->"Entity Type",
1073 | CellID->1750565931,ExpressionUUID->"f591e13f-6bc7-4055-b778-fe5454e7d4bc"],
1074 |
1075 | Cell["Wolfram/ChatGPTPluginKit", "Categorization",
1076 | CellLabel->"Paclet Name",
1077 | CellID->1235638417,ExpressionUUID->"8eadb8d8-643f-4739-a4c0-4c2bb73f054c"],
1078 |
1079 | Cell["Wolfram`ChatGPTPluginKit`", "Categorization",
1080 | CellLabel->"Context",
1081 | CellID->1208008029,ExpressionUUID->"8267840a-ce8a-4bca-b82b-f87458fcf01f"],
1082 |
1083 | Cell["Wolfram/ChatGPTPluginKit/ref/ChatGPTPluginCloudDeploy", "Categorization",
1084 | CellLabel->"URI",
1085 | CellID->680544665,ExpressionUUID->"7c89a560-2316-48ad-8231-7fb231f881ad"]
1086 | }, Closed]],
1087 |
1088 | Cell[CellGroupData[{
1089 |
1090 | Cell["Keywords", "KeywordsSection",
1091 | CellID->416280733,ExpressionUUID->"a1c84747-f43e-42b7-9781-ac784705f7ad"],
1092 |
1093 | Cell["XXXX", "Keywords",
1094 | CellID->2076041252,ExpressionUUID->"833929ce-6220-4890-9ee8-7711f3b053e0"]
1095 | }, Closed]],
1096 |
1097 | Cell[CellGroupData[{
1098 |
1099 | Cell["Syntax Templates", "TemplatesSection",
1100 | CellID->1858509555,ExpressionUUID->"5ae46f71-0fc8-4992-8450-3e84505773c7"],
1101 |
1102 | Cell[BoxData[""], "Template",
1103 | CellLabel->"Additional Function Template",
1104 | CellID->820445270,ExpressionUUID->"b29766dd-403d-4120-9eb1-a1d84bbbf445"],
1105 |
1106 | Cell[BoxData[""], "Template",
1107 | CellLabel->"Arguments Pattern",
1108 | CellID->231155503,ExpressionUUID->"a2a4a171-506d-4491-b9c2-cb6cb5c5977e"],
1109 |
1110 | Cell[BoxData[""], "Template",
1111 | CellLabel->"Local Variables",
1112 | CellID->232621498,ExpressionUUID->"80f333e1-c794-4224-9e44-8b55e521fd90"],
1113 |
1114 | Cell[BoxData[""], "Template",
1115 | CellLabel->"Color Equal Signs",
1116 | CellID->1249279346,ExpressionUUID->"b37b69d6-d875-4026-b161-df19eae441a6"]
1117 | }, Closed]]
1118 | }, Open ]]
1119 | },
1120 | WindowSize->{700, 770},
1121 | WindowMargins->{{151, Automatic}, {Automatic, 9}},
1122 | TaggingRules->{
1123 | "DocuToolsSettingsInternal" -> {
1124 | "$PacletVersion" -> "0.10.2323", "$ApplicationName" -> "Mathematica",
1125 | "$LinkBase" -> "Mathematica", "$ApplicationDirectory" ->
1126 | "/Users/christopher/cvs/Mathematica/", "$DocumentationDirectory" ->
1127 | "/Users/christopher/cvs/Mathematica/Documentation/English/",
1128 | "$UseNewPageDialog" -> ""},
1129 | "WelcomeScreenSettings" -> {"FEStarting" -> False}, "Paclet" ->
1130 | "Wolfram/ChatGPTPluginKit"},
1131 | FrontEndVersion->"13.3 for Mac OS X ARM (64-bit) (April 20, 2023)",
1132 | StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "FunctionPageStylesExt.nb",
1133 | CharacterEncoding -> "UTF-8"],
1134 | ExpressionUUID->"936c0d2f-7e9b-4e6d-831a-5968fa9576df"
1135 | ]
1136 | (* End of Notebook Content *)
1137 |
1138 | (* Internal cache information *)
1139 | (*CellTagsOutline
1140 | CellTagsIndex->{
1141 | "ExtendedExamples"->{
1142 | Cell[44692, 945, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"c8c94e85-9498-4c41-ac16-39e6dbaf79ff",
1143 | CellTags->"ExtendedExamples",
1144 | CellID->898621442]}
1145 | }
1146 | *)
1147 | (*CellTagsIndex
1148 | CellTagsIndex->{
1149 | {"ExtendedExamples", 51405, 1140}
1150 | }
1151 | *)
1152 | (*NotebookFileOutline
1153 | Notebook[{
1154 | Cell[CellGroupData[{
1155 | Cell[580, 22, 122, 1, 74, "ObjectName",ExpressionUUID->"fbae3251-84e8-4e4a-bbfe-ee3760bee80b",
1156 | CellID->1572053415],
1157 | Cell[705, 25, 496, 9, 79, "Usage",ExpressionUUID->"003034b2-4964-4808-9752-4959599a63d6",
1158 | CellID->1010436864],
1159 | Cell[1204, 36, 237, 4, 27, "Notes",ExpressionUUID->"bf498240-4d17-4847-b09b-2f7967fb0e0a",
1160 | CellID->111692772],
1161 | Cell[1444, 42, 679, 17, 28, "Notes",ExpressionUUID->"9fd6e944-fa56-42a0-8234-fdfbc122ba63",
1162 | CellID->1423540098],
1163 | Cell[2126, 61, 1041, 27, 47, "Notes",ExpressionUUID->"a4b09672-1847-4384-a5b3-772e6a66cfc3",
1164 | CellID->1103581460],
1165 | Cell[3170, 90, 847, 20, 28, "Notes",ExpressionUUID->"2571c1d5-00a0-4fda-8ae1-65e4da180a82",
1166 | CellID->1735908722],
1167 | Cell[4020, 112, 258, 3, 27, "Notes",ExpressionUUID->"a1d1cae9-c28e-4232-88a0-2f1e9d8fcd11",
1168 | CellID->178889690]
1169 | }, Open ]],
1170 | Cell[CellGroupData[{
1171 | Cell[4315, 120, 435, 12, 41, "TechNotesSection",ExpressionUUID->"f33e455b-c92a-4c61-b170-0f0effde0a9d",
1172 | CellID->319711526],
1173 | Cell[4753, 134, 100, 1, 19, "Tutorials",ExpressionUUID->"c46c99b3-56d9-4304-8602-ff28cb408a7a",
1174 | CellID->387532688]
1175 | }, Open ]],
1176 | Cell[CellGroupData[{
1177 | Cell[4890, 140, 473, 13, 40, "RelatedLinksSection",ExpressionUUID->"97756ea9-a4c5-48c2-8084-4ec207b1e0f8",
1178 | CellID->2091469512],
1179 | Cell[5366, 155, 104, 1, 19, "RelatedLinks",ExpressionUUID->"71ba1039-ce73-4d29-80fb-8268d7a10c7e",
1180 | CellID->1315754088]
1181 | }, Open ]],
1182 | Cell[CellGroupData[{
1183 | Cell[5507, 161, 459, 13, 40, "SeeAlsoSection",ExpressionUUID->"6c3eb39c-83df-43c6-ad76-9ecd3c2619ae",
1184 | CellID->1239843857],
1185 | Cell[5969, 176, 2115, 52, 23, "SeeAlso",ExpressionUUID->"ecdd96be-5b06-4daa-9e62-fa76a16e039f",
1186 | CellID->1021877758]
1187 | }, Open ]],
1188 | Cell[CellGroupData[{
1189 | Cell[8121, 233, 184, 2, 40, "MoreAboutSection",ExpressionUUID->"4fcbaa21-6d8d-4c21-b532-d5607504a54f",
1190 | CellID->1272753647],
1191 | Cell[8308, 237, 99, 1, 19, "MoreAbout",ExpressionUUID->"5f85763b-aa4f-4e3a-a581-03b6d51fca82",
1192 | CellID->85937362]
1193 | }, Open ]],
1194 | Cell[CellGroupData[{
1195 | Cell[8444, 243, 531, 14, 70, "ExamplesInitializationSection",ExpressionUUID->"cf609ad0-c1b4-4c77-930d-85dfe25d8065",
1196 | CellID->1240232350],
1197 | Cell[8978, 259, 185, 3, 47, "ExampleInitialization",ExpressionUUID->"028831b2-2759-4a8b-8672-34d02e191357",
1198 | CellID->1108828668]
1199 | }, Open ]],
1200 | Cell[CellGroupData[{
1201 | Cell[9200, 267, 442, 12, 73, "PrimaryExamplesSection",ExpressionUUID->"a9ca88cf-1e68-4d53-81af-78604043ec55",
1202 | CellID->220334410],
1203 | Cell[9645, 281, 305, 4, 24, "ExampleText",ExpressionUUID->"ebfb416f-9f4d-4da8-9add-39b97a97d1bd",
1204 | CellID->374440937],
1205 | Cell[CellGroupData[{
1206 | Cell[9975, 289, 1005, 22, 104, "Input",ExpressionUUID->"50a9cc11-1a62-48b9-9996-d4e57d51eac2",
1207 | CellID->428262334],
1208 | Cell[10983, 313, 33660, 626, 61, "Output",ExpressionUUID->"901fed35-61d3-4429-a2f8-d906b358a6ce",
1209 | CellID->1503385882]
1210 | }, Open ]]
1211 | }, Open ]],
1212 | Cell[CellGroupData[{
1213 | Cell[44692, 945, 487, 13, 58, "ExtendedExamplesSection",ExpressionUUID->"c8c94e85-9498-4c41-ac16-39e6dbaf79ff",
1214 | CellTags->"ExtendedExamples",
1215 | CellID->898621442],
1216 | Cell[45182, 960, 242, 5, 35, "ExampleSection",ExpressionUUID->"8af4922f-ee3a-4904-a715-14b33e4dbc28",
1217 | CellID->2025569990],
1218 | Cell[45427, 967, 265, 5, 23, "ExampleSection",ExpressionUUID->"508ae225-d3e4-4c2c-95b6-e216333bb073",
1219 | CellID->1844049686],
1220 | Cell[CellGroupData[{
1221 | Cell[45717, 976, 243, 5, 23, "ExampleSection",ExpressionUUID->"bf09cc48-0e52-4168-b167-dea0d4b8f010",
1222 | CellID->459079098],
1223 | Cell[45963, 983, 247, 5, 26, "ExampleSubsection",ExpressionUUID->"a06bcc4b-3764-4443-b9b4-ad38d24b2878",
1224 | CellID->1981140062],
1225 | Cell[46213, 990, 246, 5, 22, "ExampleSubsection",ExpressionUUID->"10f13369-c0a4-413c-84f5-544199bb33ab",
1226 | CellID->287075299]
1227 | }, Open ]],
1228 | Cell[46474, 998, 249, 5, 35, "ExampleSection",ExpressionUUID->"6f5c877a-79cd-4dbd-bbfd-d1e00588f9c6",
1229 | CellID->1626279131],
1230 | Cell[46726, 1005, 259, 5, 23, "ExampleSection",ExpressionUUID->"18148ce1-f5a6-4ce2-be44-7cb4371d3115",
1231 | CellID->1848979348],
1232 | Cell[46988, 1012, 252, 5, 23, "ExampleSection",ExpressionUUID->"fba90314-4493-49b5-bd6d-9277896d179d",
1233 | CellID->1707529746],
1234 | Cell[47243, 1019, 257, 5, 23, "ExampleSection",ExpressionUUID->"1fc1849a-cd0e-4c74-b824-77aacf779512",
1235 | CellID->1628466161],
1236 | Cell[47503, 1026, 250, 5, 23, "ExampleSection",ExpressionUUID->"93fca0f4-934d-48d9-a14c-211d513576ae",
1237 | CellID->2099170559]
1238 | }, Open ]],
1239 | Cell[CellGroupData[{
1240 | Cell[47790, 1036, 111, 1, 72, "MetadataSection",ExpressionUUID->"9d2e0d82-95d0-49b4-9526-ad37d5865437",
1241 | CellID->1898232197],
1242 | Cell[47904, 1039, 476, 12, 26, "History",ExpressionUUID->"7f082a49-99ca-4dad-b59f-051a26533f27",
1243 | CellID->571475147],
1244 | Cell[CellGroupData[{
1245 | Cell[48405, 1055, 485, 13, 21, "CategorizationSection",ExpressionUUID->"7e763f2c-731c-408c-ac3a-b393c01566d9",
1246 | CellID->1235926245],
1247 | Cell[48893, 1070, 135, 2, 70, "Categorization",ExpressionUUID->"f591e13f-6bc7-4055-b778-fe5454e7d4bc",
1248 | CellID->1750565931],
1249 | Cell[49031, 1074, 153, 2, 70, "Categorization",ExpressionUUID->"8eadb8d8-643f-4739-a4c0-4c2bb73f054c",
1250 | CellID->1235638417],
1251 | Cell[49187, 1078, 150, 2, 70, "Categorization",ExpressionUUID->"8267840a-ce8a-4bca-b82b-f87458fcf01f",
1252 | CellID->1208008029],
1253 | Cell[49340, 1082, 173, 2, 70, "Categorization",ExpressionUUID->"7c89a560-2316-48ad-8231-7fb231f881ad",
1254 | CellID->680544665]
1255 | }, Closed]],
1256 | Cell[CellGroupData[{
1257 | Cell[49550, 1089, 110, 1, 21, "KeywordsSection",ExpressionUUID->"a1c84747-f43e-42b7-9781-ac784705f7ad",
1258 | CellID->416280733],
1259 | Cell[49663, 1092, 100, 1, 70, "Keywords",ExpressionUUID->"833929ce-6220-4890-9ee8-7711f3b053e0",
1260 | CellID->2076041252]
1261 | }, Closed]],
1262 | Cell[CellGroupData[{
1263 | Cell[49800, 1098, 120, 1, 21, "TemplatesSection",ExpressionUUID->"5ae46f71-0fc8-4992-8450-3e84505773c7",
1264 | CellID->1858509555],
1265 | Cell[49923, 1101, 148, 2, 70, "Template",ExpressionUUID->"b29766dd-403d-4120-9eb1-a1d84bbbf445",
1266 | CellID->820445270],
1267 | Cell[50074, 1105, 137, 2, 70, "Template",ExpressionUUID->"a2a4a171-506d-4491-b9c2-cb6cb5c5977e",
1268 | CellID->231155503],
1269 | Cell[50214, 1109, 135, 2, 70, "Template",ExpressionUUID->"80f333e1-c794-4224-9e44-8b55e521fd90",
1270 | CellID->232621498],
1271 | Cell[50352, 1113, 138, 2, 70, "Template",ExpressionUUID->"b37b69d6-d875-4026-b161-df19eae441a6",
1272 | CellID->1249279346]
1273 | }, Closed]]
1274 | }, Open ]]
1275 | }
1276 | ]
1277 | *)
1278 |
1279 |
--------------------------------------------------------------------------------