VulcanAI.Discord 1.0.0

dotnet add package VulcanAI.Discord --version 1.0.0
                    
NuGet\Install-Package VulcanAI.Discord -Version 1.0.0
                    
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="VulcanAI.Discord" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VulcanAI.Discord" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="VulcanAI.Discord" />
                    
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 VulcanAI.Discord --version 1.0.0
                    
#r "nuget: VulcanAI.Discord, 1.0.0"
                    
#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 VulcanAI.Discord@1.0.0
                    
#: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=VulcanAI.Discord&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=VulcanAI.Discord&version=1.0.0
                    
Install as a Cake Tool

VulcanAI

VulcanAI is a powerful, modular toolkit designed for building AI-powered applications. Whether you're creating data analyzers, chatbots, or complex AI agents, VulcanAI provides the tools and framework you need to bring your AI applications to life.

Features

  • Modular Architecture: Build applications by combining different AI components
  • Versatile Applications: Support for various AI use cases including:
    • Data analysis and processing
    • Chatbot development
    • Complex AI agent systems
  • Extensible Framework: Easy to extend and customize for specific needs

Project Structure

  • VulcanAI/: Core library containing the main framework components, interface definitions, top-level logic, and some basic implementations. Released builds can be found on NuGet: VulcanAI
  • VulcanAI.Discord/: Contains all Discord-related functionality and integration for building AI-powered Discord bots and applications. Released builds can be found on NuGet: VulcanAI.Discord
  • VulcanAI.Obsidian/: Contains all Obsidian-related functionality. This package has not been published yet because it depends on ObsidianDB, which is not yet available on NuGet.
  • VulcanAI.Demo/: Example applications demonstrating various use cases

Submodules

This project uses Git submodules for external dependencies. After cloning the repository, you'll need to initialize and update the submodules:

# Initialize and update all submodules (including nested ones)
git submodule update --init --recursive

# Update all submodules to their latest commits
git submodule update --recursive --remote

# Pull latest changes for all submodules
git submodule foreach git pull

Current submodules:

  • ObsidianDB: A powerful C# library for programmatically managing Obsidian vaults
  • HyperVectorDB: A local vector database built in C# that supports various distance/similarity measures
Submodule Management

When working with submodules, here are some common commands you might need:

# Add a new submodule
git submodule add <repository-url> <path>

# Remove a submodule
git submodule deinit <path>
git rm <path>
rm -rf .git/modules/<path>

# Update a specific submodule
cd <submodule-path>
git pull
cd ..
git add <submodule-path>
git commit -m "Update submodule <name>"

Note: Some submodules may have their own nested submodules. The --recursive flag ensures that all nested submodules are properly initialized and updated.

Usage

Using VulcanAI (Core)

Install the package:

dotnet add package VulcanAI

Create a configuration file agent-config.json:

{
    "SystemPrompt": "You are VulcanAI, a helpful digital assistant. Your primary function is to demonstrate the features and capability of the VulcanAI library. You are friendly, helpful, and informative. You are also a bit sarcastic and witty.",
    "Name": "VulcanAI"
}

Minimal example of running a console agent:

using Microsoft.Extensions.Logging;
using VulcanAI.Agent;
using VulcanAI.LLM;
using VulcanAI.Connectors;

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder.SetMinimumLevel(LogLevel.Error).AddConsole();
});
var logger = loggerFactory.CreateLogger<Program>();
var llmLogger = loggerFactory.CreateLogger<LocalLLMClient>();
var httpClient = new HttpClient();
var llmClient = new LocalLLMClient(new HttpClientWrapper(httpClient), "local-model", "http://localhost:1234", llmLogger, useOpenAIFormat: false);
llmClient.MaxPromptLength = 6000;
var agentConfig = new AgentConfig { SystemPrompt = "You are VulcanAI, a helpful digital assistant.", Name = "VulcanAI" };
var consoleLogger = loggerFactory.CreateLogger<ConsoleConnector>();
var messageInterface = new ConsoleConnector(consoleLogger);
var agentLogger = loggerFactory.CreateLogger<Chatbot>();
var agent = new Chatbot(llmClient, agentLogger, agentConfig, messageInterface);
await messageInterface.StartAsync();

Using VulcanAI.Discord

Install the package:

dotnet add package VulcanAI.Discord

Add your Discord configuration to secrets.json:

{
    "Discord": {
        "Token": "your_discord_bot_token",
        "ChannelId": 123456789012345678
    }
}

Minimal example of running a Discord bot:

using Microsoft.Extensions.Logging;
using VulcanAI.Agent;
using VulcanAI.LLM;
using VulcanAI.Connectors;
using Discord.WebSocket;

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder.SetMinimumLevel(LogLevel.Debug).AddConsole();
});
var logger = loggerFactory.CreateLogger<Program>();
var llmLogger = loggerFactory.CreateLogger<LocalLLMClient>();
var httpClient = new HttpClient();
var llmClient = new LocalLLMClient(new HttpClientWrapper(httpClient), "local-model", "http://localhost:1234", llmLogger, useOpenAIFormat: false);
llmClient.MaxPromptLength = 6000;
var agentConfig = new AgentConfig { SystemPrompt = "You are VulcanAI, a helpful digital assistant.", Name = "VulcanAI" };
var discordLogger = loggerFactory.CreateLogger<DiscordConnector>();
var socketConfig = new DiscordSocketConfig { GatewayIntents = GatewayIntents.All };
var discordClient = new DiscordSocketClient(socketConfig);
var discordConfig = new DiscordConfig { Token = "your_discord_bot_token", ChannelId = 123456789012345678 };
var messageInterface = new DiscordConnector(discordClient, discordLogger, discordConfig.Token, discordConfig.ChannelId);
var agentLogger = loggerFactory.CreateLogger<Chatbot>();
var agent = new Chatbot(llmClient, agentLogger, agentConfig, messageInterface);
await messageInterface.StartAsync();

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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
1.0.0 284 6/11/2025