Megosztás a következőn keresztül:


Tartalombiztonsági moderálás a Windows Copilot Futtatókörnyezettel

Fontos

Elérhető a Windows App SDK legújabb kísérleti csatornáján kiadásában.

A Windows App SDK kísérleti csatornája api-kat és funkciókat tartalmaz a fejlesztés korai szakaszában. A kísérleti csatornán található összes API-ra kiterjedt változatok és kompatibilitástörő változások vonatkoznak, és bármikor eltávolíthatók a későbbi kiadásokból. A kísérleti funkciók nem használhatók éles környezetben, és az őket használó alkalmazások nem tehetők közzé a Microsoft Store-ban.

A Windows Copilot Runtime API-k, például a Phi Silica API vagy Imaging API, a szöveges tartalommoderálást implementálva osztályozzák és kiszűrik a potenciálisan káros tartalmakat, amelyeket ezek a generatív modellek kérnek vagy adnak vissza. Az API alapértelmezés szerint kiszűri a potenciálisan károsnak minősített tartalmakat, a fejlesztők azonban különböző bizalmassági szinteket konfigurálhatnak.

Előfeltételek

Szöveges tartalommoderálás

A bemeneti kérdés tartalommoderálását módosíthatja a generatív modellre és az AI által generált kimenetre. A Windows Copilot Runtime API-k tartalommoderálását az Azure AI Content Safety által biztosítotthoz hasonlóan tervezték és implementálták.

Kárkategóriák

A kárkategóriák összhangban vannak az Azure AI Content Safetyben használt definíciókkal, és az Azure AI Content Safety útmutatójábantalálhatók. A kárkategóriák a következők: gyűlölet és méltányosság, szexuális tartalom, erőszak vagy önkárosítás, és több címkét is tartalmazhatnak ugyanazon a tartalomon.

Ez a négy, potenciálisan káros tartalmat osztályozó kategória lehetővé teszi a bizalmassági szűrők módosítását.

Kategória Leírás API név
Gyűlölet A gyűlölet és a méltányosság sérelmei minden olyan tartalomra vonatkoznak, amely a csoportok bizonyos megkülönböztető tulajdonságain alapuló személyre vagy identitáscsoportra való hivatkozással támad vagy használ diszkriminatív nyelvet. HateContentSeverity
Szexuális A szexuális leírások az anatómiai szervekhez és nemi szervekhez, romantikus kapcsolatokhoz és szexuális aktusokhoz, erotikus vagy szeretetteljes kifejezésekben ábrázolt cselekedetekhez kapcsolódnak, beleértve azokat is, amelyeket testi sértésként vagy akarata elleni erőszakos erőszakos cselekedetként ábrázolnak. SexualContentSeverity
Erőszak Az erőszak azt a nyelvet írja le, amely olyan fizikai műveletekhez kapcsolódik, amelyek célja, hogy fájdalmat, sérülést, kárt okoznak vagy megöljenek valakit vagy valamit; fegyvereket, fegyvereket és kapcsolódó entitásokat ír le. ViolentContentSeverity
Önkárosítás Az önkárosítás olyan kifejezéseket ír le, amelyek fizikai cselekedetekre utalnak, amelyek célja, hogy valaki szándékosan kárt tegyen saját testében vagy megölje magát. SelfHarmContentSeverity

Súlyossági szintek

Alapértelmezés szerint a Windows Copilot Runtime generative API-kba irányuló összes hívás tartalommoderálást használ, de a súlyossági szint módosítható.

  • high: Nem érhető el. A generatív AI-modell jelenleg letiltja a 3+ súlyossági szintnek (magas kockázatú potenciális károsodás) besorolt tartalmakat.

  • medium: Az alapértelmezett súlyossági szint medium. A 0–3. súlyosságúként besorolt tartalmakat a rendszer visszaadja.

  • low: Csökkenti a potenciálisan káros tartalom további visszaadásának kockázatát. Csak a 0–1. súlyosságúként besorolt tartalmak lesznek visszaadva.

A súlyossági szintekről további információt Azure AI Tartalombiztonsági ártalmak kategóriáicímű témakörben talál.

Szöveges tartalommoderálási kódminta

A Windows Copilot Runtime-ba beágyazott szöveges tartalommoderálás súlyossági szűrőinek konfigurálásához paraméterként át kell adnia a ContentFilterOptions szerkezetet a válaszgeneráláshoz használt API-nak, például a Phi Silica API.

Az alábbi kódminta bemutatja, hogyan lehet a szöveges tartalom moderálási súlyossági szűrőket hozzáadni a Microsoft Windows Generative AI LanguageModel-hoz.

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;