├── .gitignore ├── GPTs ├── README.md └── Voxscript-GPT-API-Definition.json ├── Python └── Langchain │ └── Example1 │ └── Voxcript_Example1_GetCurrentTime.py └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Ww][Ii][Nn]32/ 27 | [Aa][Rr][Mm]/ 28 | [Aa][Rr][Mm]64/ 29 | bld/ 30 | [Bb]in/ 31 | [Oo]bj/ 32 | [Ll]og/ 33 | [Ll]ogs/ 34 | 35 | # Visual Studio 2015/2017 cache/options directory 36 | .vs/ 37 | # Uncomment if you have tasks that create the project's static files in wwwroot 38 | #wwwroot/ 39 | 40 | # Visual Studio 2017 auto generated files 41 | Generated\ Files/ 42 | 43 | # MSTest test Results 44 | [Tt]est[Rr]esult*/ 45 | [Bb]uild[Ll]og.* 46 | 47 | # NUnit 48 | *.VisualState.xml 49 | TestResult.xml 50 | nunit-*.xml 51 | 52 | # Build Results of an ATL Project 53 | [Dd]ebugPS/ 54 | [Rr]eleasePS/ 55 | dlldata.c 56 | 57 | # Benchmark Results 58 | BenchmarkDotNet.Artifacts/ 59 | 60 | # .NET Core 61 | project.lock.json 62 | project.fragment.lock.json 63 | artifacts/ 64 | 65 | # ASP.NET Scaffolding 66 | ScaffoldingReadMe.txt 67 | 68 | # StyleCop 69 | StyleCopReport.xml 70 | 71 | # Files built by Visual Studio 72 | *_i.c 73 | *_p.c 74 | *_h.h 75 | *.ilk 76 | *.meta 77 | *.obj 78 | *.iobj 79 | *.pch 80 | *.pdb 81 | *.ipdb 82 | *.pgc 83 | *.pgd 84 | *.rsp 85 | *.sbr 86 | *.tlb 87 | *.tli 88 | *.tlh 89 | *.tmp 90 | *.tmp_proj 91 | *_wpftmp.csproj 92 | *.log 93 | *.tlog 94 | *.vspscc 95 | *.vssscc 96 | .builds 97 | *.pidb 98 | *.svclog 99 | *.scc 100 | 101 | # Chutzpah Test files 102 | _Chutzpah* 103 | 104 | # Visual C++ cache files 105 | ipch/ 106 | *.aps 107 | *.ncb 108 | *.opendb 109 | *.opensdf 110 | *.sdf 111 | *.cachefile 112 | *.VC.db 113 | *.VC.VC.opendb 114 | 115 | # Visual Studio profiler 116 | *.psess 117 | *.vsp 118 | *.vspx 119 | *.sap 120 | 121 | # Visual Studio Trace Files 122 | *.e2e 123 | 124 | # TFS 2012 Local Workspace 125 | $tf/ 126 | 127 | # Guidance Automation Toolkit 128 | *.gpState 129 | 130 | # ReSharper is a .NET coding add-in 131 | _ReSharper*/ 132 | *.[Rr]e[Ss]harper 133 | *.DotSettings.user 134 | 135 | # TeamCity is a build add-in 136 | _TeamCity* 137 | 138 | # DotCover is a Code Coverage Tool 139 | *.dotCover 140 | 141 | # AxoCover is a Code Coverage Tool 142 | .axoCover/* 143 | !.axoCover/settings.json 144 | 145 | # Coverlet is a free, cross platform Code Coverage Tool 146 | coverage*.json 147 | coverage*.xml 148 | coverage*.info 149 | 150 | # Visual Studio code coverage results 151 | *.coverage 152 | *.coveragexml 153 | 154 | # NCrunch 155 | _NCrunch_* 156 | .*crunch*.local.xml 157 | nCrunchTemp_* 158 | 159 | # MightyMoose 160 | *.mm.* 161 | AutoTest.Net/ 162 | 163 | # Web workbench (sass) 164 | .sass-cache/ 165 | 166 | # Installshield output folder 167 | [Ee]xpress/ 168 | 169 | # DocProject is a documentation generator add-in 170 | DocProject/buildhelp/ 171 | DocProject/Help/*.HxT 172 | DocProject/Help/*.HxC 173 | DocProject/Help/*.hhc 174 | DocProject/Help/*.hhk 175 | DocProject/Help/*.hhp 176 | DocProject/Help/Html2 177 | DocProject/Help/html 178 | 179 | # Click-Once directory 180 | publish/ 181 | 182 | # Publish Web Output 183 | *.[Pp]ublish.xml 184 | *.azurePubxml 185 | # Note: Comment the next line if you want to checkin your web deploy settings, 186 | # but database connection strings (with potential passwords) will be unencrypted 187 | *.pubxml 188 | *.publishproj 189 | 190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 191 | # checkin your Azure Web App publish settings, but sensitive information contained 192 | # in these scripts will be unencrypted 193 | PublishScripts/ 194 | 195 | # NuGet Packages 196 | *.nupkg 197 | # NuGet Symbol Packages 198 | *.snupkg 199 | # The packages folder can be ignored because of Package Restore 200 | **/[Pp]ackages/* 201 | # except build/, which is used as an MSBuild target. 202 | !**/[Pp]ackages/build/ 203 | # Uncomment if necessary however generally it will be regenerated when needed 204 | #!**/[Pp]ackages/repositories.config 205 | # NuGet v3's project.json files produces more ignorable files 206 | *.nuget.props 207 | *.nuget.targets 208 | 209 | # Microsoft Azure Build Output 210 | csx/ 211 | *.build.csdef 212 | 213 | # Microsoft Azure Emulator 214 | ecf/ 215 | rcf/ 216 | 217 | # Windows Store app package directories and files 218 | AppPackages/ 219 | BundleArtifacts/ 220 | Package.StoreAssociation.xml 221 | _pkginfo.txt 222 | *.appx 223 | *.appxbundle 224 | *.appxupload 225 | 226 | # Visual Studio cache files 227 | # files ending in .cache can be ignored 228 | *.[Cc]ache 229 | # but keep track of directories ending in .cache 230 | !?*.[Cc]ache/ 231 | 232 | # Others 233 | ClientBin/ 234 | ~$* 235 | *~ 236 | *.dbmdl 237 | *.dbproj.schemaview 238 | *.jfm 239 | *.pfx 240 | *.publishsettings 241 | orleans.codegen.cs 242 | 243 | # Including strong name files can present a security risk 244 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 245 | #*.snk 246 | 247 | # Since there are multiple workflows, uncomment next line to ignore bower_components 248 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 249 | #bower_components/ 250 | 251 | # RIA/Silverlight projects 252 | Generated_Code/ 253 | 254 | # Backup & report files from converting an old project file 255 | # to a newer Visual Studio version. Backup files are not needed, 256 | # because we have git ;-) 257 | _UpgradeReport_Files/ 258 | Backup*/ 259 | UpgradeLog*.XML 260 | UpgradeLog*.htm 261 | ServiceFabricBackup/ 262 | *.rptproj.bak 263 | 264 | # SQL Server files 265 | *.mdf 266 | *.ldf 267 | *.ndf 268 | 269 | # Business Intelligence projects 270 | *.rdl.data 271 | *.bim.layout 272 | *.bim_*.settings 273 | *.rptproj.rsuser 274 | *- [Bb]ackup.rdl 275 | *- [Bb]ackup ([0-9]).rdl 276 | *- [Bb]ackup ([0-9][0-9]).rdl 277 | 278 | # Microsoft Fakes 279 | FakesAssemblies/ 280 | 281 | # GhostDoc plugin setting file 282 | *.GhostDoc.xml 283 | 284 | # Node.js Tools for Visual Studio 285 | .ntvs_analysis.dat 286 | node_modules/ 287 | 288 | # Visual Studio 6 build log 289 | *.plg 290 | 291 | # Visual Studio 6 workspace options file 292 | *.opt 293 | 294 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 295 | *.vbw 296 | 297 | # Visual Studio 6 auto-generated project file (contains which files were open etc.) 298 | *.vbp 299 | 300 | # Visual Studio 6 workspace and project file (working project files containing files to include in project) 301 | *.dsw 302 | *.dsp 303 | 304 | # Visual Studio 6 technical files 305 | *.ncb 306 | *.aps 307 | 308 | # Visual Studio LightSwitch build output 309 | **/*.HTMLClient/GeneratedArtifacts 310 | **/*.DesktopClient/GeneratedArtifacts 311 | **/*.DesktopClient/ModelManifest.xml 312 | **/*.Server/GeneratedArtifacts 313 | **/*.Server/ModelManifest.xml 314 | _Pvt_Extensions 315 | 316 | # Paket dependency manager 317 | .paket/paket.exe 318 | paket-files/ 319 | 320 | # FAKE - F# Make 321 | .fake/ 322 | 323 | # CodeRush personal settings 324 | .cr/personal 325 | 326 | # Python Tools for Visual Studio (PTVS) 327 | __pycache__/ 328 | *.pyc 329 | 330 | # Cake - Uncomment if you are using it 331 | # tools/** 332 | # !tools/packages.config 333 | 334 | # Tabs Studio 335 | *.tss 336 | 337 | # Telerik's JustMock configuration file 338 | *.jmconfig 339 | 340 | # BizTalk build output 341 | *.btp.cs 342 | *.btm.cs 343 | *.odx.cs 344 | *.xsd.cs 345 | 346 | # OpenCover UI analysis results 347 | OpenCover/ 348 | 349 | # Azure Stream Analytics local run output 350 | ASALocalRun/ 351 | 352 | # MSBuild Binary and Structured Log 353 | *.binlog 354 | 355 | # NVidia Nsight GPU debugger configuration file 356 | *.nvuser 357 | 358 | # MFractors (Xamarin productivity tool) working folder 359 | .mfractor/ 360 | 361 | # Local History for Visual Studio 362 | .localhistory/ 363 | 364 | # Visual Studio History (VSHistory) files 365 | .vshistory/ 366 | 367 | # BeatPulse healthcheck temp database 368 | healthchecksdb 369 | 370 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 371 | MigrationBackup/ 372 | 373 | # Ionide (cross platform F# VS Code tools) working folder 374 | .ionide/ 375 | 376 | # Fody - auto-generated XML schema 377 | FodyWeavers.xsd 378 | 379 | # VS Code files for those working on multiple tools 380 | .vscode/* 381 | !.vscode/settings.json 382 | !.vscode/tasks.json 383 | !.vscode/launch.json 384 | !.vscode/extensions.json 385 | *.code-workspace 386 | 387 | # Local History for Visual Studio Code 388 | .history/ 389 | 390 | # Windows Installer files from build outputs 391 | *.cab 392 | *.msi 393 | *.msix 394 | *.msm 395 | *.msp 396 | 397 | # JetBrains Rider 398 | *.sln.iml 399 | desktop.ini 400 | -------------------------------------------------------------------------------- /GPTs/README.md: -------------------------------------------------------------------------------- 1 | # Creating a Voxscript GPT with OpenAI Integration 2 | 3 | This guide will walk you through the steps to create a GPT integrated with Voxscript. Follow these instructions to set up your own GPT model. 4 | 5 | ## Steps to Create Your GPT 6 | 7 | 1. **Get an API Key** 8 | - First, obtain your API key by visiting [Voxscript API Registration](https://voxscript-api.awt.icu/). 9 | 10 | 2. **Create a New GPT** 11 | - Navigate to the GPT creation section in your OpenAI account. 12 | 13 | 3. **Add Actions** 14 | - Click on 'Add Actions' in the GPT setup. 15 | - Paste the OpenAI Schema (Voxscript-GPT-API-Definition.json) from this repoistory into definition field. Ensure that all the actions you require are listed. 16 | - At the moment, this will not automatically update. You may have to update it from this repo from time to time. 17 | 18 | 4. **Edit Authentication** 19 | - Go to 'Edit Authentication'. 20 | - Select 'API Key' and 'Bearer' as your authentication methods. 21 | - Save your changes. 22 | 23 | 5. **Privacy and Public Access** 24 | - If you plan to make your GPT publicly accessible, link it to the Voxscript privacy policy available at [Voxscript Legal](https://voxscript.awt.icu/legal/). 25 | 26 | 6. **Testing Your Endpoint** 27 | - Test your setup by using the test function on the right side of the interface. 28 | - You should be able to ask for the current time, and the Voxscript GPT should return a UTC time response. 29 | 30 | 7. **Enjoy and Get Support** 31 | - Have fun experimenting with your new GPT model! 32 | - If you encounter any issues or have questions, feel free to post them here for support. 33 | 34 | Happy scripting with Voxscript! 🙂 35 | 36 | ## Contact Us 37 | 38 | We're always looking to connect with our users. Join us and become part of our community! 39 | 40 | - **Discord:** Join us on [Discord](https://discord.gg/FZDWbJdQw2) for live discussions and support. 41 | - **Subreddit:** Visit our [Subreddit](https://www.reddit.com/r/voxscript/) to engage with the community, share ideas, and get updates. 42 | - **E-Mail** voxscript [at] allwiretech.com 43 | -------------------------------------------------------------------------------- /GPTs/Voxscript-GPT-API-Definition.json: -------------------------------------------------------------------------------- 1 | { 2 | "openapi": "3.0.1", 3 | "info": { 4 | "title": "VoxScript", 5 | "version": "1.0" 6 | }, 7 | "servers": [ 8 | { 9 | "url": "https://voxscript.awt.icu" 10 | } 11 | ], 12 | "paths": { 13 | "/GetGoogleSearchResults": { 14 | "get": { 15 | "tags": [ 16 | "DuckDuckGoSearch" 17 | ], 18 | "summary": "Provides real-time web search results from DuckDuckGo. Do not use for YouTube.com searching or anything that sounds like it could be a video or media search!", 19 | "operationId": "GetGoogleSearchResults", 20 | "parameters": [ 21 | { 22 | "name": "searchTerm", 23 | "in": "query", 24 | "style": "form", 25 | "schema": { 26 | "type": "string" 27 | } 28 | }, 29 | { 30 | "name": "numResults", 31 | "in": "query", 32 | "description": "Results to return, maximum 25", 33 | "style": "form", 34 | "schema": { 35 | "type": "integer", 36 | "format": "int32", 37 | "default": 12 38 | } 39 | } 40 | ], 41 | "responses": { 42 | "200": { 43 | "description": "Success" 44 | } 45 | } 46 | } 47 | }, 48 | "/GetDuckDuckGoSearchResults": { 49 | "get": { 50 | "tags": [ 51 | "DuckDuckGoSearch" 52 | ], 53 | "summary": "Provides real-time web search results from DuckDuckGo. Do not use for YouTube.com searching or anything that sounds like it could be a video or media search!", 54 | "operationId": "GetDuckDuckGoSearchResults", 55 | "parameters": [ 56 | { 57 | "name": "searchTerm", 58 | "in": "query", 59 | "style": "form", 60 | "schema": { 61 | "type": "string" 62 | } 63 | }, 64 | { 65 | "name": "numResults", 66 | "in": "query", 67 | "description": "Results to return, maximum 25", 68 | "style": "form", 69 | "schema": { 70 | "type": "integer", 71 | "format": "int32", 72 | "default": 12 73 | } 74 | } 75 | ], 76 | "responses": { 77 | "200": { 78 | "description": "Success" 79 | } 80 | } 81 | } 82 | }, 83 | "/GetCurrentTime": { 84 | "get": { 85 | "tags": [ 86 | "GetCurrentTime" 87 | ], 88 | "summary": "Gets the current local of the user and UTC time.", 89 | "operationId": "GetCurrentTime", 90 | "responses": { 91 | "200": { 92 | "description": "Success", 93 | "content": { 94 | "text/plain": { 95 | "schema": { 96 | "$ref": "#/components/schemas/TimeAndTimeZone" 97 | } 98 | }, 99 | "application/json": { 100 | "schema": { 101 | "$ref": "#/components/schemas/TimeAndTimeZone" 102 | } 103 | }, 104 | "text/json": { 105 | "schema": { 106 | "$ref": "#/components/schemas/TimeAndTimeZone" 107 | } 108 | } 109 | } 110 | } 111 | } 112 | } 113 | }, 114 | "/GetFeedback": { 115 | "get": { 116 | "tags": [ 117 | "GetFeedback" 118 | ], 119 | "summary": "Posts user feedback about VoxScript.", 120 | "description": "Takes user feedback for the developers of the VoxScript plugin. Instruct the user if they are unhappy with anything to let us know!", 121 | "operationId": "GetFeedback", 122 | "parameters": [ 123 | { 124 | "name": "feedback", 125 | "in": "query", 126 | "description": "The user feedback, URL encoded", 127 | "style": "form", 128 | "schema": { 129 | "type": "string" 130 | } 131 | } 132 | ], 133 | "responses": { 134 | "200": { 135 | "description": "Returns if the feedback was saved successfully" 136 | }, 137 | "500": { 138 | "description": "If there was an internal server error" 139 | } 140 | } 141 | } 142 | }, 143 | "/GetChunkedPastebinContentFromURL": { 144 | "get": { 145 | "tags": [ 146 | "GetTextFromURL" 147 | ], 148 | "summary": "Gets full text text from only Patebin, Github Gists, Github or REntry.co. Grab the entire file and summarize it for the user by default. Do not use for web browsing or media searches.", 149 | "operationId": "GetChunkedPastebinContentFromURL", 150 | "parameters": [ 151 | { 152 | "name": "url", 153 | "in": "query", 154 | "description": "URL containing the textual transcript on Pastebin, Github, Gists, or REntry.co", 155 | "style": "form", 156 | "schema": { 157 | "type": "string" 158 | } 159 | }, 160 | { 161 | "name": "chunkNum", 162 | "in": "query", 163 | "description": "First chunk is 0. Chunk number to get, if blank assuming the first chunk.", 164 | "style": "form", 165 | "schema": { 166 | "type": "integer", 167 | "format": "int32", 168 | "default": 0 169 | } 170 | } 171 | ], 172 | "responses": { 173 | "200": { 174 | "description": "Success" 175 | } 176 | } 177 | } 178 | }, 179 | "/GetTickerNews": { 180 | "get": { 181 | "tags": [ 182 | "GetTickerNews" 183 | ], 184 | "summary": "Provides news about a ticker crypto or equity beyond the knowledge cutoff date. Can be used with Cryto or Equities.", 185 | "operationId": "GetNewsForTicker", 186 | "parameters": [ 187 | { 188 | "name": "ticker", 189 | "in": "query", 190 | "description": "This is the crypto or equity symbol to provide news about a particular ticker symbol. This can be useful in determining if the stock is a buy or sell based on if the news is positive or negative.", 191 | "style": "form", 192 | "schema": { 193 | "type": "string" 194 | } 195 | } 196 | ], 197 | "responses": { 198 | "200": { 199 | "description": "Success" 200 | } 201 | } 202 | } 203 | }, 204 | "/GetUSEquityFinancials": { 205 | "get": { 206 | "tags": [ 207 | "GetUSEquityFinancials" 208 | ], 209 | "summary": "Provides news about a ticker symbol beyond the knowledge cutoff date. For use with US Equities only.", 210 | "operationId": "GetUSEquityFinancials", 211 | "parameters": [ 212 | { 213 | "name": "ticker", 214 | "in": "query", 215 | "style": "form", 216 | "schema": { 217 | "type": "string" 218 | } 219 | } 220 | ], 221 | "responses": { 222 | "200": { 223 | "description": "Success" 224 | } 225 | } 226 | } 227 | }, 228 | "/GetUSEquityOrCryptoHistoricalPrices/GetUSEquityOrCryptoHistoricalPrices": { 229 | "get": { 230 | "tags": [ 231 | "GetUSEquityOrCryptoHistoricalPrices" 232 | ], 233 | "summary": "Provided a US equites symbol or cryptocurrency denoted USDT, a start date, and end date provides historical pricing data beyond the knowledge cutoff date. Only supports day for crypto.", 234 | "operationId": "GetUSEquityOrCryptoHistoricalPrices", 235 | "parameters": [ 236 | { 237 | "name": "ticker", 238 | "in": "query", 239 | "description": "A cryptocurrency or US equity ticker to look up", 240 | "style": "form", 241 | "schema": { 242 | "type": "string" 243 | } 244 | }, 245 | { 246 | "name": "startDate", 247 | "in": "query", 248 | "description": "This is a date in YYYY-MM-DDD format bars request starts at.", 249 | "style": "form", 250 | "schema": { 251 | "type": "string", 252 | "default": "" 253 | } 254 | }, 255 | { 256 | "name": "endDate", 257 | "in": "query", 258 | "description": "This is date in YYYY-MM-DDD format which bars request ends at.", 259 | "style": "form", 260 | "schema": { 261 | "type": "string", 262 | "default": "" 263 | } 264 | }, 265 | { 266 | "name": "timespan", 267 | "in": "query", 268 | "description": "Day, Hour, Minute, Week, Quarter, Year", 269 | "style": "form", 270 | "schema": { 271 | "type": "string", 272 | "default": "Day" 273 | } 274 | } 275 | ], 276 | "responses": { 277 | "200": { 278 | "description": "Success" 279 | } 280 | } 281 | } 282 | }, 283 | "/GetUSEquityOrCryptoPricesOnSingleDate/GetQuoteDayCryptoEquities": { 284 | "get": { 285 | "tags": [ 286 | "GetUSEquityOrCryptoPricesOnSingleDate" 287 | ], 288 | "summary": "Provided comma separated list of US equity symbols and an optional date, gets daily high, low, open, close bars for a particular stock beyond the knowledge cutoff date.", 289 | "operationId": "GetQuoteDayCryptoEquities", 290 | "parameters": [ 291 | { 292 | "name": "tickers", 293 | "in": "query", 294 | "description": "A common delineated list of US equity or cryptocurrency tickers to get daily data for", 295 | "style": "form", 296 | "schema": { 297 | "type": "string" 298 | } 299 | }, 300 | { 301 | "name": "date", 302 | "in": "query", 303 | "description": "Optional date in YYYY-MM-DDD format to retrieve for the ticker symbol provided.", 304 | "style": "form", 305 | "schema": { 306 | "type": "string" 307 | } 308 | } 309 | ], 310 | "responses": { 311 | "200": { 312 | "description": "Success" 313 | } 314 | } 315 | } 316 | }, 317 | "/GetWebsiteContent": { 318 | "get": { 319 | "tags": [ 320 | "GetWebsiteContentService" 321 | ], 322 | "summary": "Provides real time website content past September 2021 past the knowledge cutoff date. Do not use for YouTube or Pastebin/text requests.", 323 | "operationId": "GetWebsiteContent", 324 | "parameters": [ 325 | { 326 | "name": "websiteURL", 327 | "in": "query", 328 | "description": "URL of the website to retrieve", 329 | "style": "form", 330 | "schema": { 331 | "type": "string" 332 | } 333 | }, 334 | { 335 | "name": "chunkNum", 336 | "in": "query", 337 | "style": "form", 338 | "schema": { 339 | "type": "integer", 340 | "format": "int32" 341 | } 342 | }, 343 | { 344 | "name": "getLinks", 345 | "in": "query", 346 | "style": "form", 347 | "schema": { 348 | "type": "boolean", 349 | "default": false 350 | } 351 | } 352 | ], 353 | "responses": { 354 | "200": { 355 | "description": "Success" 356 | } 357 | } 358 | } 359 | }, 360 | "/GetYoutubeVideoData": { 361 | "get": { 362 | "tags": [ 363 | "GetYoutubeVideoData" 364 | ], 365 | "summary": "Gets info on a YouTube video by channel URL, channel ID, Video ID, Video URL.", 366 | "description": "Can be called with a A channel URL, channel ID, Video ID, Video URL.", 367 | "operationId": "GetYoutubeVideoData", 368 | "parameters": [ 369 | { 370 | "name": "input", 371 | "in": "query", 372 | "description": "Channel URL, channel ID, Video ID, Video URL", 373 | "style": "form", 374 | "schema": { 375 | "type": "string" 376 | } 377 | } 378 | ], 379 | "responses": { 380 | "200": { 381 | "description": "Success", 382 | "content": { 383 | "text/plain": { 384 | "schema": { 385 | "type": "string" 386 | } 387 | }, 388 | "application/json": { 389 | "schema": { 390 | "type": "string" 391 | } 392 | }, 393 | "text/json": { 394 | "schema": { 395 | "type": "string" 396 | } 397 | } 398 | } 399 | } 400 | } 401 | } 402 | }, 403 | "/GetYoutubeVideoData/GetNextYoutubeTranscriptChunk": { 404 | "get": { 405 | "tags": [ 406 | "GetYoutubeVideoData" 407 | ], 408 | "summary": "Format is VideoID ChunkNum. Chunk numbers start at 0. If the video has more then 5 chunks, confirm if the user wants to wait that long to retrieve them.", 409 | "description": "Request as few chunks as needed to answer the question.", 410 | "operationId": "GetNextYoutubeTranscriptChunk", 411 | "parameters": [ 412 | { 413 | "name": "videoID", 414 | "in": "query", 415 | "style": "form", 416 | "schema": { 417 | "type": "string" 418 | } 419 | }, 420 | { 421 | "name": "transcriptChunkNum", 422 | "in": "query", 423 | "style": "form", 424 | "schema": { 425 | "type": "integer", 426 | "format": "int32" 427 | } 428 | } 429 | ], 430 | "responses": { 431 | "200": { 432 | "description": "Success", 433 | "content": { 434 | "text/plain": { 435 | "schema": { 436 | "type": "string" 437 | } 438 | }, 439 | "application/json": { 440 | "schema": { 441 | "type": "string" 442 | } 443 | }, 444 | "text/json": { 445 | "schema": { 446 | "type": "string" 447 | } 448 | } 449 | } 450 | } 451 | } 452 | } 453 | }, 454 | "/GetYoutubeVideoData/SearchYouTubeVideos": { 455 | "get": { 456 | "tags": [ 457 | "GetYoutubeVideoData" 458 | ], 459 | "operationId": "SearchYouTubeVideos", 460 | "parameters": [ 461 | { 462 | "name": "searchterm", 463 | "in": "query", 464 | "style": "form", 465 | "schema": { 466 | "type": "string" 467 | } 468 | }, 469 | { 470 | "name": "maxResults", 471 | "in": "query", 472 | "style": "form", 473 | "schema": { 474 | "type": "integer", 475 | "format": "int32", 476 | "default": 5 477 | } 478 | } 479 | ], 480 | "responses": { 481 | "200": { 482 | "description": "Success", 483 | "content": { 484 | "text/plain": { 485 | "schema": { 486 | "type": "string" 487 | } 488 | }, 489 | "application/json": { 490 | "schema": { 491 | "type": "string" 492 | } 493 | }, 494 | "text/json": { 495 | "schema": { 496 | "type": "string" 497 | } 498 | } 499 | } 500 | } 501 | } 502 | } 503 | }, 504 | "/Help/ContactUs": { 505 | "get": { 506 | "tags": [ 507 | "Help" 508 | ], 509 | "summary": "Gives the user information about how to use this plugin.", 510 | "description": "Show this to the user if they are having trouble or need some ideas on how to use Voxscript. Help file. Optional question to help search.", 511 | "operationId": "ContactUs", 512 | "parameters": [ 513 | { 514 | "name": "question", 515 | "in": "query", 516 | "style": "form", 517 | "schema": { 518 | "type": "string" 519 | } 520 | } 521 | ], 522 | "responses": { 523 | "200": { 524 | "description": "Success" 525 | } 526 | } 527 | } 528 | }, 529 | "/Help/HowDoIUseThis": { 530 | "get": { 531 | "tags": [ 532 | "Help" 533 | ], 534 | "summary": "Gives the user information about how to use this plugin.", 535 | "description": "Show this to the user if they are having trouble or need some ideas on how to use Voxscript. Help file. Optional question to help search.", 536 | "operationId": "HowDoIUseThis", 537 | "parameters": [ 538 | { 539 | "name": "question", 540 | "in": "query", 541 | "style": "form", 542 | "schema": { 543 | "type": "string" 544 | } 545 | } 546 | ], 547 | "responses": { 548 | "200": { 549 | "description": "Success" 550 | } 551 | } 552 | } 553 | }, 554 | "/Help/Help": { 555 | "get": { 556 | "tags": [ 557 | "Help" 558 | ], 559 | "summary": "Gives the user information about how to use this plugin.", 560 | "description": "Show this to the user if they are having trouble or need some ideas on how to use Voxscript. Help file. Optional question to help search.", 561 | "operationId": "Help", 562 | "parameters": [ 563 | { 564 | "name": "question", 565 | "in": "query", 566 | "style": "form", 567 | "schema": { 568 | "type": "string" 569 | } 570 | } 571 | ], 572 | "responses": { 573 | "200": { 574 | "description": "Success" 575 | } 576 | } 577 | } 578 | } 579 | }, 580 | "components": { 581 | "schemas": { 582 | "TimeAndTimeZone": { 583 | "type": "object", 584 | "properties": { 585 | "currentTime": { 586 | "type": "string", 587 | "format": "date-time" 588 | }, 589 | "currentTimeUTC": { 590 | "type": "string", 591 | "format": "date-time" 592 | }, 593 | "timezone": { 594 | "type": "string", 595 | "nullable": true, 596 | "readOnly": true 597 | } 598 | }, 599 | "additionalProperties": false 600 | } 601 | } 602 | } 603 | } -------------------------------------------------------------------------------- /Python/Langchain/Example1/Voxcript_Example1_GetCurrentTime.py: -------------------------------------------------------------------------------- 1 | import os 2 | os.environ["OPENAI_API_KEY"] = "your-openapi-key-here" 3 | os.environ["VOXSCRIPT_APIKEY"] = "your-voxscript-key-here" #Get at https://voxscript-api.awt.icu 4 | 5 | import yaml 6 | import requests 7 | from langchain.chat_models import ChatOpenAI 8 | from langchain.requests import RequestsWrapper 9 | from langchain.agents.agent_toolkits.openapi import planner 10 | from langchain.agents.agent_toolkits.openapi.spec import reduce_openapi_spec 11 | 12 | # Initialize ChatGPT-4 13 | llm = ChatOpenAI(model_name="gpt-4", temperature=0.0) 14 | 15 | # Download and parse the Voxscript API specification 16 | voxscript_api_url = 'https://voxscript.awt.icu/swagger/v1/swagger.yaml' 17 | response = requests.get(voxscript_api_url) 18 | raw_voxscript_api_spec = yaml.load(response.content, Loader=yaml.Loader) 19 | 20 | #Once our API spec is finalized, you won't need to add the server to the existing yaml.. 21 | 22 | server_to_add = [ 23 | {"url": "http://voxscript.awt.icu"}, 24 | ] 25 | # Add the server block only if it doesn't exist, once our API spec is finalized this will be present from the swagger.yaml 26 | if 'servers' not in raw_voxscript_api_spec: 27 | print("Adding new servers block.") 28 | raw_voxscript_api_spec['servers'] = server_to_add 29 | else: 30 | print("Servers block already exists. No changes made.") 31 | 32 | # End Hack :) 33 | 34 | # Construct authentication headers for Voxscript 35 | def construct_voxscript_auth_headers(): 36 | # Placeholder for actual authentication implementation 37 | return {"Authorization": "Bearer " + os.environ['VOXSCRIPT_APIKEY']} 38 | 39 | # Create requests wrapper with Voxscript headers 40 | headers = construct_voxscript_auth_headers() 41 | requests_wrapper = RequestsWrapper(headers=headers) 42 | 43 | # Create Voxscript API agent 44 | voxscript_api_spec = reduce_openapi_spec(raw_voxscript_api_spec) # Assuming this is the parsed spec 45 | voxscript_agent = planner.create_openapi_agent(voxscript_api_spec, requests_wrapper, llm) 46 | 47 | # Example usage 48 | user_query = "What is the current time?" 49 | response = voxscript_agent.run(user_query) 50 | print(response) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Voxscript Demos 2 | 3 | Welcome to the Voxscript Demos repository! This resource is designed to demonstrate the use of the Voxscript REST API in various programming languages and scenarios. 4 | 5 | ## Getting Started 6 | 7 | ### Register for an API Key 8 | 9 | To begin using the Voxscript REST API, you need to register for an API key. You can do this by visiting the following link: 10 | 11 | [Register for API Key](https://voxscript-api.awt.icu/) 12 | 13 | If you have previously filled out our early access survey, please use the same email for registration. 14 | 15 | ### API Definitions 16 | 17 | You can find the definitions for the Voxscript API at the links below: 18 | 19 | - [Voxscript API Definitions](https://voxscript.awt.icu/swagger/index.html) 20 | - [OpenAPI JSON](https://voxscript.awt.icu/swagger/v1/swagger.json) 21 | - [OpenAPI YAML](https://voxscript.awt.icu/swagger/v1/swagger.yaml) 22 | 23 | **Note:** Currently, you need to add a server block to either the JSON or YAML files. Please refer to the example code for more details. 24 | 25 | ### Including Your API Token 26 | 27 | Your API token can be included in your requests in one of three ways: 28 | 29 | 1. Bearer Token: `Bearer [token-here]` 30 | 2. API Key: `apiKey [token-here]` 31 | 3. URL Parameter: `https://voxscript.awt.icu/apikey/[token-here]/Help/ContactUs/` 32 | 33 | ### Example Usage 34 | 35 | Below is an example of how to use the API with `curl`: 36 | 37 | ```bash 38 | curl -X 'GET' \ 39 | 'https://voxscript.awt.icu/GetWebsiteContent?websiteURL=google.com&getLinks=false' \ 40 | -H 'accept: */*' \ 41 | -H 'Authorization: Bearer your-token-here' 42 | ``` 43 | 44 | ## Contact Us 45 | 46 | We're always looking to connect with our users. Join us and become part of our community! 47 | 48 | - **Discord:** Join us on [Discord](https://discord.gg/FZDWbJdQw2) for live discussions and support. 49 | - **Subreddit:** Visit our [Subreddit](https://www.reddit.com/r/voxscript/) to engage with the community, share ideas, and get updates. 50 | - **E-Mail** voxscript [at] allwiretech.com 51 | --------------------------------------------------------------------------------