Skip to content

LabelStudio

Nuget package dotnet License: MIT Discord

Features 🔥

  • Fully generated C# SDK based on official Label Studio OpenAPI specification using AutoSDK
  • Same day update to support new features
  • Updated and supported automatically if there are no breaking changes
  • All modern .NET features - nullability, trimming, NativeAOT, etc.
  • Support .Net Framework/.Net Standard 2.0
  • MEAI (Microsoft.Extensions.AI) AIFunction tools for use with any IChatClient

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
using LabelStudio;

// Label Studio uses Token-based auth
using var client = new LabelStudioClient(apiKey);

// List projects
var projects = await client.Projects2.ListAsync();

// Get project details
var project = await client.Projects2.GetAsync(id: 1);

// List tasks in a project
var tasks = await client.Tasks2.List2Async(project: 1);

// Create an annotation
var annotation = await client.Annotations2.CreateAsync(
    id: 1, // task ID
    result: new List<object>());

MEAI Tools

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
using LabelStudio;
using Microsoft.Extensions.AI;

using var client = new LabelStudioClient(apiKey);

// Create AIFunction tools for use with any IChatClient
var tools = new AITool[]
{
    client.AsListProjectsTool(),
    client.AsGetProjectTool(),
    client.AsListTasksTool(),
    client.AsCreateAnnotationTool(),
};

MEAI Tools

Shows how to use Label Studio operations as AIFunction tools with any IChatClient.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
var client = Client;

// Create AIFunction tools for use with any IChatClient.
var listProjectsTool = client.AsListProjectsTool();
var getProjectTool = client.AsGetProjectTool();
var listTasksTool = client.AsListTasksTool();
var createAnnotationTool = client.AsCreateAnnotationTool();

// All tools should be valid AIFunction instances.

// Tools can be added to ChatOptions for use with any IChatClient.
var options = new ChatOptions
{
    Tools =
    [
        listProjectsTool,
        getProjectTool,
        listTasksTool,
        createAnnotationTool,
    ],
};

Support

Priority place for bugs: https://github.com/tryAGI/LabelStudio/issues
Priority place for ideas and general questions: https://github.com/tryAGI/LabelStudio/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Acknowledgments

JetBrains logo

This project is supported by JetBrains through the Open Source Support Program.