├── .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 | cityPopulation 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 | ![FileBrowser](https://user-images.githubusercontent.com/5055424/231871756-319b280d-ceb4-4229-8bfb-4967fc654727.png) 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 | ![Databases](https://user-images.githubusercontent.com/5055424/231873761-f5377093-ced3-48b2-bead-19d92e3573a4.png) 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 | ![KernelAccess](https://user-images.githubusercontent.com/5055424/231874481-cd558372-679e-477a-a840-eb71934b2c49.png) 98 | 99 | Later in the same kernel: 100 | 101 | ```wl 102 | shortestTourPlot[Thread@RandomGeoPosition[10]] 103 | ``` 104 | 105 | image 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 | ![DocumentationSearch](https://user-images.githubusercontent.com/5055424/231877625-a0c14506-3120-4d0c-a580-bdf5c0fe17d7.png) 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 | ![WebAccess](https://user-images.githubusercontent.com/5055424/231878684-1e3946ee-8c47-4215-a9e1-256422c0da01.png) 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 | ![SendMessage](https://user-images.githubusercontent.com/5055424/231879054-b7c15846-040d-4c4b-9dfc-1b3870b6030e.png) 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 | ![FileOrganizer](https://user-images.githubusercontent.com/5055424/231879851-f0aec1ae-bf70-40ab-ae18-68a0a6cea6af.png) 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 | ![ProgrammingAssistant](https://user-images.githubusercontent.com/5055424/231881412-97f5c8cb-45c1-4250-bc1e-eb9c664c87de.png) 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 | --------------------------------------------------------------------------------