ChatAIze.PluginApi 0.11.12

dotnet add package ChatAIze.PluginApi --version 0.11.12
                    
NuGet\Install-Package ChatAIze.PluginApi -Version 0.11.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ChatAIze.PluginApi" Version="0.11.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ChatAIze.PluginApi" Version="0.11.12" />
                    
Directory.Packages.props
<PackageReference Include="ChatAIze.PluginApi" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ChatAIze.PluginApi --version 0.11.12
                    
#r "nuget: ChatAIze.PluginApi, 0.11.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ChatAIze.PluginApi@0.11.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ChatAIze.PluginApi&version=0.11.12
                    
Install as a Cake Addin
#tool nuget:?package=ChatAIze.PluginApi&version=0.11.12
                    
Install as a Cake Tool

Plugin API

Official library for building ChatAIze chatbot add-ons.

First Steps

  1. Install the latest version of the .NET 9.0 SDK - https://dotnet.microsoft.com/en-us/download/dotnet/9.0.
  2. Create a new C# Class Library project.
  3. Install ChatAIze.PluginApi NuGet package.
  4. Create a class that implements the IPluginLoader interface from the ChatAIze.Abstractions.Plugins namespace. Alternatively, you can implement the IAsyncPluginLoader interface for asynchronous loading.
  5. In the Load method (or LoadAsync), construct and return a new instance of the ChatbotPlugin class with the specified Id and Title.
  6. Add settings, functions, conditions, and actions to your plugin: plugin.AddStringSetting() , plugin.AddFunction(), plugin.AddCondition(), plugin.AddAction(), etc.
  7. Build the project in Release configuration to generate a DLL file.
  8. Upload the generated DLL file from the chatbot dashboard: Integrations > Manage Plugins > Upload.
  9. The chatbot will automatically load the plugin, and its functionality should be available immediately.
  10. Verify that the plugin is listed under: Integrations > Manage Plugins.

Installation

.NET CLI

dotnet add package ChatAIze.PluginAPI

Package Manager Console

Install-Package ChatAIze.PluginAPI

Plugin Base

The Load and LoadAsync methods are called automatically when the chatbot server starts or when the plugin is uploaded via the dashboard.

Synchronous Loader

using ChatAIze.Abstractions.Plugins;
using ChatAIze.PluginApi;

namespace ExamplePlugin;

public class ExamplePluginLoader : IPluginLoader
{
    public IChatbotPlugin Load()
    {
        var plugin = new ChatbotPlugin
        {
            Id = "com.example.plugin",
            Title = "Example Plugin"
        };

        return plugin;
    }
}

Asynchronous Loader

using ChatAIze.Abstractions.Plugins;
using ChatAIze.PluginApi;

namespace ExamplePlugin;

public class ExamplePluginLoader : IAsyncPluginLoader
{
    public async ValueTask<IChatbotPlugin> LoadAsync(CancellationToken cancellationToken = default)
    {
        await Task.Delay(1000, cancellationToken); // Simulate some async work

        var plugin = new ChatbotPlugin
        {
            Id = "com.example.plugin",
            Title = "Example Plugin"
        };

        return plugin;
    }
}

Functions

All functions added to the plugin are discoverable by the chatbot and can be called on-demand during conversations. Start by writing a normal C# method, then register it with the plugin using plugin.AddFunction().

  • Function names must be unique across all loaded plugins.
  • Asynchronous functions and cancellation tokens are supported.
  • It is recommended to use simple parameter and return types (string, int, bool, etc.) or custom classes with primitive properties.
  • Returned objects are serialized to JSON and visible to the chatbot.
  • You can optionally add IFunctionContext parameter to access conversation details, user info, plugin settings, and more.
using ChatAIze.Abstractions.Chat;
using ChatAIze.Abstractions.Plugins;
using ChatAIze.PluginApi;

namespace ExamplePlugin;

public class ExamplePluginLoader : IPluginLoader
{
    private readonly HttpClient _httpClient = new();

    public IChatbotPlugin Load()
    {
        var plugin = new ChatbotPlugin
        {
            Id = "exampleplugin",
            Title = "Example Plugin",
        };

        plugin.AddFunction(GetDogPhoto);
        return plugin;
    }

    public async Task<string> GetDogPhoto(IFunctionContext context, CancellationToken cancellationToken = default)
    {
        if (context.User.Email is null || !context.User.Email.EndsWith("@example.com", StringComparison.OrdinalIgnoreCase))
        {
            return "You cannot use this function.";
        }

        if (context.IsPreview || context.IsDebugModeOn || context.IsCommunicationSandboxed)
        {
            return "Testing...";
        }

        var response = await _httpClient.GetStringAsync("https://dog.ceo/api/breeds/image/random", cancellationToken);
        return response;
    }
}
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.11.12 217 11/14/2025
0.11.11 307 9/18/2025
0.11.10 239 4/21/2025
0.11.9 200 4/21/2025
0.11.8 214 3/11/2025
0.11.7 149 2/8/2025
0.11.6 123 1/27/2025
0.11.5 146 1/20/2025
0.11.4 130 1/20/2025
0.11.3 132 1/20/2025
0.11.2 147 1/19/2025
0.11.1 142 1/10/2025
0.11.0 143 1/10/2025
0.10.12 140 12/18/2024
0.10.11 137 12/9/2024
0.10.10 139 12/6/2024
0.10.9 133 11/28/2024
0.10.8 145 11/26/2024
0.10.7 144 11/23/2024
0.10.6 147 11/22/2024
0.10.5 143 11/21/2024
0.10.4 148 11/20/2024
0.10.3 144 11/19/2024
0.10.2 151 11/17/2024
0.10.1 136 11/17/2024
0.10.0 137 11/16/2024
0.9.3 142 11/16/2024
0.9.2 156 11/14/2024
0.9.1 150 11/14/2024
0.9.0 130 11/14/2024
0.8.5 146 11/13/2024
0.8.4 135 11/13/2024
0.8.3 147 11/12/2024
0.8.2 140 11/12/2024
0.8.1 147 11/11/2024
0.8.0 159 11/11/2024
0.7.0 141 11/10/2024
0.6.3 151 11/10/2024
0.6.2 144 11/10/2024
0.6.1 153 11/10/2024
0.6.0 147 11/10/2024
0.5.5 150 11/9/2024
0.5.4 152 11/9/2024
0.5.3 149 11/9/2024
0.5.2 131 11/8/2024
0.5.1 140 11/8/2024
0.5.0 146 11/8/2024
0.4.7 141 11/7/2024
0.4.6 135 11/7/2024
0.4.5 160 11/7/2024
0.4.4 145 11/6/2024
0.4.3 133 11/4/2024
0.4.2 136 11/4/2024
0.4.1 144 11/4/2024
0.4.0 141 11/3/2024
0.3.2 143 11/2/2024
0.3.1 136 11/2/2024
0.3.0 138 11/1/2024
0.2.0 151 10/27/2024
0.1.0 154 10/26/2024