Skip to content

Jev directory

TypeSafe (.NET SDK)

Community .NET SDK for the System One API: typed noul, choice, and score questions with structured, confidence-scored answers.
Stars
12
Language
C#
License
MIT
Reading time
3 min
Published by
Community
Last verified
Sep 2026

About this project

Ask typed, answerable questions about any text or JSON state, and get structured, probability-backed answers back: yes/no probabilities, a chosen option out of a set you define, or a position on a rubric you define. This is a community SDK. It is an independent client for the TypeSafe AI System One HTTP API, written and maintained by the community. Links below point at the repository, because NuGet renders this file as a standalone page where relative paths do not resolve.

Quoted from the project's README. Read the full README.

Highlights

  • Install with `dotnet add package TypeSafeAI.Sdk`; it targets net8.0 and net10.0 and depends only on Microsoft.Extensions.Logging.Abstractions.
  • ChoiceQuestion takes up to 255 options, and ScoreQuestion places state on an ordered rubric of 2 to 10 levels.
  • NoulAnswer exposes Probability only — no confidence member — while Choice and Score carry Confidence plus full distributions.
  • SystemOneAsync has five overloads, including trim/AOT-safe TState with JsonTypeInfo and a reflection-based TState.
  • Unknown answer kinds and unmodelled fields survive via UnknownAnswer, RawQuestion, and RawJson instead of failing the payload.

Quickstart

csharp
using TypeSafeAI;

var client = new TypeSafeClient(); // reads TYPESAFE_API_KEY
var result = await client.SystemOneAsync(
    "My card was charged twice, please fix this ASAP.",
    [
        new NoulQuestion("is_urgent", "Does this convey urgency?"),
        new ChoiceQuestion("department", "Which team should handle this?", ["billing", "technical", "sales"]),
        new ScoreQuestion("frustration", "How frustrated is the customer?", ["Calm", "Frustrated", "Very angry"]),
    ]);
Console.WriteLine(result.Noul("is_urgent").Probability);
Console.WriteLine(result.Choice("department").Label);
Console.WriteLine(result.Score("frustration").Score);

Watch out

It is a community SDK with no TypeSafe AI affiliation, and NoulAnswer has no confidence member, so a noul's probability is the only signal.

Questions about this entry

Short answers drawn from the linked project or page.

From the Jev guides

Original write-ups on what this entry is for.

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai