Sdílet prostřednictvím


Moderování bezpečnosti obsahu pomocí prostředí Windows Copilot Runtime

Důležitý

k dispozici v nejnovějším experimentálním kanálu vydání sady Windows App SDK.

Experimentální kanál sady Windows App SDK zahrnuje rozhraní API a funkce v počátečních fázích vývoje. Všechna rozhraní API v experimentálním kanálu podléhají rozsáhlým revizem a zásadním změnám a je možné je kdykoli odebrat z následujících verzí. Experimentální funkce nejsou podporovány pro použití v produkčních prostředích a aplikacích, které je používají, nelze publikovat do Microsoft Storu.

Rozhraní API Windows Copilot Runtime, například Phi Silica API nebo Imaging API, implementují moderování obsahu textu za účelem klasifikace a filtrování potenciálně škodlivého obsahu, aby nebyl zobrazován či vracen těmito generativními modely. Rozhraní API vyfiltruje obsah klasifikovaný jako potenciálně škodlivý ve výchozím nastavení, ale vývojáři můžou nakonfigurovat různé úrovně citlivosti.

Požadavky

Moderování obsahu textu

Moderování obsahu můžete upravit na vstupní příkazovém řádku na generující model a výstup vygenerovaný AI. Moderování obsahu rozhraní API prostředí Windows Copilot Runtime je navržené a implementované podobně jako rozhraní API pro zabezpečení obsahu Azure AI.

Kategorie škod

Kategorie škod odpovídají definicům používaným v Zabezpečení obsahu Azure AI a najdete je v pokynech k bezpečnosti obsahu AI Azure. Kategorie škod zahrnují: nenávist a nestrannost, sexuální obsah, násilí nebo sebepoškozování a může obsahovat více popisků na stejném obsahu.

Tyto čtyři kategorie klasifikující potenciálně škodlivý obsah umožňují upravit filtry citlivosti.

Kategorie Popis Název rozhraní API
Nenávist Nenávist a nerovnost poškozují jakýkoli obsah, který útočí nebo používá diskriminační jazyk vůči osobě nebo identitní skupině na základě určitých odlišujících rysů těchto skupin. HateContentSeverity
Sexuální Sexuální popisuje jazyk související s anatomickými orgány a pohlavními orgány, romantickými vztahy a sexuálními činy, zobrazené v erotických či laskavých termínech, včetně těch, které jsou znázorněné jako útok nebo násilný sexuální čin proti vůli člověka. SexualContentSeverity
Násilí Násilí popisuje výrazy týkající se fyzických činů, které mají za cíl někomu nebo něčemu ublížit, poranit, poškodit nebo zabít; popisuje střelné zbraně, chladné zbraně a související entity. ViolentContentSeverity
Sebepoškozování Sebepoškozování popisuje jazyk související s fyzickými akcemi, jejichž účelem je úmyslně ublížit, poškodit, poškodit tělo nebo zabít sebe. SelfHarmContentSeverity

Úrovně závažnosti

Ve výchozím nastavení všechna volání generačních rozhraní API modulu Windows Copilot Runtime používají moderování obsahu, ale úroveň závažnosti je možné upravit.

  • high: Není k dispozici. Obsah klasifikovaný jako úroveň závažnosti 3+ (vysoké riziko potenciálního poškození) je v současné době blokován návratem generativního AI modelu.

  • medium: Výchozí úroveň závažnosti je nastavená na medium. Vrátí se obsah klasifikovaný jako úroveň závažnosti 0 až 3.

  • low: Snižuje riziko dalšího vrácení potenciálně škodlivého obsahu. Vrátí se pouze obsah klasifikovaný jako úroveň závažnosti 0 až 1.

Další informace o úrovních závažnosti najdete v tématu kategorie zabezpečení obsahu Azure AI.

Ukázka kódu moderování textového obsahu

Pokud chcete nakonfigurovat filtry závažnosti moderování textu vložené v prostředí Windows Copilot Runtime, budete muset předat strukturu ContentFilterOptions jako parametr rozhraní API používanému pro generování odpovědí, například rozhraní API Phi Silica API.

Následující ukázka kódu ukazuje přidání filtrů závažnosti moderování obsahu textu do LanguageModelMicrosoft Windows Generative AI:

var languageModelOptions = new LanguageModelOptions {
    Temp =  0.9f,
    Top_p = 0.9f, 
    Top_k = 40
};

var promptMinSeverityLevelToBlock = new TextContentFilterSeverity {
    HateContentSeverity = SeverityLevel.Low,
    SexualContentSeverity = SeverityLevel.Low,
    ViolentContentSeverity = SeverityLevel.Medium,
    SelfHarmContentSeverity = SeverityLevel.Low
};

var responseMinSeverityLevelToBlock = new TextContentFilterSeverity {
    HateContentSeverity = SeverityLevel.Low,
    SexualContentSeverity = SeverityLevel.Low,
    ViolentContentSeverity = SeverityLevel.Low,
    SelfHarmContentSeverity = SeverityLevel.Medium
};

var contentFilterOptions = new ContentFilterOptions {
    PromptMinSeverityLevelToBlock = promptMinSeverityLevelToBlock,
    ResponseMinSeverityLevelToBlock = responseMinSeverityLevelToBlock
};

IProgress<string> progress;
var languageModelResponseWithProgress = model.GenerateResponseWithProgressAsync(languageModelOptions, prompt, contentFilterOptions);
languageModelRepsonseWithProgress.Progress = (_, generationProgress) =>
{
    progress.Report(generationProgress);
};
string response = (await languageModelResponseWithProgress).Response;