vomark 1.0.0

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

vomark

A markov-chain based random sentence generator library. Create a "brain" that you can feed a vocabulary and reproduce sentences! NOTE: This is NOT an LLM, and does not use any other data than what you specifically answer. It literally only uses the words you give it and reproduces patterns given a vocabulary.

Features

  • Each entity comprises of a VomBrain, VomContext, and VomSettings.
    • A VomBrain maps a label to a weighted graph representing an associated vocabulary.
    • A VomContext can be used to represent style and emotion, notably through capitalization and punctuation.
    • VomSettings are used to manage a max word-count per sentence, as well as settings for YouTube integration.
  • Entities can be fed data from raw strings, .txt files, or YouTube videos/playlists.

Installation

Vomark can be installed as a NuGet package: Install-Package vomark YouTube integration features are dependent on YoutubeDLSharp, and conversely require yt-dlp and ffmpeg. Both packages can be installed within the library by running the following:

bool success = await YTIntegration.SetupPackages(path);

Usage

Creating a fresh VomBrain:

VomBrain vb = new();

Adding a graph to a VomBrain:

string ex = "This is an example string."
vb.AddNewGraph("example", ex);
// Existing graphs can append data as such:
string ex2 = "This is a second string."
vb.AddThoughtRaw("example", ex2);

When using .txt files, instead use AddThoughtTxt() and use the path instead of the data.

Returning a sentence from the VomBrain:

Console.WriteLine(vb.FormThought("example"));

When forming sentences from a VomBrain, it uses the maximum word length from the associated settings object as well as capitalization/punctuation from the context object.

Changing the settings and context:

vb.Settings = new(
	ytDl: "../ytlibs",
	ytOut = "../vidOut",
	subLang = "en",
	maxLen = 16
);

VomContext Angry = new(
	"angry", Punctuation.TRIPEXC, Capitalization.ALLCAPS
);
vb.Context = Angry;

YouTube Integration

If YoutubeDLSharp and all dependencies are installed, then you can use YouTube videos and playlists as data sources for VomBrains. When using YT features, ensure that your VomBrain settings are applied correctly. This ensures that your ytDl points to the folder containing yt-dlp.exe and ffmpeg.exe.

A Quick Warning on Subtitles

The vomark library requires that a YouTube video have at least one SRT file in the given language in order to be read. Many automated subtitles will work fine with vomark, but custom-made subtitles are not forced to follow any particular standard. All text between brackets and parentheses are removed, so sentence structures may become awkward. YouTube automatically censors certain language, so it can create gaps in speech and unexpected connections between words.

Adding a YouTube video to a graph:

await vb.AddThoughtYt("example", "example_url_");
// Adding a playlist follows the same format, but uses
// await vb.AddThoughtPlaylistYt("example", "example_url_");

Tests

Testing is implemented locally in a separate project using xUnit.

License

This project is licensed under the BSD-3 Claude License

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  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.1 178 8/27/2025
1.0.0 135 8/18/2025