Inspiration
There aren't any official .NET clients for Modzy as yet. .NET is one of the most popular enterprise technologies today and increasingly .NET developers wish to easily incorporate machine learning into both their traditional desktop and web applications, as well as into Jupyter notebooks running C# and F# kernels. With .NET 6 and C# 10 released I wanted to create a Modzy interface for .NET developers too that could take advantage of some best practices and the latest language and platform features. At the same time I noticed some missing features with the official Modzy CLI, the main one being the inability to quickly submit model jobs with data and view the results which is an essential function when testing Modzy models. As a developer who uses the command-line extensively I wanted to create a modern developer-focused CLI that provided the fastest way to perform model inference with the Modzy API as a complement to the admin-focused official CLI.
What it does
Modzy.NET is an unofficial .NET SDK for Modzy. It tries to offer the same features as the official Python SDK in a statically-typed library designed to be used by .NET developers. Modzy.NET also features a developer-oriented CLI which in addition to common admin operations allows you to run model inference on file and text data from the command line. The Modzy.NET CLI is a modern Unicode-based CLI with status bar, tree and progress widgets that is the fastest and easiest way for .NET developers to work with Modzy models and inference without requiring installation of Go or Python. The Modzy.NET library can be installed from NuGet into traditional desktop and web .NET applications as well as Jupyter notebooks using the .NET interactive C# and F# kernels.
How we built it
I studied the official Python SDK to understand the Modzy REST API and created models for the incoming and outgoing JSON data. I used .NET asynchronous I/O throughout the library and used multithreading for performance where it made sense like fetching a list of all models. For the CLI I used libraries like SpecteConsole to create a sophisticated console user interface that doesn't sacrifice usability compared to a web interface.
Accomplishments that we're proud of
I was able to learn a lot about the Modzy API in a short timr.
Log in or sign up for Devpost to join the conversation.