Skip to content

ModerationAPI

Nuget package dotnet License: MIT Discord

Features 🔥

  • Fully generated C# SDK based on official ModerationAPI 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

Usage

1
2
3
using ModerationAPI;

using var client = new ModerationAPIClient(apiKey);

Generate

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
using var client = new ModerationAPIClient(apiKey);

// Create a text moderation request.
OneOf<NewModerateModerateRequestContentContentLeafText, NewModerateModerateRequestContentContentLeafImage, NewModerateModerateRequestContentContentLeafVideo, NewModerateModerateRequestContentContentLeafAudio>?
    textContent = new NewModerateModerateRequestContentContentLeafText("Hello, this is a friendly message.");

var response = await client.NewModerateModerateAsync(
    request: new NewModerateModerateRequest
    {
        Content = textContent,
        DoNotStore = true,
    });

// Check the evaluation result.

// The evaluation includes whether the content was flagged, the flag probability,
// and a severity score.
Console.WriteLine($"Flagged: {response.Evaluation.Flagged}");
Console.WriteLine($"Flag Probability: {response.Evaluation.FlagProbability}");
Console.WriteLine($"Severity Score: {response.Evaluation.SeverityScore}");
Console.WriteLine($"Recommended Action: {response.Recommendation.Action}");

ListActions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
using var client = new ModerationAPIClient(apiKey);

var actions = await client.Actions.ActionsListAsync();

// Each action has an ID, name, and configuration.

foreach (var action in actions)
{
    Console.WriteLine($"Action: {action.Name} (ID: {action.Id})");
}

MeaiTools

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
using var client = new ModerationAPIClient(apiKey);

// Create tools for text moderation, image moderation, queue stats, and listing actions.
var moderateTextTool = client.AsModerateTextTool();
var moderateImageTool = client.AsModerateImageTool();
var getQueueStatsTool = client.AsGetQueueStatsTool();
var listActionsTool = client.AsListActionsTool();

// These tools can be passed to any IChatClient that supports function calling.
var tools = new[] { moderateTextTool, moderateImageTool, getQueueStatsTool, listActionsTool };

Support

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

Acknowledgments

JetBrains logo

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