diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1ee5385
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,362 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.CheshireCatApi/.idea/.gitignore b/.idea/.idea.CheshireCatApi/.idea/.gitignore
new file mode 100644
index 0000000..aea0ef4
--- /dev/null
+++ b/.idea/.idea.CheshireCatApi/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/modules.xml
+/contentModel.xml
+/.idea.CheshireCatApi.iml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.CheshireCatApi/.idea/.name b/.idea/.idea.CheshireCatApi/.idea/.name
new file mode 100644
index 0000000..90d0ef7
--- /dev/null
+++ b/.idea/.idea.CheshireCatApi/.idea/.name
@@ -0,0 +1 @@
+CheshireCatApi
\ No newline at end of file
diff --git a/.idea/.idea.CheshireCatApi/.idea/indexLayout.xml b/.idea/.idea.CheshireCatApi/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.CheshireCatApi/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/api-client-csharp.iml b/.idea/api-client-csharp.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/.idea/api-client-csharp.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..dc3e2b1
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..ff70cf5
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..954cf05
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore
new file mode 100644
index 0000000..7484ee5
--- /dev/null
+++ b/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
new file mode 100644
index 0000000..fa0e547
--- /dev/null
+++ b/.openapi-generator/FILES
@@ -0,0 +1,125 @@
+.gitignore
+.openapi-generator-ignore
+CheshireCatApi.sln
+README.md
+api/openapi.yaml
+appveyor.yml
+docs/BodyUploadUrl.md
+docs/Collection.md
+docs/CollectionData.md
+docs/CollectionsList.md
+docs/ConversationHistory.md
+docs/ConversationMessage.md
+docs/Detail.md
+docs/EmbedderApi.md
+docs/FileResponse.md
+docs/Filters.md
+docs/GetPluginSettings200Response.md
+docs/HTTPValidationError.md
+docs/HooksInner.md
+docs/LargeLanguageModelApi.md
+docs/MemoryApi.md
+docs/MemoryRecall.md
+docs/MetaData.md
+docs/Plugin.md
+docs/PluginsApi.md
+docs/PluginsList.md
+docs/QueryData.md
+docs/RabbitHoleApi.md
+docs/ResponseGetAllowedMimetypes.md
+docs/Setting.md
+docs/SettingBody.md
+docs/SettingsApi.md
+docs/SettingsResponse.md
+docs/Status.md
+docs/StatusApi.md
+docs/ToggleResponse.md
+docs/ToolsInner.md
+docs/VectorsData.md
+docs/WebResponse.md
+git_push.sh
+src/CheshireCatApi.Test/Api/EmbedderApiTests.cs
+src/CheshireCatApi.Test/Api/LargeLanguageModelApiTests.cs
+src/CheshireCatApi.Test/Api/MemoryApiTests.cs
+src/CheshireCatApi.Test/Api/PluginsApiTests.cs
+src/CheshireCatApi.Test/Api/RabbitHoleApiTests.cs
+src/CheshireCatApi.Test/Api/SettingsApiTests.cs
+src/CheshireCatApi.Test/Api/StatusApiTests.cs
+src/CheshireCatApi.Test/CheshireCatApi.Test.csproj
+src/CheshireCatApi.Test/Model/BodyUploadUrlTests.cs
+src/CheshireCatApi.Test/Model/CollectionDataTests.cs
+src/CheshireCatApi.Test/Model/CollectionTests.cs
+src/CheshireCatApi.Test/Model/CollectionsListTests.cs
+src/CheshireCatApi.Test/Model/ConversationHistoryTests.cs
+src/CheshireCatApi.Test/Model/ConversationMessageTests.cs
+src/CheshireCatApi.Test/Model/DetailTests.cs
+src/CheshireCatApi.Test/Model/FileResponseTests.cs
+src/CheshireCatApi.Test/Model/FiltersTests.cs
+src/CheshireCatApi.Test/Model/GetPluginSettings200ResponseTests.cs
+src/CheshireCatApi.Test/Model/HTTPValidationErrorTests.cs
+src/CheshireCatApi.Test/Model/HooksInnerTests.cs
+src/CheshireCatApi.Test/Model/MemoryRecallTests.cs
+src/CheshireCatApi.Test/Model/MetaDataTests.cs
+src/CheshireCatApi.Test/Model/PluginTests.cs
+src/CheshireCatApi.Test/Model/PluginsListTests.cs
+src/CheshireCatApi.Test/Model/QueryDataTests.cs
+src/CheshireCatApi.Test/Model/ResponseGetAllowedMimetypesTests.cs
+src/CheshireCatApi.Test/Model/SettingBodyTests.cs
+src/CheshireCatApi.Test/Model/SettingTests.cs
+src/CheshireCatApi.Test/Model/SettingsResponseTests.cs
+src/CheshireCatApi.Test/Model/StatusTests.cs
+src/CheshireCatApi.Test/Model/ToggleResponseTests.cs
+src/CheshireCatApi.Test/Model/ToolsInnerTests.cs
+src/CheshireCatApi.Test/Model/VectorsDataTests.cs
+src/CheshireCatApi.Test/Model/WebResponseTests.cs
+src/CheshireCatApi/Api/EmbedderApi.cs
+src/CheshireCatApi/Api/LargeLanguageModelApi.cs
+src/CheshireCatApi/Api/MemoryApi.cs
+src/CheshireCatApi/Api/PluginsApi.cs
+src/CheshireCatApi/Api/RabbitHoleApi.cs
+src/CheshireCatApi/Api/SettingsApi.cs
+src/CheshireCatApi/Api/StatusApi.cs
+src/CheshireCatApi/CheshireCatApi.csproj
+src/CheshireCatApi/Client/ApiClient.cs
+src/CheshireCatApi/Client/ApiException.cs
+src/CheshireCatApi/Client/ApiResponse.cs
+src/CheshireCatApi/Client/ClientUtils.cs
+src/CheshireCatApi/Client/Configuration.cs
+src/CheshireCatApi/Client/ExceptionFactory.cs
+src/CheshireCatApi/Client/GlobalConfiguration.cs
+src/CheshireCatApi/Client/HttpMethod.cs
+src/CheshireCatApi/Client/IApiAccessor.cs
+src/CheshireCatApi/Client/IAsynchronousClient.cs
+src/CheshireCatApi/Client/IReadableConfiguration.cs
+src/CheshireCatApi/Client/ISynchronousClient.cs
+src/CheshireCatApi/Client/Multimap.cs
+src/CheshireCatApi/Client/OpenAPIDateConverter.cs
+src/CheshireCatApi/Client/RequestOptions.cs
+src/CheshireCatApi/Client/RetryConfiguration.cs
+src/CheshireCatApi/Model/AbstractOpenAPISchema.cs
+src/CheshireCatApi/Model/BodyUploadUrl.cs
+src/CheshireCatApi/Model/Collection.cs
+src/CheshireCatApi/Model/CollectionData.cs
+src/CheshireCatApi/Model/CollectionsList.cs
+src/CheshireCatApi/Model/ConversationHistory.cs
+src/CheshireCatApi/Model/ConversationMessage.cs
+src/CheshireCatApi/Model/Detail.cs
+src/CheshireCatApi/Model/FileResponse.cs
+src/CheshireCatApi/Model/Filters.cs
+src/CheshireCatApi/Model/GetPluginSettings200Response.cs
+src/CheshireCatApi/Model/HTTPValidationError.cs
+src/CheshireCatApi/Model/HooksInner.cs
+src/CheshireCatApi/Model/MemoryRecall.cs
+src/CheshireCatApi/Model/MetaData.cs
+src/CheshireCatApi/Model/Plugin.cs
+src/CheshireCatApi/Model/PluginsList.cs
+src/CheshireCatApi/Model/QueryData.cs
+src/CheshireCatApi/Model/ResponseGetAllowedMimetypes.cs
+src/CheshireCatApi/Model/Setting.cs
+src/CheshireCatApi/Model/SettingBody.cs
+src/CheshireCatApi/Model/SettingsResponse.cs
+src/CheshireCatApi/Model/Status.cs
+src/CheshireCatApi/Model/ToggleResponse.cs
+src/CheshireCatApi/Model/ToolsInner.cs
+src/CheshireCatApi/Model/VectorsData.cs
+src/CheshireCatApi/Model/WebResponse.cs
diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION
new file mode 100644
index 0000000..c9e125b
--- /dev/null
+++ b/.openapi-generator/VERSION
@@ -0,0 +1 @@
+7.4.0-SNAPSHOT
diff --git a/CheshireCatApi.sln b/CheshireCatApi.sln
new file mode 100644
index 0000000..e38918e
--- /dev/null
+++ b/CheshireCatApi.sln
@@ -0,0 +1,33 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+VisualStudioVersion = 12.0.0.0
+MinimumVisualStudioVersion = 10.0.0.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheshireCatApi", "src\CheshireCatApi\CheshireCatApi.csproj", "{B8CE0940-8FF3-48A5-B2E6-25423D09E3F1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheshireCatApi.Test", "src\CheshireCatApi.Test\CheshireCatApi.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestClient", "TestClient\TestClient.csproj", "{830B558E-90B8-46D4-90B1-436F246D73B0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B8CE0940-8FF3-48A5-B2E6-25423D09E3F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B8CE0940-8FF3-48A5-B2E6-25423D09E3F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B8CE0940-8FF3-48A5-B2E6-25423D09E3F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B8CE0940-8FF3-48A5-B2E6-25423D09E3F1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.Build.0 = Release|Any CPU
+ {830B558E-90B8-46D4-90B1-436F246D73B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {830B558E-90B8-46D4-90B1-436F246D73B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {830B558E-90B8-46D4-90B1-436F246D73B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {830B558E-90B8-46D4-90B1-436F246D73B0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..205ef1d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,186 @@
+# CheshireCatApi - the C# library for the 😸 Cheshire-Cat API
+
+Customizable AI architecture
+
+This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 0.0.5
+- SDK version: 1.0.0
+- Build package: org.openapitools.codegen.languages.CSharpClientCodegen
+
+
+## Frameworks supported
+
+
+## Dependencies
+
+- [RestSharp](https://www.nuget.org/packages/RestSharp) - 106.13.0 or later
+- [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 13.0.2 or later
+- [JsonSubTypes](https://www.nuget.org/packages/JsonSubTypes/) - 1.8.0 or later
+- [System.ComponentModel.Annotations](https://www.nuget.org/packages/System.ComponentModel.Annotations) - 5.0.0 or later
+
+The DLLs included in the package may not be the latest version. We recommend using [NuGet](https://docs.nuget.org/consume/installing-nuget) to obtain the latest version of the packages:
+```
+Install-Package RestSharp
+Install-Package Newtonsoft.Json
+Install-Package JsonSubTypes
+Install-Package System.ComponentModel.Annotations
+```
+
+NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742).
+NOTE: RestSharp for .Net Core creates a new socket for each api call, which can lead to a socket exhaustion problem. See [RestSharp#1406](https://github.com/restsharp/RestSharp/issues/1406).
+
+
+## Installation
+Run the following command to generate the DLL
+- [Mac/Linux] `/bin/sh build.sh`
+- [Windows] `build.bat`
+
+Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces:
+```csharp
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+```
+
+## Packaging
+
+A `.nuspec` is included with the project. You can follow the Nuget quickstart to [create](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#create-the-package) and [publish](https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package#publish-the-package) packages.
+
+This `.nuspec` uses placeholders from the `.csproj`, so build the `.csproj` directly:
+
+```
+nuget pack -Build -OutputDirectory out CheshireCatApi.csproj
+```
+
+Then, publish to a [local feed](https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds) or [other host](https://docs.microsoft.com/en-us/nuget/hosting-packages/overview) and consume the new package via Nuget as usual.
+
+
+## Usage
+
+To use the API client with a HTTP proxy, setup a `System.Net.WebProxy`
+```csharp
+Configuration c = new Configuration();
+System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
+webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
+c.Proxy = webProxy;
+```
+
+
+## Getting Started
+
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class Example
+ {
+ public static void Main()
+ {
+
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new EmbedderApi(config);
+ var languageEmbedderName = "languageEmbedderName_example"; // string |
+
+ try
+ {
+ // Get Embedder Settings
+ Setting result = apiInstance.GetEmbedderSettings(languageEmbedderName);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling EmbedderApi.GetEmbedderSettings: " + e.Message );
+ Debug.Print("Status Code: "+ e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+
+ }
+ }
+}
+```
+
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*EmbedderApi* | [**GetEmbedderSettings**](docs/EmbedderApi.md#getembeddersettings) | **GET** /embedder/settings/{languageEmbedderName} | Get Embedder Settings
+*EmbedderApi* | [**GetEmbeddersSettings**](docs/EmbedderApi.md#getembedderssettings) | **GET** /embedder/settings | Get Embedders Settings
+*EmbedderApi* | [**UpsertEmbedderSetting**](docs/EmbedderApi.md#upsertembeddersetting) | **PUT** /embedder/settings/{languageEmbedderName} | Upsert Embedder Setting
+*LargeLanguageModelApi* | [**GetLlmSettings**](docs/LargeLanguageModelApi.md#getllmsettings) | **GET** /llm/settings/{languageModelName} | Get Llm Settings
+*LargeLanguageModelApi* | [**GetLlmsSettings**](docs/LargeLanguageModelApi.md#getllmssettings) | **GET** /llm/settings | Get LLMs Settings
+*LargeLanguageModelApi* | [**UpsertLlmSetting**](docs/LargeLanguageModelApi.md#upsertllmsetting) | **PUT** /llm/settings/{languageModelName} | Upsert LLM Setting
+*MemoryApi* | [**DeletePointInMemory**](docs/MemoryApi.md#deletepointinmemory) | **DELETE** /memory/collections/{collection_id}/points/{memory_id} | Delete Point In Memory
+*MemoryApi* | [**GetCollections**](docs/MemoryApi.md#getcollections) | **GET** /memory/collections | Get Collections
+*MemoryApi* | [**GetConversationHistory**](docs/MemoryApi.md#getconversationhistory) | **GET** /memory/conversation_history | Get Conversation History
+*MemoryApi* | [**RecallMemoriesFromText**](docs/MemoryApi.md#recallmemoriesfromtext) | **GET** /memory/recall | Recall Memories From Text
+*MemoryApi* | [**WipeCollections**](docs/MemoryApi.md#wipecollections) | **DELETE** /memory/collections | Wipe Collections
+*MemoryApi* | [**WipeConversationHistory**](docs/MemoryApi.md#wipeconversationhistory) | **DELETE** /memory/conversation_history | Wipe Conversation History
+*MemoryApi* | [**WipeMemoryPoints**](docs/MemoryApi.md#wipememorypoints) | **DELETE** /memory/collections/{collection_id}/points | Wipe Memory Points By Metadata
+*MemoryApi* | [**WipeSingleCollection**](docs/MemoryApi.md#wipesinglecollection) | **DELETE** /memory/collections/{collection_id} | Wipe Single Collection
+*PluginsApi* | [**DeletePlugin**](docs/PluginsApi.md#deleteplugin) | **DELETE** /plugins/{plugin_id} | Delete Plugin
+*PluginsApi* | [**GetPluginDetails**](docs/PluginsApi.md#getplugindetails) | **GET** /plugins/{plugin_id} | Get Plugin Details
+*PluginsApi* | [**GetPluginSettings**](docs/PluginsApi.md#getpluginsettings) | **GET** /plugins/settings/{plugin_id} | Get Plugin Settings
+*PluginsApi* | [**GetPluginsSettings**](docs/PluginsApi.md#getpluginssettings) | **GET** /plugins/settings | Get Plugins Settings
+*PluginsApi* | [**InstallPlugin**](docs/PluginsApi.md#installplugin) | **POST** /plugins/upload | Install Plugin
+*PluginsApi* | [**InstallPluginFromRegistry**](docs/PluginsApi.md#installpluginfromregistry) | **POST** /plugins/upload/registry | Install Plugin From Registry
+*PluginsApi* | [**ListAvailablePlugins**](docs/PluginsApi.md#listavailableplugins) | **GET** /plugins | List Available Plugins
+*PluginsApi* | [**TogglePlugin**](docs/PluginsApi.md#toggleplugin) | **PUT** /plugins/toggle/{plugin_id} | Toggle Plugin
+*PluginsApi* | [**UpsertPluginSettings**](docs/PluginsApi.md#upsertpluginsettings) | **PUT** /plugins/settings/{plugin_id} | Upsert Plugin Settings
+*RabbitHoleApi* | [**GetAllowedMimetypes**](docs/RabbitHoleApi.md#getallowedmimetypes) | **GET** /rabbithole/allowed-mimetypes | Get Allowed Mimetypes
+*RabbitHoleApi* | [**UploadFile**](docs/RabbitHoleApi.md#uploadfile) | **POST** /rabbithole | Upload File
+*RabbitHoleApi* | [**UploadMemory**](docs/RabbitHoleApi.md#uploadmemory) | **POST** /rabbithole/memory | Upload Memory
+*RabbitHoleApi* | [**UploadUrl**](docs/RabbitHoleApi.md#uploadurl) | **POST** /rabbithole/web | Upload URL
+*SettingsApi* | [**CreateSetting**](docs/SettingsApi.md#createsetting) | **POST** /settings | Create Setting
+*SettingsApi* | [**DeleteSetting**](docs/SettingsApi.md#deletesetting) | **DELETE** /settings/{settingId} | Delete Setting
+*SettingsApi* | [**GetSetting**](docs/SettingsApi.md#getsetting) | **GET** /settings/{settingId} | Get Setting
+*SettingsApi* | [**GetSettings**](docs/SettingsApi.md#getsettings) | **GET** /settings | Get Settings
+*SettingsApi* | [**UpdateSetting**](docs/SettingsApi.md#updatesetting) | **PUT** /settings/{settingId} | Update Setting
+*StatusApi* | [**Home**](docs/StatusApi.md#home) | **GET** / | Home
+
+
+
+## Documentation for Models
+
+ - [Model.BodyUploadUrl](docs/BodyUploadUrl.md)
+ - [Model.Collection](docs/Collection.md)
+ - [Model.CollectionData](docs/CollectionData.md)
+ - [Model.CollectionsList](docs/CollectionsList.md)
+ - [Model.ConversationHistory](docs/ConversationHistory.md)
+ - [Model.ConversationMessage](docs/ConversationMessage.md)
+ - [Model.Detail](docs/Detail.md)
+ - [Model.FileResponse](docs/FileResponse.md)
+ - [Model.Filters](docs/Filters.md)
+ - [Model.GetPluginSettings200Response](docs/GetPluginSettings200Response.md)
+ - [Model.HTTPValidationError](docs/HTTPValidationError.md)
+ - [Model.HooksInner](docs/HooksInner.md)
+ - [Model.MemoryRecall](docs/MemoryRecall.md)
+ - [Model.MetaData](docs/MetaData.md)
+ - [Model.Plugin](docs/Plugin.md)
+ - [Model.PluginsList](docs/PluginsList.md)
+ - [Model.QueryData](docs/QueryData.md)
+ - [Model.ResponseGetAllowedMimetypes](docs/ResponseGetAllowedMimetypes.md)
+ - [Model.Setting](docs/Setting.md)
+ - [Model.SettingBody](docs/SettingBody.md)
+ - [Model.SettingsResponse](docs/SettingsResponse.md)
+ - [Model.Status](docs/Status.md)
+ - [Model.ToggleResponse](docs/ToggleResponse.md)
+ - [Model.ToolsInner](docs/ToolsInner.md)
+ - [Model.VectorsData](docs/VectorsData.md)
+ - [Model.WebResponse](docs/WebResponse.md)
+
+
+
+## Documentation for Authorization
+
+Endpoints do not require authorization.
+
diff --git a/Test/Program.cs b/Test/Program.cs
new file mode 100644
index 0000000..e5dff12
--- /dev/null
+++ b/Test/Program.cs
@@ -0,0 +1,3 @@
+// See https://aka.ms/new-console-template for more information
+
+Console.WriteLine("Hello, World!");
\ No newline at end of file
diff --git a/Test/Test.sln b/Test/Test.sln
new file mode 100644
index 0000000..b29a4cd
--- /dev/null
+++ b/Test/Test.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestCCatApi", "TestCCatApi.csproj", "{68693FA1-95BA-4E70-AC0D-29B8373E23D7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {68693FA1-95BA-4E70-AC0D-29B8373E23D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {68693FA1-95BA-4E70-AC0D-29B8373E23D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {68693FA1-95BA-4E70-AC0D-29B8373E23D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {68693FA1-95BA-4E70-AC0D-29B8373E23D7}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Test/TestCCatApi.csproj b/Test/TestCCatApi.csproj
new file mode 100644
index 0000000..2f4fc77
--- /dev/null
+++ b/Test/TestCCatApi.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/TestClient/Program.cs b/TestClient/Program.cs
new file mode 100644
index 0000000..b3ca21a
--- /dev/null
+++ b/TestClient/Program.cs
@@ -0,0 +1,40 @@
+using System;
+using CheshireCatApi;
+
+namespace TestClient
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ // Instantiate the WebSocket client
+ Configuration config = new Configuration();
+ CatClient client = new CatClient(config);
+
+ // Set up event handlers
+ client.OnMessage += (message) =>
+ {
+ Console.WriteLine("Received message: " + message);
+ };
+
+ client.OnOpen += () =>
+ {
+ Console.WriteLine("Connected to WebSocket server.");
+ };
+
+ client.OnClose += () =>
+ {
+ Console.WriteLine("Disconnected from WebSocket server.");
+ };
+
+ // Connect to the WebSocket server
+ client.ConnectWebsocket();
+
+ // Send a message
+ client.SendMessage("Hello, WebSocket!");
+
+ // Keep the console application running until a key is pressed
+ Console.ReadKey();
+ }
+ }
+}
diff --git a/TestClient/TestClient.csproj b/TestClient/TestClient.csproj
new file mode 100644
index 0000000..876e488
--- /dev/null
+++ b/TestClient/TestClient.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/api/openapi.yaml b/api/openapi.yaml
new file mode 100644
index 0000000..c2fbe0e
--- /dev/null
+++ b/api/openapi.yaml
@@ -0,0 +1,1583 @@
+openapi: 3.0.2
+info:
+ description: Customizable AI architecture
+ title: 😸 Cheshire-Cat API
+ version: 0.0.5
+ x-logo:
+ url: https://github.com/cheshire-cat-ai/core/blob/main/cheshire-cat.jpeg?raw=true
+servers:
+- url: /
+paths:
+ /:
+ get:
+ description: Server status
+ operationId: home
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ description: Successful Response
+ security: []
+ summary: Home
+ tags:
+ - Status
+ /settings:
+ get:
+ description: Get the entire list of settings available in the database
+ operationId: get_settings
+ parameters:
+ - description: The setting to search
+ explode: true
+ in: query
+ name: search
+ required: false
+ schema:
+ default: ""
+ title: Search
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingsResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Settings
+ tags:
+ - Settings
+ post:
+ description: Create a new setting in the database
+ operationId: create_setting
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingBody'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Create Setting
+ tags:
+ - Settings
+ /settings/{settingId}:
+ delete:
+ description: Delete a specific setting in the database
+ operationId: delete_setting
+ parameters:
+ - explode: false
+ in: path
+ name: settingId
+ required: true
+ schema:
+ title: Settingid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema: {}
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Delete Setting
+ tags:
+ - Settings
+ get:
+ description: Get the a specific setting from the database
+ operationId: get_setting
+ parameters:
+ - explode: false
+ in: path
+ name: settingId
+ required: true
+ schema:
+ title: Settingid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Setting
+ tags:
+ - Settings
+ put:
+ description: Update a specific setting in the database if it exists
+ operationId: update_setting
+ parameters:
+ - explode: false
+ in: path
+ name: settingId
+ required: true
+ schema:
+ title: Settingid
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingBody'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Update Setting
+ tags:
+ - Settings
+ /llm/settings:
+ get:
+ description: Get the list of the Large Language Models
+ operationId: get_llms_settings
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingsResponse'
+ description: Successful Response
+ security: []
+ summary: Get LLMs Settings
+ tags:
+ - Large Language Model
+ /llm/settings/{languageModelName}:
+ get:
+ description: Get settings and schema of the specified Large Language Model
+ operationId: get_llm_settings
+ parameters:
+ - explode: false
+ in: path
+ name: languageModelName
+ required: true
+ schema:
+ title: languageModelName
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Llm Settings
+ tags:
+ - Large Language Model
+ put:
+ description: Upsert the Large Language Model setting
+ operationId: upsert_llm_setting
+ parameters:
+ - explode: false
+ in: path
+ name: languageModelName
+ required: true
+ schema:
+ title: languageModelName
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ example:
+ openai_api_key: your-key-here
+ schema:
+ title: Payload
+ type: object
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upsert LLM Setting
+ tags:
+ - Large Language Model
+ /embedder/settings:
+ get:
+ description: Get the list of the Embedders
+ operationId: get_embedders_settings
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingsResponse'
+ description: Successful Response
+ security: []
+ summary: Get Embedders Settings
+ tags:
+ - Embedder
+ /embedder/settings/{languageEmbedderName}:
+ get:
+ description: Get settings and schema of the specified Embedder
+ operationId: get_embedder_settings
+ parameters:
+ - explode: false
+ in: path
+ name: languageEmbedderName
+ required: true
+ schema:
+ title: languageEmbedderName
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Embedder Settings
+ tags:
+ - Embedder
+ put:
+ description: Upsert the Embedder setting
+ operationId: upsert_embedder_setting
+ parameters:
+ - explode: false
+ in: path
+ name: languageEmbedderName
+ required: true
+ schema:
+ title: languageEmbedderName
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ example:
+ openai_api_key: your-key-here
+ schema:
+ title: Payload
+ type: object
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upsert Embedder Setting
+ tags:
+ - Embedder
+ /plugins:
+ get:
+ description: List both installed and registry plugins
+ operationId: list_available_plugins
+ parameters:
+ - explode: true
+ in: query
+ name: query
+ required: false
+ schema:
+ title: Query
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PluginsList'
+ description: Successful Response
+ security: []
+ summary: List Available Plugins
+ tags:
+ - Plugins
+ /plugins/upload:
+ post:
+ description: Install a new plugin from a zip file
+ operationId: install_plugin
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BodyInstallPlugin'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Install Plugin
+ tags:
+ - Plugins
+ /plugins/upload/registry:
+ post:
+ description: Install a new plugin from external repository
+ operationId: install_plugin_from_registry
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BodyUploadUrl'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Install Plugin From Registry
+ tags:
+ - Plugins
+ /plugins/toggle/{plugin_id}:
+ put:
+ description: Enable or disable a single plugin
+ operationId: toggle_plugin
+ parameters:
+ - explode: false
+ in: path
+ name: plugin_id
+ required: true
+ schema:
+ title: Plugin ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ToggleResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Toggle Plugin
+ tags:
+ - Plugins
+ /plugins/{plugin_id}:
+ delete:
+ description: Physically remove a plugin
+ operationId: delete_plugin
+ parameters:
+ - explode: false
+ in: path
+ name: plugin_id
+ required: true
+ schema:
+ title: Plugin ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Delete Plugin
+ tags:
+ - Plugins
+ get:
+ description: Returns information on a single plugin
+ operationId: get_plugin_details
+ parameters:
+ - explode: false
+ in: path
+ name: plugin_id
+ required: true
+ schema:
+ title: Plugin ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Plugin'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Plugin Details
+ tags:
+ - Plugins
+ /plugins/settings:
+ get:
+ description: Returns the settings of all the plugins
+ operationId: get_plugins_settings
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SettingsResponse'
+ description: Successful Response
+ security: []
+ summary: Get Plugins Settings
+ tags:
+ - Plugins
+ /plugins/settings/{plugin_id}:
+ get:
+ description: Returns the settings of a specific plugin
+ operationId: get_plugin_settings
+ parameters:
+ - explode: false
+ in: path
+ name: plugin_id
+ required: true
+ schema:
+ title: Plugin ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/get_plugin_settings_200_response'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Get Plugin Settings
+ tags:
+ - Plugins
+ put:
+ description: Updates the settings of a specific plugin
+ operationId: upsert_plugin_settings
+ parameters:
+ - explode: false
+ in: path
+ name: plugin_id
+ required: true
+ schema:
+ title: Plugin ID
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ example:
+ setting_a: some value
+ setting_b: another value
+ schema:
+ title: Payload
+ type: object
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Setting'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upsert Plugin Settings
+ tags:
+ - Plugins
+ /memory/recall:
+ get:
+ description: Search k memories similar to given text.
+ operationId: recall_memories_from_text
+ parameters:
+ - description: Find memories similar to this text.
+ explode: true
+ in: query
+ name: text
+ required: true
+ schema:
+ description: Find memories similar to this text.
+ title: Text
+ type: string
+ style: form
+ - description: How many memories to return.
+ explode: true
+ in: query
+ name: k
+ required: false
+ schema:
+ default: 100
+ description: How many memories to return.
+ title: K
+ type: integer
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MemoryRecall'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Recall Memories From Text
+ tags:
+ - Memory
+ /memory/collections:
+ delete:
+ description: Delete and create all collections
+ operationId: wipe_collections
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ security: []
+ summary: Wipe Collections
+ tags:
+ - Memory
+ get:
+ description: Get list of available collections
+ operationId: get_collections
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CollectionsList'
+ description: Successful Response
+ security: []
+ summary: Get Collections
+ tags:
+ - Memory
+ /memory/collections/{collection_id}:
+ delete:
+ description: Delete and recreate a collection
+ operationId: wipe_single_collection
+ parameters:
+ - explode: false
+ in: path
+ name: collection_id
+ required: true
+ schema:
+ title: Collection ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Wipe Single Collection
+ tags:
+ - Memory
+ /memory/collections/{collection_id}/points/{memory_id}:
+ delete:
+ description: Delete specific point in memory
+ operationId: delete_point_in_memory
+ parameters:
+ - explode: false
+ in: path
+ name: collection_id
+ required: true
+ schema:
+ title: Collection ID
+ type: string
+ style: simple
+ - explode: false
+ in: path
+ name: memory_id
+ required: true
+ schema:
+ title: Memory ID
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Delete Point In Memory
+ tags:
+ - Memory
+ /memory/collections/{collection_id}/points:
+ delete:
+ description: Delete points in memory by filter
+ operationId: wipe_memory_points
+ parameters:
+ - explode: false
+ in: path
+ name: collection_id
+ required: true
+ schema:
+ title: Collection Id
+ type: string
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ default: {}
+ title: Metadata
+ type: object
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Wipe Memory Points By Metadata
+ tags:
+ - Memory
+ /memory/conversation_history:
+ delete:
+ description: Delete the specified user's conversation history from working memory
+ operationId: wipe_conversation_history
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteResponse'
+ description: Successful Response
+ security: []
+ summary: Wipe Conversation History
+ tags:
+ - Memory
+ get:
+ description: Get the specified user's conversation history from working memory
+ operationId: get_conversation_history
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConversationHistory'
+ description: Successful Response
+ security: []
+ summary: Get Conversation History
+ tags:
+ - Memory
+ /rabbithole:
+ post:
+ description: |-
+ Upload a file containing text (.txt, .md, .pdf, etc.). File content will be extracted and segmented into chunks.
+ Chunks will be then vectorized and stored into documents memory.
+ operationId: upload_file
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BodyUploadFile'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upload File
+ tags:
+ - Rabbit Hole
+ /rabbithole/web:
+ post:
+ description: |-
+ Upload a URL. Website content will be extracted and segmented into chunks.
+ Chunks will be then vectorized and stored into documents memory.
+ operationId: upload_url
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BodyUploadUrl'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/WebResponse'
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upload URL
+ tags:
+ - Rabbit Hole
+ /rabbithole/memory:
+ post:
+ description: Upload a memory json file to the cat memory
+ operationId: upload_memory
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/BodyUploadMemory'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ title: Response Upload Memory
+ type: object
+ description: Successful Response
+ "422":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HTTPValidationError'
+ description: Validation Error
+ security: []
+ summary: Upload Memory
+ tags:
+ - Rabbit Hole
+ /rabbithole/allowed-mimetypes:
+ get:
+ description: Retrieve the allowed mimetypes that can be ingested by the Rabbit
+ Hole
+ operationId: get_allowed_mimetypes
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Response_Get_Allowed_Mimetypes'
+ description: Successful Response
+ security: []
+ summary: Get Allowed Mimetypes
+ tags:
+ - Rabbit Hole
+components:
+ schemas:
+ BodyInstallPlugin:
+ properties:
+ file:
+ format: binary
+ title: File
+ type: string
+ required:
+ - file
+ title: BodyInstallPlugin
+ type: object
+ BodyUploadFile:
+ properties:
+ file:
+ format: binary
+ title: File
+ type: string
+ required:
+ - file
+ title: BodyUploadFile
+ type: object
+ BodyUploadMemory:
+ properties:
+ file:
+ format: binary
+ title: File
+ type: string
+ required:
+ - file
+ title: BodyUploadMemory
+ type: object
+ BodyUploadUrl:
+ example:
+ url: url
+ properties:
+ url:
+ description: URL of the website to which you want to save the content
+ title: URL
+ type: string
+ required:
+ - url
+ title: BodyUploadUrl
+ type: object
+ Collection:
+ example:
+ vectors_count: 0
+ name: name
+ properties:
+ name:
+ title: Name
+ type: string
+ vectors_count:
+ title: Vectors Count
+ type: integer
+ required:
+ - name
+ - vectors_count
+ title: Collection
+ type: object
+ CollectionData:
+ example:
+ score: 1
+ metadata:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ page_content: page_content
+ vector:
+ - 5
+ - 5
+ id: id
+ properties:
+ page_content:
+ title: Page Content
+ type: string
+ metadata:
+ $ref: '#/components/schemas/MetaData'
+ id:
+ title: ID
+ type: string
+ score:
+ title: Score
+ type: integer
+ vector:
+ items:
+ type: integer
+ title: Vector
+ type: array
+ required:
+ - id
+ - metadata
+ - page_content
+ - score
+ - vector
+ title: CollectionData
+ type: object
+ CollectionsList:
+ example:
+ collections:
+ - vectors_count: 0
+ name: name
+ - vectors_count: 0
+ name: name
+ properties:
+ collections:
+ items:
+ $ref: '#/components/schemas/Collection'
+ title: Collections
+ type: array
+ required:
+ - collections
+ title: CollectionsList
+ type: object
+ FileResponse:
+ example:
+ filename: filename
+ content_type: content_type
+ info: info
+ properties:
+ filename:
+ title: File Name
+ type: string
+ content_type:
+ title: Content Type
+ type: string
+ info:
+ title: Info
+ type: string
+ required:
+ - content_type
+ - filename
+ - info
+ title: FileResponse
+ type: object
+ ConversationMessage:
+ example:
+ why: "{}"
+ message: message
+ who: who
+ properties:
+ who:
+ title: Who
+ type: string
+ message:
+ title: Message
+ type: string
+ why:
+ title: Why
+ type: object
+ required:
+ - message
+ - who
+ title: ConversationMessage
+ type: object
+ HTTPValidationError:
+ example:
+ detail:
+ error: error
+ properties:
+ detail:
+ $ref: '#/components/schemas/Detail'
+ title: HTTPValidationError
+ type: object
+ MemoryRecall:
+ example:
+ vectors:
+ collections:
+ key:
+ - score: 1
+ metadata:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ page_content: page_content
+ vector:
+ - 5
+ - 5
+ id: id
+ - score: 1
+ metadata:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ page_content: page_content
+ vector:
+ - 5
+ - 5
+ id: id
+ embedder: embedder
+ query:
+ vector:
+ - 0
+ - 0
+ text: text
+ properties:
+ query:
+ $ref: '#/components/schemas/QueryData'
+ vectors:
+ $ref: '#/components/schemas/VectorsData'
+ required:
+ - query
+ - vectors
+ title: MemoryRecall
+ type: object
+ MetaData:
+ example:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ properties:
+ source:
+ title: Source
+ type: string
+ when:
+ title: When
+ type: integer
+ docstring:
+ title: DocString
+ type: string
+ name:
+ title: Name
+ type: string
+ required:
+ - source
+ - when
+ title: MetaData
+ type: object
+ Plugin:
+ example:
+ author_name: author_name
+ upgrade: upgrade
+ thumb: thumb
+ description: description
+ active: true
+ version: version
+ tools:
+ - name: name
+ - name: name
+ url: url
+ tags: tags
+ plugin_url: plugin_url
+ author_url: author_url
+ name: name
+ id: id
+ hooks:
+ - name: name
+ priority: 0
+ - name: name
+ priority: 0
+ properties:
+ id:
+ title: ID
+ type: string
+ name:
+ title: Name
+ type: string
+ description:
+ title: Description
+ type: string
+ author_name:
+ title: Author Name
+ type: string
+ author_url:
+ title: Author URL
+ type: string
+ plugin_url:
+ title: Plugin URL
+ type: string
+ tags:
+ title: Tags
+ type: string
+ thumb:
+ title: Thumb
+ type: string
+ version:
+ title: Version
+ type: string
+ active:
+ title: Active
+ type: boolean
+ url:
+ title: Install URL
+ type: string
+ upgrade:
+ title: Upgrade
+ type: string
+ hooks:
+ items:
+ $ref: '#/components/schemas/Hooks_inner'
+ title: Hooks
+ type: array
+ tools:
+ items:
+ $ref: '#/components/schemas/Tools_inner'
+ title: Tools
+ type: array
+ required:
+ - author_name
+ - author_url
+ - description
+ - id
+ - name
+ - plugin_url
+ - tags
+ - thumb
+ - version
+ title: Plugin
+ type: object
+ PluginsList:
+ example:
+ installed:
+ - author_name: author_name
+ upgrade: upgrade
+ thumb: thumb
+ description: description
+ active: true
+ version: version
+ tools:
+ - name: name
+ - name: name
+ url: url
+ tags: tags
+ plugin_url: plugin_url
+ author_url: author_url
+ name: name
+ id: id
+ hooks:
+ - name: name
+ priority: 0
+ - name: name
+ priority: 0
+ - author_name: author_name
+ upgrade: upgrade
+ thumb: thumb
+ description: description
+ active: true
+ version: version
+ tools:
+ - name: name
+ - name: name
+ url: url
+ tags: tags
+ plugin_url: plugin_url
+ author_url: author_url
+ name: name
+ id: id
+ hooks:
+ - name: name
+ priority: 0
+ - name: name
+ priority: 0
+ registry:
+ - author_name: author_name
+ upgrade: upgrade
+ thumb: thumb
+ description: description
+ active: true
+ version: version
+ tools:
+ - name: name
+ - name: name
+ url: url
+ tags: tags
+ plugin_url: plugin_url
+ author_url: author_url
+ name: name
+ id: id
+ hooks:
+ - name: name
+ priority: 0
+ - name: name
+ priority: 0
+ - author_name: author_name
+ upgrade: upgrade
+ thumb: thumb
+ description: description
+ active: true
+ version: version
+ tools:
+ - name: name
+ - name: name
+ url: url
+ tags: tags
+ plugin_url: plugin_url
+ author_url: author_url
+ name: name
+ id: id
+ hooks:
+ - name: name
+ priority: 0
+ - name: name
+ priority: 0
+ filters:
+ query: query
+ properties:
+ filters:
+ $ref: '#/components/schemas/Filters'
+ installed:
+ items:
+ $ref: '#/components/schemas/Plugin'
+ title: Installed
+ type: array
+ registry:
+ items:
+ $ref: '#/components/schemas/Plugin'
+ title: Registry
+ type: array
+ required:
+ - filters
+ - installed
+ - registry
+ title: PluginsList
+ type: object
+ QueryData:
+ example:
+ vector:
+ - 0
+ - 0
+ text: text
+ properties:
+ text:
+ title: Text
+ type: string
+ vector:
+ items:
+ type: integer
+ title: Vector
+ type: array
+ required:
+ - text
+ - vector
+ title: QueryData
+ type: object
+ SettingBody:
+ example:
+ name: name
+ category: category
+ value: "{}"
+ properties:
+ name:
+ title: Name
+ type: string
+ value:
+ title: Value
+ type: object
+ category:
+ title: Category
+ type: string
+ required:
+ - name
+ - value
+ title: SettingBody
+ type: object
+ Setting:
+ example:
+ schema: "{}"
+ name: name
+ value: "{}"
+ properties:
+ name:
+ type: string
+ value:
+ type: object
+ schema:
+ type: object
+ required:
+ - name
+ - value
+ title: Setting
+ type: object
+ SettingsResponse:
+ example:
+ settings:
+ - schema: "{}"
+ name: name
+ value: "{}"
+ - schema: "{}"
+ name: name
+ value: "{}"
+ selected_configuration: selected_configuration
+ properties:
+ settings:
+ items:
+ $ref: '#/components/schemas/Setting'
+ title: Settings
+ type: array
+ selected_configuration:
+ title: SelectedConfiguration
+ type: string
+ required:
+ - settings
+ title: SettingsResponse
+ type: object
+ VectorsData:
+ example:
+ collections:
+ key:
+ - score: 1
+ metadata:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ page_content: page_content
+ vector:
+ - 5
+ - 5
+ id: id
+ - score: 1
+ metadata:
+ docstring: docstring
+ name: name
+ source: source
+ when: 6
+ page_content: page_content
+ vector:
+ - 5
+ - 5
+ id: id
+ embedder: embedder
+ properties:
+ embedder:
+ title: Embedder
+ type: string
+ collections:
+ additionalProperties:
+ items:
+ $ref: '#/components/schemas/CollectionData'
+ type: array
+ title: Collections
+ type: object
+ required:
+ - collections
+ - embedder
+ title: VectorsData
+ type: object
+ WebResponse:
+ example:
+ url: url
+ info: info
+ properties:
+ url:
+ title: URL
+ type: string
+ info:
+ title: Info
+ type: string
+ required:
+ - info
+ - url
+ title: WebResponse
+ type: object
+ DeleteResponse:
+ items:
+ type: string
+ title: DeleteResponse
+ type: array
+ Status:
+ example:
+ version: version
+ status: status
+ properties:
+ status:
+ title: Status
+ type: string
+ version:
+ title: Version
+ type: string
+ required:
+ - status
+ - version
+ title: Status
+ type: object
+ ToggleResponse:
+ example:
+ info: info
+ properties:
+ info:
+ title: Info
+ type: string
+ required:
+ - info
+ title: ToggleResponse
+ type: object
+ get_plugin_settings_200_response:
+ allOf:
+ - $ref: '#/components/schemas/Setting'
+ - properties:
+ schema:
+ type: object
+ required:
+ - schema
+ type: object
+ example:
+ schema: "{}"
+ name: name
+ value: "{}"
+ ConversationHistory:
+ example:
+ history:
+ - why: "{}"
+ message: message
+ who: who
+ - why: "{}"
+ message: message
+ who: who
+ properties:
+ history:
+ items:
+ $ref: '#/components/schemas/ConversationMessage'
+ title: History
+ type: array
+ required:
+ - history
+ title: ConversationHistory
+ type: object
+ Response_Get_Allowed_Mimetypes:
+ example:
+ allowed:
+ - allowed
+ - allowed
+ properties:
+ allowed:
+ items:
+ type: string
+ title: Allowed
+ type: array
+ title: Response Get Allowed Mimetypes
+ type: object
+ Detail:
+ example:
+ error: error
+ properties:
+ error:
+ title: Message
+ type: string
+ required:
+ - error
+ title: Detail
+ type: object
+ Hooks_inner:
+ example:
+ name: name
+ priority: 0
+ properties:
+ name:
+ title: Name
+ type: string
+ priority:
+ title: Priority
+ type: integer
+ required:
+ - name
+ - priority
+ type: object
+ Tools_inner:
+ example:
+ name: name
+ properties:
+ name:
+ title: Name
+ type: string
+ required:
+ - name
+ type: object
+ Filters:
+ example:
+ query: query
+ properties:
+ query:
+ nullable: true
+ title: Query
+ type: string
+ title: Filters
+ type: object
+ securitySchemes: {}
+
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..f0a9707
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,9 @@
+# auto-generated by OpenAPI Generator (https://github.com/OpenAPITools/openapi-generator)
+#
+image: Visual Studio 2019
+clone_depth: 1
+build_script:
+- dotnet build -c Release
+- dotnet test -c Release
+after_build:
+- dotnet pack .\src\CheshireCatApi\CheshireCatApi.csproj -o ../../output -c Release --no-build
diff --git a/catapi.json b/catapi.json
new file mode 100644
index 0000000..7731450
--- /dev/null
+++ b/catapi.json
@@ -0,0 +1,1901 @@
+{
+ "openapi": "3.0.2",
+ "info": {
+ "title": "😸 Cheshire-Cat API",
+ "description": "Customizable AI architecture",
+ "version": "0.0.5",
+ "x-logo": {
+ "url": "https://github.com/cheshire-cat-ai/core/blob/main/cheshire-cat.jpeg?raw=true"
+ }
+ },
+ "paths": {
+ "/": {
+ "get": {
+ "tags": [
+ "Status"
+ ],
+ "summary": "Home",
+ "description": "Server status",
+ "operationId": "home",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Status"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/settings": {
+ "get": {
+ "tags": [
+ "Settings"
+ ],
+ "summary": "Get Settings",
+ "description": "Get the entire list of settings available in the database",
+ "operationId": "get_settings",
+ "parameters": [
+ {
+ "required": false,
+ "schema": {
+ "title": "Search",
+ "type": "string",
+ "default": ""
+ },
+ "description": "The setting to search",
+ "name": "search",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "post": {
+ "tags": [
+ "Settings"
+ ],
+ "summary": "Create Setting",
+ "description": "Create a new setting in the database",
+ "operationId": "create_setting",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingBody"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/settings/{settingId}": {
+ "get": {
+ "tags": [
+ "Settings"
+ ],
+ "summary": "Get Setting",
+ "description": "Get the a specific setting from the database",
+ "operationId": "get_setting",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Settingid",
+ "type": "string"
+ },
+ "name": "settingId",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "delete": {
+ "tags": [
+ "Settings"
+ ],
+ "summary": "Delete Setting",
+ "description": "Delete a specific setting in the database",
+ "operationId": "delete_setting",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Settingid",
+ "type": "string"
+ },
+ "name": "settingId",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {}
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "put": {
+ "tags": [
+ "Settings"
+ ],
+ "summary": "Update Setting",
+ "description": "Update a specific setting in the database if it exists",
+ "operationId": "update_setting",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Settingid",
+ "type": "string"
+ },
+ "name": "settingId",
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingBody"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/llm/settings": {
+ "get": {
+ "tags": [
+ "Large Language Model"
+ ],
+ "summary": "Get LLMs Settings",
+ "description": "Get the list of the Large Language Models",
+ "operationId": "get_llms_settings",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/llm/settings/{languageModelName}": {
+ "get": {
+ "tags": [
+ "Large Language Model"
+ ],
+ "summary": "Get Llm Settings",
+ "description": "Get settings and schema of the specified Large Language Model",
+ "operationId": "get_llm_settings",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "languageModelName",
+ "type": "string"
+ },
+ "name": "languageModelName",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "put": {
+ "tags": [
+ "Large Language Model"
+ ],
+ "summary": "Upsert LLM Setting",
+ "description": "Upsert the Large Language Model setting",
+ "operationId": "upsert_llm_setting",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "languageModelName",
+ "type": "string"
+ },
+ "name": "languageModelName",
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Payload",
+ "type": "object"
+ },
+ "example": {
+ "openai_api_key": "your-key-here"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/embedder/settings": {
+ "get": {
+ "tags": [
+ "Embedder"
+ ],
+ "summary": "Get Embedders Settings",
+ "description": "Get the list of the Embedders",
+ "operationId": "get_embedders_settings",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/embedder/settings/{languageEmbedderName}": {
+ "get": {
+ "tags": [
+ "Embedder"
+ ],
+ "summary": "Get Embedder Settings",
+ "description": "Get settings and schema of the specified Embedder",
+ "operationId": "get_embedder_settings",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "languageEmbedderName",
+ "type": "string"
+ },
+ "name": "languageEmbedderName",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "put": {
+ "tags": [
+ "Embedder"
+ ],
+ "summary": "Upsert Embedder Setting",
+ "description": "Upsert the Embedder setting",
+ "operationId": "upsert_embedder_setting",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "languageEmbedderName",
+ "type": "string"
+ },
+ "name": "languageEmbedderName",
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Payload",
+ "type": "object"
+ },
+ "example": {
+ "openai_api_key": "your-key-here"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins": {
+ "get": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "List Available Plugins",
+ "description": "List both installed and registry plugins",
+ "operationId": "list_available_plugins",
+ "parameters": [
+ {
+ "required": false,
+ "schema": {
+ "title": "Query",
+ "type": "string"
+ },
+ "name": "query",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PluginsList"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/upload": {
+ "post": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Install Plugin",
+ "description": "Install a new plugin from a zip file",
+ "operationId": "install_plugin",
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/BodyInstallPlugin"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FileResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/upload/registry": {
+ "post": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Install Plugin From Registry",
+ "description": "Install a new plugin from external repository",
+ "operationId": "install_plugin_from_registry",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BodyUploadUrl"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FileResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/toggle/{plugin_id}": {
+ "put": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Toggle Plugin",
+ "description": "Enable or disable a single plugin",
+ "operationId": "toggle_plugin",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Plugin ID",
+ "type": "string"
+ },
+ "name": "plugin_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "ToggleResponse",
+ "required": [
+ "info"
+ ],
+ "type": "object",
+ "properties": {
+ "info": {
+ "title": "Info",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/{plugin_id}": {
+ "get": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Get Plugin Details",
+ "description": "Returns information on a single plugin",
+ "operationId": "get_plugin_details",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Plugin ID",
+ "type": "string"
+ },
+ "name": "plugin_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Plugin"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "delete": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Delete Plugin",
+ "description": "Physically remove a plugin",
+ "operationId": "delete_plugin",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Plugin ID",
+ "type": "string"
+ },
+ "name": "plugin_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/settings": {
+ "get": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Get Plugins Settings",
+ "description": "Returns the settings of all the plugins",
+ "operationId": "get_plugins_settings",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SettingsResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/plugins/settings/{plugin_id}": {
+ "get": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Get Plugin Settings",
+ "description": "Returns the settings of a specific plugin",
+ "operationId": "get_plugin_settings",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Plugin ID",
+ "type": "string"
+ },
+ "name": "plugin_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Setting"
+ },
+ {
+ "required": [
+ "schema"
+ ],
+ "type": "object",
+ "properties": {
+ "schema": {
+ "type": "object"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "put": {
+ "tags": [
+ "Plugins"
+ ],
+ "summary": "Upsert Plugin Settings",
+ "description": "Updates the settings of a specific plugin",
+ "operationId": "upsert_plugin_settings",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Plugin ID",
+ "type": "string"
+ },
+ "name": "plugin_id",
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Payload",
+ "type": "object"
+ },
+ "example": {
+ "setting_a": "some value",
+ "setting_b": "another value"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/memory/recall": {
+ "get": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Recall Memories From Text",
+ "description": "Search k memories similar to given text.",
+ "operationId": "recall_memories_from_text",
+ "parameters": [
+ {
+ "description": "Find memories similar to this text.",
+ "required": true,
+ "schema": {
+ "title": "Text",
+ "type": "string",
+ "description": "Find memories similar to this text."
+ },
+ "name": "text",
+ "in": "query"
+ },
+ {
+ "description": "How many memories to return.",
+ "required": false,
+ "schema": {
+ "title": "K",
+ "type": "integer",
+ "description": "How many memories to return.",
+ "default": 100
+ },
+ "name": "k",
+ "in": "query"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MemoryRecall"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/memory/collections": {
+ "get": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Get Collections",
+ "description": "Get list of available collections",
+ "operationId": "get_collections",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionsList"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "delete": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Wipe Collections",
+ "description": "Delete and create all collections",
+ "operationId": "wipe_collections",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/memory/collections/{collection_id}": {
+ "delete": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Wipe Single Collection",
+ "description": "Delete and recreate a collection",
+ "operationId": "wipe_single_collection",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Collection ID",
+ "type": "string"
+ },
+ "name": "collection_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/memory/collections/{collection_id}/points/{memory_id}": {
+ "delete": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Delete Point In Memory",
+ "description": "Delete specific point in memory",
+ "operationId": "delete_point_in_memory",
+ "parameters": [
+ {
+ "required": true,
+ "schema": {
+ "title": "Collection ID",
+ "type": "string"
+ },
+ "name": "collection_id",
+ "in": "path"
+ },
+ {
+ "required": true,
+ "schema": {
+ "title": "Memory ID",
+ "type": "string"
+ },
+ "name": "memory_id",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/memory/collections/{collection_id}/points": {
+ "delete": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Wipe Memory Points By Metadata",
+ "description": "Delete points in memory by filter",
+ "operationId": "wipe_memory_points",
+ "security": [],
+ "parameters": [
+ {
+ "name": "collection_id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "title": "Collection Id"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "default": {},
+ "title": "Metadata"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/memory/conversation_history": {
+ "get": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Get Conversation History",
+ "description": "Get the specified user's conversation history from working memory",
+ "operationId": "get_conversation_history",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "ConversationHistory",
+ "type": "object",
+ "required": [
+ "history"
+ ],
+ "properties": {
+ "history": {
+ "title": "History",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ConversationMessage"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ },
+ "delete": {
+ "tags": [
+ "Memory"
+ ],
+ "summary": "Wipe Conversation History",
+ "description": "Delete the specified user's conversation history from working memory",
+ "operationId": "wipe_conversation_history",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeleteResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/rabbithole": {
+ "post": {
+ "tags": [
+ "Rabbit Hole"
+ ],
+ "summary": "Upload File",
+ "description": "Upload a file containing text (.txt, .md, .pdf, etc.). File content will be extracted and segmented into chunks.\nChunks will be then vectorized and stored into documents memory.",
+ "operationId": "upload_file",
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/BodyUploadFile"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FileResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/rabbithole/web": {
+ "post": {
+ "tags": [
+ "Rabbit Hole"
+ ],
+ "summary": "Upload URL",
+ "description": "Upload a URL. Website content will be extracted and segmented into chunks.\nChunks will be then vectorized and stored into documents memory.",
+ "operationId": "upload_url",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BodyUploadUrl"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/WebResponse"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/rabbithole/memory": {
+ "post": {
+ "tags": [
+ "Rabbit Hole"
+ ],
+ "summary": "Upload Memory",
+ "description": "Upload a memory json file to the cat memory",
+ "operationId": "upload_memory",
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/BodyUploadMemory"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Upload Memory",
+ "type": "object"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ },
+ "/rabbithole/allowed-mimetypes": {
+ "get": {
+ "tags": [
+ "Rabbit Hole"
+ ],
+ "summary": "Get Allowed Mimetypes",
+ "description": "Retrieve the allowed mimetypes that can be ingested by the Rabbit Hole",
+ "operationId": "get_allowed_mimetypes",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "title": "Response Get Allowed Mimetypes",
+ "type": "object",
+ "properties": {
+ "allowed": {
+ "title": "Allowed",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "security": []
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "BodyInstallPlugin": {
+ "title": "BodyInstallPlugin",
+ "required": [
+ "file"
+ ],
+ "type": "object",
+ "properties": {
+ "file": {
+ "title": "File",
+ "type": "string",
+ "format": "binary"
+ }
+ }
+ },
+ "BodyUploadFile": {
+ "title": "BodyUploadFile",
+ "required": [
+ "file"
+ ],
+ "type": "object",
+ "properties": {
+ "file": {
+ "title": "File",
+ "type": "string",
+ "format": "binary"
+ }
+ }
+ },
+ "BodyUploadMemory": {
+ "title": "BodyUploadMemory",
+ "required": [
+ "file"
+ ],
+ "type": "object",
+ "properties": {
+ "file": {
+ "title": "File",
+ "type": "string",
+ "format": "binary"
+ }
+ }
+ },
+ "BodyUploadUrl": {
+ "title": "BodyUploadUrl",
+ "required": [
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "title": "URL",
+ "type": "string",
+ "description": "URL of the website to which you want to save the content"
+ }
+ }
+ },
+ "Collection": {
+ "title": "Collection",
+ "required": [
+ "name",
+ "vectors_count"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "type": "string"
+ },
+ "vectors_count": {
+ "title": "Vectors Count",
+ "type": "integer"
+ }
+ }
+ },
+ "CollectionData": {
+ "title": "CollectionData",
+ "required": [
+ "page_content",
+ "metadata",
+ "score",
+ "vector",
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "page_content": {
+ "title": "Page Content",
+ "type": "string"
+ },
+ "metadata": {
+ "$ref": "#/components/schemas/MetaData"
+ },
+ "id": {
+ "title": "ID",
+ "type": "string"
+ },
+ "score": {
+ "title": "Score",
+ "type": "integer"
+ },
+ "vector": {
+ "title": "Vector",
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "CollectionsList": {
+ "title": "CollectionsList",
+ "required": [
+ "collections"
+ ],
+ "type": "object",
+ "properties": {
+ "collections": {
+ "title": "Collections",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Collection"
+ }
+ }
+ }
+ },
+ "FileResponse": {
+ "title": "FileResponse",
+ "required": [
+ "filename",
+ "content_type",
+ "info"
+ ],
+ "type": "object",
+ "properties": {
+ "filename": {
+ "title": "File Name",
+ "type": "string"
+ },
+ "content_type": {
+ "title": "Content Type",
+ "type": "string"
+ },
+ "info": {
+ "title": "Info",
+ "type": "string"
+ }
+ }
+ },
+ "ConversationMessage": {
+ "title": "ConversationMessage",
+ "required": [
+ "who",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "who": {
+ "title": "Who",
+ "type": "string"
+ },
+ "message": {
+ "title": "Message",
+ "type": "string"
+ },
+ "why": {
+ "title": "Why",
+ "type": "object"
+ }
+ }
+ },
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "required": [
+ "error"
+ ],
+ "type": "object",
+ "properties": {
+ "error": {
+ "title": "Message",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "MemoryRecall": {
+ "title": "MemoryRecall",
+ "required": [
+ "query",
+ "vectors"
+ ],
+ "type": "object",
+ "properties": {
+ "query": {
+ "$ref": "#/components/schemas/QueryData"
+ },
+ "vectors": {
+ "$ref": "#/components/schemas/VectorsData"
+ }
+ }
+ },
+ "MetaData": {
+ "title": "MetaData",
+ "required": [
+ "source",
+ "when"
+ ],
+ "type": "object",
+ "properties": {
+ "source": {
+ "title": "Source",
+ "type": "string"
+ },
+ "when": {
+ "title": "When",
+ "type": "integer"
+ },
+ "docstring": {
+ "title": "DocString",
+ "type": "string"
+ },
+ "name": {
+ "title": "Name",
+ "type": "string"
+ }
+ }
+ },
+ "Plugin": {
+ "title": "Plugin",
+ "required": [
+ "id",
+ "name",
+ "description",
+ "author_name",
+ "author_url",
+ "plugin_url",
+ "tags",
+ "thumb",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "title": "ID",
+ "type": "string"
+ },
+ "name": {
+ "title": "Name",
+ "type": "string"
+ },
+ "description": {
+ "title": "Description",
+ "type": "string"
+ },
+ "author_name": {
+ "title": "Author Name",
+ "type": "string"
+ },
+ "author_url": {
+ "title": "Author URL",
+ "type": "string"
+ },
+ "plugin_url": {
+ "title": "Plugin URL",
+ "type": "string"
+ },
+ "tags": {
+ "title": "Tags",
+ "type": "string"
+ },
+ "thumb": {
+ "title": "Thumb",
+ "type": "string"
+ },
+ "version": {
+ "title": "Version",
+ "type": "string"
+ },
+ "active": {
+ "title": "Active",
+ "type": "boolean"
+ },
+ "url": {
+ "title": "Install URL",
+ "type": "string"
+ },
+ "upgrade": {
+ "title": "Upgrade",
+ "type": "string"
+ },
+ "hooks": {
+ "title": "Hooks",
+ "type": "array",
+ "items": {
+ "required": [
+ "name",
+ "priority"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "type": "string"
+ },
+ "priority": {
+ "title": "Priority",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "tools": {
+ "title": "Tools",
+ "type": "array",
+ "items": {
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "PluginsList": {
+ "title": "PluginsList",
+ "required": [
+ "filters",
+ "installed",
+ "registry"
+ ],
+ "type": "object",
+ "properties": {
+ "filters": {
+ "title": "Filters",
+ "type": "object",
+ "properties": {
+ "query": {
+ "title": "Query",
+ "nullable": "true",
+ "type": "string"
+ }
+ }
+ },
+ "installed": {
+ "title": "Installed",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Plugin"
+ }
+ },
+ "registry": {
+ "title": "Registry",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Plugin"
+ }
+ }
+ }
+ },
+ "QueryData": {
+ "title": "QueryData",
+ "required": [
+ "text",
+ "vector"
+ ],
+ "type": "object",
+ "properties": {
+ "text": {
+ "title": "Text",
+ "type": "string"
+ },
+ "vector": {
+ "title": "Vector",
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "SettingBody": {
+ "title": "SettingBody",
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Name",
+ "type": "string"
+ },
+ "value": {
+ "title": "Value",
+ "type": "object"
+ },
+ "category": {
+ "title": "Category",
+ "type": "string"
+ }
+ }
+ },
+ "Setting": {
+ "title": "Setting",
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "object"
+ },
+ "schema": {
+ "type": "object"
+ }
+ }
+ },
+ "SettingsResponse": {
+ "title": "SettingsResponse",
+ "required": [
+ "settings"
+ ],
+ "type": "object",
+ "properties": {
+ "settings": {
+ "title": "Settings",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Setting"
+ }
+ },
+ "selected_configuration": {
+ "title": "SelectedConfiguration",
+ "type": "string"
+ }
+ }
+ },
+ "VectorsData": {
+ "title": "VectorsData",
+ "required": [
+ "embedder",
+ "collections"
+ ],
+ "type": "object",
+ "properties": {
+ "embedder": {
+ "title": "Embedder",
+ "type": "string"
+ },
+ "collections": {
+ "title": "Collections",
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionData"
+ }
+ }
+ }
+ }
+ },
+ "WebResponse": {
+ "title": "WebResponse",
+ "required": [
+ "url",
+ "info"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "title": "URL",
+ "type": "string"
+ },
+ "info": {
+ "title": "Info",
+ "type": "string"
+ }
+ }
+ },
+ "DeleteResponse": {
+ "title": "DeleteResponse",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Status": {
+ "title": "Status",
+ "required": [
+ "status",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "status": {
+ "title": "Status",
+ "type": "string"
+ },
+ "version": {
+ "title": "Version",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "securitySchemes": {}
+ }
+}
\ No newline at end of file
diff --git a/docs/BodyUploadUrl.md b/docs/BodyUploadUrl.md
new file mode 100644
index 0000000..7118723
--- /dev/null
+++ b/docs/BodyUploadUrl.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.BodyUploadUrl
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Url** | **string** | URL of the website to which you want to save the content |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/Collection.md b/docs/Collection.md
new file mode 100644
index 0000000..d742490
--- /dev/null
+++ b/docs/Collection.md
@@ -0,0 +1,11 @@
+# CheshireCatApi.Model.Collection
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | |
+**VectorsCount** | **int** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/CollectionData.md b/docs/CollectionData.md
new file mode 100644
index 0000000..032f728
--- /dev/null
+++ b/docs/CollectionData.md
@@ -0,0 +1,14 @@
+# CheshireCatApi.Model.CollectionData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**PageContent** | **string** | |
+**Metadata** | [**MetaData**](MetaData.md) | |
+**Id** | **string** | |
+**Score** | **int** | |
+**Vector** | **List<int>** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/CollectionsList.md b/docs/CollectionsList.md
new file mode 100644
index 0000000..a3005c8
--- /dev/null
+++ b/docs/CollectionsList.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.CollectionsList
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Collections** | **List<Collection>** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/ConversationHistory.md b/docs/ConversationHistory.md
new file mode 100644
index 0000000..d86e47d
--- /dev/null
+++ b/docs/ConversationHistory.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.ConversationHistory
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**History** | [**List<ConversationMessage>**](ConversationMessage.md) | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/ConversationMessage.md b/docs/ConversationMessage.md
new file mode 100644
index 0000000..6b4ef18
--- /dev/null
+++ b/docs/ConversationMessage.md
@@ -0,0 +1,12 @@
+# CheshireCatApi.Model.ConversationMessage
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Who** | **string** | |
+**Message** | **string** | |
+**Why** | **Object** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/Detail.md b/docs/Detail.md
new file mode 100644
index 0000000..76fa30e
--- /dev/null
+++ b/docs/Detail.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.Detail
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Error** | **string** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/EmbedderApi.md b/docs/EmbedderApi.md
new file mode 100644
index 0000000..3abf683
--- /dev/null
+++ b/docs/EmbedderApi.md
@@ -0,0 +1,282 @@
+# CheshireCatApi.Api.EmbedderApi
+
+All URIs are relative to *http://localhost*
+
+| Method | HTTP request | Description |
+|--------|--------------|-------------|
+| [**GetEmbedderSettings**](EmbedderApi.md#getembeddersettings) | **GET** /embedder/settings/{languageEmbedderName} | Get Embedder Settings |
+| [**GetEmbeddersSettings**](EmbedderApi.md#getembedderssettings) | **GET** /embedder/settings | Get Embedders Settings |
+| [**UpsertEmbedderSetting**](EmbedderApi.md#upsertembeddersetting) | **PUT** /embedder/settings/{languageEmbedderName} | Upsert Embedder Setting |
+
+
+# **GetEmbedderSettings**
+> Setting GetEmbedderSettings (string languageEmbedderName)
+
+Get Embedder Settings
+
+Get settings and schema of the specified Embedder
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetEmbedderSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new EmbedderApi(config);
+ var languageEmbedderName = "languageEmbedderName_example"; // string |
+
+ try
+ {
+ // Get Embedder Settings
+ Setting result = apiInstance.GetEmbedderSettings(languageEmbedderName);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling EmbedderApi.GetEmbedderSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetEmbedderSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Embedder Settings
+ ApiResponse response = apiInstance.GetEmbedderSettingsWithHttpInfo(languageEmbedderName);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling EmbedderApi.GetEmbedderSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **languageEmbedderName** | **string** | | |
+
+### Return type
+
+[**Setting**](Setting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetEmbeddersSettings**
+> SettingsResponse GetEmbeddersSettings ()
+
+Get Embedders Settings
+
+Get the list of the Embedders
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetEmbeddersSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new EmbedderApi(config);
+
+ try
+ {
+ // Get Embedders Settings
+ SettingsResponse result = apiInstance.GetEmbeddersSettings();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling EmbedderApi.GetEmbeddersSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetEmbeddersSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Embedders Settings
+ ApiResponse response = apiInstance.GetEmbeddersSettingsWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling EmbedderApi.GetEmbeddersSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**SettingsResponse**](SettingsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **UpsertEmbedderSetting**
+> Setting UpsertEmbedderSetting (string languageEmbedderName, Object body)
+
+Upsert Embedder Setting
+
+Upsert the Embedder setting
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class UpsertEmbedderSettingExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new EmbedderApi(config);
+ var languageEmbedderName = "languageEmbedderName_example"; // string |
+ var body = {"openai_api_key":"your-key-here"}; // Object |
+
+ try
+ {
+ // Upsert Embedder Setting
+ Setting result = apiInstance.UpsertEmbedderSetting(languageEmbedderName, body);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling EmbedderApi.UpsertEmbedderSetting: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UpsertEmbedderSettingWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Upsert Embedder Setting
+ ApiResponse response = apiInstance.UpsertEmbedderSettingWithHttpInfo(languageEmbedderName, body);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling EmbedderApi.UpsertEmbedderSettingWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **languageEmbedderName** | **string** | | |
+| **body** | **Object** | | |
+
+### Return type
+
+[**Setting**](Setting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/docs/FileResponse.md b/docs/FileResponse.md
new file mode 100644
index 0000000..90081a6
--- /dev/null
+++ b/docs/FileResponse.md
@@ -0,0 +1,12 @@
+# CheshireCatApi.Model.FileResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Filename** | **string** | |
+**ContentType** | **string** | |
+**Info** | **string** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/Filters.md b/docs/Filters.md
new file mode 100644
index 0000000..f51d02c
--- /dev/null
+++ b/docs/Filters.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.Filters
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Query** | **string** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/GetPluginSettings200Response.md b/docs/GetPluginSettings200Response.md
new file mode 100644
index 0000000..8807f0f
--- /dev/null
+++ b/docs/GetPluginSettings200Response.md
@@ -0,0 +1,12 @@
+# CheshireCatApi.Model.GetPluginSettings200Response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | |
+**Value** | **Object** | |
+**Schema** | **Object** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/HTTPValidationError.md b/docs/HTTPValidationError.md
new file mode 100644
index 0000000..8a86b22
--- /dev/null
+++ b/docs/HTTPValidationError.md
@@ -0,0 +1,10 @@
+# CheshireCatApi.Model.HTTPValidationError
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Detail** | [**Detail**](Detail.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/HooksInner.md b/docs/HooksInner.md
new file mode 100644
index 0000000..404cac4
--- /dev/null
+++ b/docs/HooksInner.md
@@ -0,0 +1,11 @@
+# CheshireCatApi.Model.HooksInner
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | |
+**Priority** | **int** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/LargeLanguageModelApi.md b/docs/LargeLanguageModelApi.md
new file mode 100644
index 0000000..5b18c7d
--- /dev/null
+++ b/docs/LargeLanguageModelApi.md
@@ -0,0 +1,282 @@
+# CheshireCatApi.Api.LargeLanguageModelApi
+
+All URIs are relative to *http://localhost*
+
+| Method | HTTP request | Description |
+|--------|--------------|-------------|
+| [**GetLlmSettings**](LargeLanguageModelApi.md#getllmsettings) | **GET** /llm/settings/{languageModelName} | Get Llm Settings |
+| [**GetLlmsSettings**](LargeLanguageModelApi.md#getllmssettings) | **GET** /llm/settings | Get LLMs Settings |
+| [**UpsertLlmSetting**](LargeLanguageModelApi.md#upsertllmsetting) | **PUT** /llm/settings/{languageModelName} | Upsert LLM Setting |
+
+
+# **GetLlmSettings**
+> Setting GetLlmSettings (string languageModelName)
+
+Get Llm Settings
+
+Get settings and schema of the specified Large Language Model
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetLlmSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new LargeLanguageModelApi(config);
+ var languageModelName = "languageModelName_example"; // string |
+
+ try
+ {
+ // Get Llm Settings
+ Setting result = apiInstance.GetLlmSettings(languageModelName);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling LargeLanguageModelApi.GetLlmSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetLlmSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Llm Settings
+ ApiResponse response = apiInstance.GetLlmSettingsWithHttpInfo(languageModelName);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling LargeLanguageModelApi.GetLlmSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **languageModelName** | **string** | | |
+
+### Return type
+
+[**Setting**](Setting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetLlmsSettings**
+> SettingsResponse GetLlmsSettings ()
+
+Get LLMs Settings
+
+Get the list of the Large Language Models
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetLlmsSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new LargeLanguageModelApi(config);
+
+ try
+ {
+ // Get LLMs Settings
+ SettingsResponse result = apiInstance.GetLlmsSettings();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling LargeLanguageModelApi.GetLlmsSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetLlmsSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get LLMs Settings
+ ApiResponse response = apiInstance.GetLlmsSettingsWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling LargeLanguageModelApi.GetLlmsSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**SettingsResponse**](SettingsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **UpsertLlmSetting**
+> Setting UpsertLlmSetting (string languageModelName, Object body)
+
+Upsert LLM Setting
+
+Upsert the Large Language Model setting
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class UpsertLlmSettingExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new LargeLanguageModelApi(config);
+ var languageModelName = "languageModelName_example"; // string |
+ var body = {"openai_api_key":"your-key-here"}; // Object |
+
+ try
+ {
+ // Upsert LLM Setting
+ Setting result = apiInstance.UpsertLlmSetting(languageModelName, body);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling LargeLanguageModelApi.UpsertLlmSetting: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UpsertLlmSettingWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Upsert LLM Setting
+ ApiResponse response = apiInstance.UpsertLlmSettingWithHttpInfo(languageModelName, body);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling LargeLanguageModelApi.UpsertLlmSettingWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **languageModelName** | **string** | | |
+| **body** | **Object** | | |
+
+### Return type
+
+[**Setting**](Setting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/docs/MemoryApi.md b/docs/MemoryApi.md
new file mode 100644
index 0000000..e0be5f4
--- /dev/null
+++ b/docs/MemoryApi.md
@@ -0,0 +1,733 @@
+# CheshireCatApi.Api.MemoryApi
+
+All URIs are relative to *http://localhost*
+
+| Method | HTTP request | Description |
+|--------|--------------|-------------|
+| [**DeletePointInMemory**](MemoryApi.md#deletepointinmemory) | **DELETE** /memory/collections/{collection_id}/points/{memory_id} | Delete Point In Memory |
+| [**GetCollections**](MemoryApi.md#getcollections) | **GET** /memory/collections | Get Collections |
+| [**GetConversationHistory**](MemoryApi.md#getconversationhistory) | **GET** /memory/conversation_history | Get Conversation History |
+| [**RecallMemoriesFromText**](MemoryApi.md#recallmemoriesfromtext) | **GET** /memory/recall | Recall Memories From Text |
+| [**WipeCollections**](MemoryApi.md#wipecollections) | **DELETE** /memory/collections | Wipe Collections |
+| [**WipeConversationHistory**](MemoryApi.md#wipeconversationhistory) | **DELETE** /memory/conversation_history | Wipe Conversation History |
+| [**WipeMemoryPoints**](MemoryApi.md#wipememorypoints) | **DELETE** /memory/collections/{collection_id}/points | Wipe Memory Points By Metadata |
+| [**WipeSingleCollection**](MemoryApi.md#wipesinglecollection) | **DELETE** /memory/collections/{collection_id} | Wipe Single Collection |
+
+
+# **DeletePointInMemory**
+> List<string> DeletePointInMemory (string collectionId, string memoryId)
+
+Delete Point In Memory
+
+Delete specific point in memory
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class DeletePointInMemoryExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+ var collectionId = "collectionId_example"; // string |
+ var memoryId = "memoryId_example"; // string |
+
+ try
+ {
+ // Delete Point In Memory
+ List result = apiInstance.DeletePointInMemory(collectionId, memoryId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.DeletePointInMemory: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the DeletePointInMemoryWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Delete Point In Memory
+ ApiResponse> response = apiInstance.DeletePointInMemoryWithHttpInfo(collectionId, memoryId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.DeletePointInMemoryWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **collectionId** | **string** | | |
+| **memoryId** | **string** | | |
+
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetCollections**
+> CollectionsList GetCollections ()
+
+Get Collections
+
+Get list of available collections
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetCollectionsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+
+ try
+ {
+ // Get Collections
+ CollectionsList result = apiInstance.GetCollections();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.GetCollections: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetCollectionsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Collections
+ ApiResponse response = apiInstance.GetCollectionsWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.GetCollectionsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**CollectionsList**](CollectionsList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetConversationHistory**
+> ConversationHistory GetConversationHistory ()
+
+Get Conversation History
+
+Get the specified user's conversation history from working memory
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetConversationHistoryExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+
+ try
+ {
+ // Get Conversation History
+ ConversationHistory result = apiInstance.GetConversationHistory();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.GetConversationHistory: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetConversationHistoryWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Conversation History
+ ApiResponse response = apiInstance.GetConversationHistoryWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.GetConversationHistoryWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**ConversationHistory**](ConversationHistory.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **RecallMemoriesFromText**
+> MemoryRecall RecallMemoriesFromText (string text, int? k = null)
+
+Recall Memories From Text
+
+Search k memories similar to given text.
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class RecallMemoriesFromTextExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+ var text = "text_example"; // string | Find memories similar to this text.
+ var k = 100; // int? | How many memories to return. (optional) (default to 100)
+
+ try
+ {
+ // Recall Memories From Text
+ MemoryRecall result = apiInstance.RecallMemoriesFromText(text, k);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.RecallMemoriesFromText: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the RecallMemoriesFromTextWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Recall Memories From Text
+ ApiResponse response = apiInstance.RecallMemoriesFromTextWithHttpInfo(text, k);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.RecallMemoriesFromTextWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **text** | **string** | Find memories similar to this text. | |
+| **k** | **int?** | How many memories to return. | [optional] [default to 100] |
+
+### Return type
+
+[**MemoryRecall**](MemoryRecall.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **WipeCollections**
+> List<string> WipeCollections ()
+
+Wipe Collections
+
+Delete and create all collections
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class WipeCollectionsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+
+ try
+ {
+ // Wipe Collections
+ List result = apiInstance.WipeCollections();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.WipeCollections: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the WipeCollectionsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Wipe Collections
+ ApiResponse> response = apiInstance.WipeCollectionsWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.WipeCollectionsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **WipeConversationHistory**
+> List<string> WipeConversationHistory ()
+
+Wipe Conversation History
+
+Delete the specified user's conversation history from working memory
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class WipeConversationHistoryExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+
+ try
+ {
+ // Wipe Conversation History
+ List result = apiInstance.WipeConversationHistory();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.WipeConversationHistory: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the WipeConversationHistoryWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Wipe Conversation History
+ ApiResponse> response = apiInstance.WipeConversationHistoryWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.WipeConversationHistoryWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **WipeMemoryPoints**
+> List<string> WipeMemoryPoints (string collectionId, Object? body = null)
+
+Wipe Memory Points By Metadata
+
+Delete points in memory by filter
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class WipeMemoryPointsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+ var collectionId = "collectionId_example"; // string |
+ var body = null; // Object? | (optional)
+
+ try
+ {
+ // Wipe Memory Points By Metadata
+ List result = apiInstance.WipeMemoryPoints(collectionId, body);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.WipeMemoryPoints: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the WipeMemoryPointsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Wipe Memory Points By Metadata
+ ApiResponse> response = apiInstance.WipeMemoryPointsWithHttpInfo(collectionId, body);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.WipeMemoryPointsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **collectionId** | **string** | | |
+| **body** | **Object?** | | [optional] |
+
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **WipeSingleCollection**
+> List<string> WipeSingleCollection (string collectionId)
+
+Wipe Single Collection
+
+Delete and recreate a collection
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class WipeSingleCollectionExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new MemoryApi(config);
+ var collectionId = "collectionId_example"; // string |
+
+ try
+ {
+ // Wipe Single Collection
+ List result = apiInstance.WipeSingleCollection(collectionId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling MemoryApi.WipeSingleCollection: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the WipeSingleCollectionWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Wipe Single Collection
+ ApiResponse> response = apiInstance.WipeSingleCollectionWithHttpInfo(collectionId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling MemoryApi.WipeSingleCollectionWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **collectionId** | **string** | | |
+
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/docs/MemoryRecall.md b/docs/MemoryRecall.md
new file mode 100644
index 0000000..fabd382
--- /dev/null
+++ b/docs/MemoryRecall.md
@@ -0,0 +1,11 @@
+# CheshireCatApi.Model.MemoryRecall
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Query** | [**QueryData**](QueryData.md) | |
+**Vectors** | [**VectorsData**](VectorsData.md) | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/MetaData.md b/docs/MetaData.md
new file mode 100644
index 0000000..42be342
--- /dev/null
+++ b/docs/MetaData.md
@@ -0,0 +1,13 @@
+# CheshireCatApi.Model.MetaData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Source** | **string** | |
+**When** | **int** | |
+**Docstring** | **string** | | [optional]
+**Name** | **string** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/Plugin.md b/docs/Plugin.md
new file mode 100644
index 0000000..d8f915a
--- /dev/null
+++ b/docs/Plugin.md
@@ -0,0 +1,23 @@
+# CheshireCatApi.Model.Plugin
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **string** | |
+**Name** | **string** | |
+**Description** | **string** | |
+**AuthorName** | **string** | |
+**AuthorUrl** | **string** | |
+**PluginUrl** | **string** | |
+**Tags** | **string** | |
+**Thumb** | **string** | |
+**VarVersion** | **string** | |
+**Active** | **bool** | | [optional]
+**Url** | **string** | | [optional]
+**Upgrade** | **string** | | [optional]
+**Hooks** | [**List<HooksInner>**](HooksInner.md) | | [optional]
+**Tools** | [**List<ToolsInner>**](ToolsInner.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/PluginsApi.md b/docs/PluginsApi.md
new file mode 100644
index 0000000..acfde24
--- /dev/null
+++ b/docs/PluginsApi.md
@@ -0,0 +1,839 @@
+# CheshireCatApi.Api.PluginsApi
+
+All URIs are relative to *http://localhost*
+
+| Method | HTTP request | Description |
+|--------|--------------|-------------|
+| [**DeletePlugin**](PluginsApi.md#deleteplugin) | **DELETE** /plugins/{plugin_id} | Delete Plugin |
+| [**GetPluginDetails**](PluginsApi.md#getplugindetails) | **GET** /plugins/{plugin_id} | Get Plugin Details |
+| [**GetPluginSettings**](PluginsApi.md#getpluginsettings) | **GET** /plugins/settings/{plugin_id} | Get Plugin Settings |
+| [**GetPluginsSettings**](PluginsApi.md#getpluginssettings) | **GET** /plugins/settings | Get Plugins Settings |
+| [**InstallPlugin**](PluginsApi.md#installplugin) | **POST** /plugins/upload | Install Plugin |
+| [**InstallPluginFromRegistry**](PluginsApi.md#installpluginfromregistry) | **POST** /plugins/upload/registry | Install Plugin From Registry |
+| [**ListAvailablePlugins**](PluginsApi.md#listavailableplugins) | **GET** /plugins | List Available Plugins |
+| [**TogglePlugin**](PluginsApi.md#toggleplugin) | **PUT** /plugins/toggle/{plugin_id} | Toggle Plugin |
+| [**UpsertPluginSettings**](PluginsApi.md#upsertpluginsettings) | **PUT** /plugins/settings/{plugin_id} | Upsert Plugin Settings |
+
+
+# **DeletePlugin**
+> List<string> DeletePlugin (string pluginId)
+
+Delete Plugin
+
+Physically remove a plugin
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class DeletePluginExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var pluginId = "pluginId_example"; // string |
+
+ try
+ {
+ // Delete Plugin
+ List result = apiInstance.DeletePlugin(pluginId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.DeletePlugin: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the DeletePluginWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Delete Plugin
+ ApiResponse> response = apiInstance.DeletePluginWithHttpInfo(pluginId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.DeletePluginWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **pluginId** | **string** | | |
+
+### Return type
+
+**List**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetPluginDetails**
+> Plugin GetPluginDetails (string pluginId)
+
+Get Plugin Details
+
+Returns information on a single plugin
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetPluginDetailsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var pluginId = "pluginId_example"; // string |
+
+ try
+ {
+ // Get Plugin Details
+ Plugin result = apiInstance.GetPluginDetails(pluginId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.GetPluginDetails: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetPluginDetailsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Plugin Details
+ ApiResponse response = apiInstance.GetPluginDetailsWithHttpInfo(pluginId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.GetPluginDetailsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **pluginId** | **string** | | |
+
+### Return type
+
+[**Plugin**](Plugin.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetPluginSettings**
+> GetPluginSettings200Response GetPluginSettings (string pluginId)
+
+Get Plugin Settings
+
+Returns the settings of a specific plugin
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetPluginSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var pluginId = "pluginId_example"; // string |
+
+ try
+ {
+ // Get Plugin Settings
+ GetPluginSettings200Response result = apiInstance.GetPluginSettings(pluginId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.GetPluginSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetPluginSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Plugin Settings
+ ApiResponse response = apiInstance.GetPluginSettingsWithHttpInfo(pluginId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.GetPluginSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **pluginId** | **string** | | |
+
+### Return type
+
+[**GetPluginSettings200Response**](GetPluginSettings200Response.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **GetPluginsSettings**
+> SettingsResponse GetPluginsSettings ()
+
+Get Plugins Settings
+
+Returns the settings of all the plugins
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetPluginsSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+
+ try
+ {
+ // Get Plugins Settings
+ SettingsResponse result = apiInstance.GetPluginsSettings();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.GetPluginsSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetPluginsSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Plugins Settings
+ ApiResponse response = apiInstance.GetPluginsSettingsWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.GetPluginsSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**SettingsResponse**](SettingsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **InstallPlugin**
+> FileResponse InstallPlugin (System.IO.Stream file)
+
+Install Plugin
+
+Install a new plugin from a zip file
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class InstallPluginExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var file = new System.IO.MemoryStream(System.IO.File.ReadAllBytes("/path/to/file.txt")); // System.IO.Stream |
+
+ try
+ {
+ // Install Plugin
+ FileResponse result = apiInstance.InstallPlugin(file);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.InstallPlugin: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the InstallPluginWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Install Plugin
+ ApiResponse response = apiInstance.InstallPluginWithHttpInfo(file);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.InstallPluginWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **file** | **System.IO.Stream****System.IO.Stream** | | |
+
+### Return type
+
+[**FileResponse**](FileResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **InstallPluginFromRegistry**
+> FileResponse InstallPluginFromRegistry (BodyUploadUrl bodyUploadUrl)
+
+Install Plugin From Registry
+
+Install a new plugin from external repository
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class InstallPluginFromRegistryExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var bodyUploadUrl = new BodyUploadUrl(); // BodyUploadUrl |
+
+ try
+ {
+ // Install Plugin From Registry
+ FileResponse result = apiInstance.InstallPluginFromRegistry(bodyUploadUrl);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.InstallPluginFromRegistry: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the InstallPluginFromRegistryWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Install Plugin From Registry
+ ApiResponse response = apiInstance.InstallPluginFromRegistryWithHttpInfo(bodyUploadUrl);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.InstallPluginFromRegistryWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **bodyUploadUrl** | [**BodyUploadUrl**](BodyUploadUrl.md) | | |
+
+### Return type
+
+[**FileResponse**](FileResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **ListAvailablePlugins**
+> PluginsList ListAvailablePlugins (string? query = null)
+
+List Available Plugins
+
+List both installed and registry plugins
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class ListAvailablePluginsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var query = "query_example"; // string? | (optional)
+
+ try
+ {
+ // List Available Plugins
+ PluginsList result = apiInstance.ListAvailablePlugins(query);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.ListAvailablePlugins: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the ListAvailablePluginsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // List Available Plugins
+ ApiResponse response = apiInstance.ListAvailablePluginsWithHttpInfo(query);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.ListAvailablePluginsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **query** | **string?** | | [optional] |
+
+### Return type
+
+[**PluginsList**](PluginsList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **TogglePlugin**
+> ToggleResponse TogglePlugin (string pluginId)
+
+Toggle Plugin
+
+Enable or disable a single plugin
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class TogglePluginExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var pluginId = "pluginId_example"; // string |
+
+ try
+ {
+ // Toggle Plugin
+ ToggleResponse result = apiInstance.TogglePlugin(pluginId);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.TogglePlugin: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the TogglePluginWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Toggle Plugin
+ ApiResponse response = apiInstance.TogglePluginWithHttpInfo(pluginId);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.TogglePluginWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **pluginId** | **string** | | |
+
+### Return type
+
+[**ToggleResponse**](ToggleResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **UpsertPluginSettings**
+> Setting UpsertPluginSettings (string pluginId, Object body)
+
+Upsert Plugin Settings
+
+Updates the settings of a specific plugin
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class UpsertPluginSettingsExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new PluginsApi(config);
+ var pluginId = "pluginId_example"; // string |
+ var body = {"setting_a":"some value","setting_b":"another value"}; // Object |
+
+ try
+ {
+ // Upsert Plugin Settings
+ Setting result = apiInstance.UpsertPluginSettings(pluginId, body);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PluginsApi.UpsertPluginSettings: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UpsertPluginSettingsWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Upsert Plugin Settings
+ ApiResponse response = apiInstance.UpsertPluginSettingsWithHttpInfo(pluginId, body);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PluginsApi.UpsertPluginSettingsWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **pluginId** | **string** | | |
+| **body** | **Object** | | |
+
+### Return type
+
+[**Setting**](Setting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/docs/PluginsList.md b/docs/PluginsList.md
new file mode 100644
index 0000000..81acf1d
--- /dev/null
+++ b/docs/PluginsList.md
@@ -0,0 +1,12 @@
+# CheshireCatApi.Model.PluginsList
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Filters** | [**Filters**](Filters.md) | |
+**Installed** | [**List<Plugin>**](Plugin.md) | |
+**Registry** | [**List<Plugin>**](Plugin.md) | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/QueryData.md b/docs/QueryData.md
new file mode 100644
index 0000000..cf199bd
--- /dev/null
+++ b/docs/QueryData.md
@@ -0,0 +1,11 @@
+# CheshireCatApi.Model.QueryData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Text** | **string** | |
+**Vector** | **List<int>** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/docs/RabbitHoleApi.md b/docs/RabbitHoleApi.md
new file mode 100644
index 0000000..f26a561
--- /dev/null
+++ b/docs/RabbitHoleApi.md
@@ -0,0 +1,373 @@
+# CheshireCatApi.Api.RabbitHoleApi
+
+All URIs are relative to *http://localhost*
+
+| Method | HTTP request | Description |
+|--------|--------------|-------------|
+| [**GetAllowedMimetypes**](RabbitHoleApi.md#getallowedmimetypes) | **GET** /rabbithole/allowed-mimetypes | Get Allowed Mimetypes |
+| [**UploadFile**](RabbitHoleApi.md#uploadfile) | **POST** /rabbithole | Upload File |
+| [**UploadMemory**](RabbitHoleApi.md#uploadmemory) | **POST** /rabbithole/memory | Upload Memory |
+| [**UploadUrl**](RabbitHoleApi.md#uploadurl) | **POST** /rabbithole/web | Upload URL |
+
+
+# **GetAllowedMimetypes**
+> ResponseGetAllowedMimetypes GetAllowedMimetypes ()
+
+Get Allowed Mimetypes
+
+Retrieve the allowed mimetypes that can be ingested by the Rabbit Hole
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class GetAllowedMimetypesExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new RabbitHoleApi(config);
+
+ try
+ {
+ // Get Allowed Mimetypes
+ ResponseGetAllowedMimetypes result = apiInstance.GetAllowedMimetypes();
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling RabbitHoleApi.GetAllowedMimetypes: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the GetAllowedMimetypesWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Get Allowed Mimetypes
+ ApiResponse response = apiInstance.GetAllowedMimetypesWithHttpInfo();
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling RabbitHoleApi.GetAllowedMimetypesWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+### Return type
+
+[**ResponseGetAllowedMimetypes**](ResponseGetAllowedMimetypes.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **UploadFile**
+> FileResponse UploadFile (System.IO.Stream file)
+
+Upload File
+
+Upload a file containing text (.txt, .md, .pdf, etc.). File content will be extracted and segmented into chunks. Chunks will be then vectorized and stored into documents memory.
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class UploadFileExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new RabbitHoleApi(config);
+ var file = new System.IO.MemoryStream(System.IO.File.ReadAllBytes("/path/to/file.txt")); // System.IO.Stream |
+
+ try
+ {
+ // Upload File
+ FileResponse result = apiInstance.UploadFile(file);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling RabbitHoleApi.UploadFile: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UploadFileWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Upload File
+ ApiResponse response = apiInstance.UploadFileWithHttpInfo(file);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling RabbitHoleApi.UploadFileWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **file** | **System.IO.Stream****System.IO.Stream** | | |
+
+### Return type
+
+[**FileResponse**](FileResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successful Response | - |
+| **422** | Validation Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+
+# **UploadMemory**
+> Object UploadMemory (System.IO.Stream file)
+
+Upload Memory
+
+Upload a memory json file to the cat memory
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using CheshireCatApi.Api;
+using CheshireCatApi.Client;
+using CheshireCatApi.Model;
+
+namespace Example
+{
+ public class UploadMemoryExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "http://localhost";
+ var apiInstance = new RabbitHoleApi(config);
+ var file = new System.IO.MemoryStream(System.IO.File.ReadAllBytes("/path/to/file.txt")); // System.IO.Stream |
+
+ try
+ {
+ // Upload Memory
+ Object result = apiInstance.UploadMemory(file);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling RabbitHoleApi.UploadMemory: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UploadMemoryWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Upload Memory
+ ApiResponse