Sdílet prostřednictvím


Bezpečnost obsahu Azure AI klientské knihovny pro Python – verze 1.0.0

Bezpečnost obsahu Azure AI detekuje v aplikacích a službách škodlivý obsah generovaný uživateli a AI. Zabezpečení obsahu zahrnuje rozhraní API pro text a obrázky, která umožňují detekovat škodlivý materiál:

  • Rozhraní API pro analýzu textu: Vyhledá v textu sexuální obsah, násilí, nenávist a sebepoškozování s více úrovněmi závažnosti.
  • Rozhraní API pro analýzu obrázků: Skenuje na obrázcích sexuální obsah, násilí, nenávist a sebepoškozování s více úrovněmi závažnosti.
  • Rozhraní API pro správu seznamu blokovaných bloků textu: Výchozí klasifikátory AI jsou dostatečné pro většinu potřeb zabezpečení obsahu. Možná ale budete muset vyhledat podmínky, které jsou specifické pro váš případ použití. Můžete vytvořit seznamy blokovaných termínů pro použití s rozhraním Text API.

Dokumentace

K dispozici je různá dokumentace, která vám pomůže začít.

Začínáme

Požadavky

Instalace balíčku

pip install azure-ai-contentsafety

Ověření klienta

Získání koncového bodu

Koncový bod prostředku služby Bezpečnost obsahu Azure AI můžete najít pomocí webu Azure Portal nebo Azure CLI:

# Get the endpoint for the Azure AI Content Safety service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"

Vytvoření ContentSafetyClient/BlocklistClient s klíčem rozhraní API

Použití klíče rozhraní API jako parametru credential

  • Krok 1: Získejte klíč rozhraní API. Klíč rozhraní API najdete na webu Azure Portal nebo spuštěním následujícího příkazu Azure CLI :

    az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
    
  • Krok 2: Předejte klíč jako řetězec do instance .AzureKeyCredential

    from azure.core.credentials import AzureKeyCredential
    from azure.ai.contentsafety import ContentSafetyClient, BlocklistClient
    
    endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
    credential = AzureKeyCredential("<api_key>")
    content_safety_client = ContentSafetyClient(endpoint, credential)
    blocklist_client = BlocklistClient(endpoint, credential)
    

Vytvoření objektu ContentSafetyClient/BlocklistClient s přihlašovacími údaji tokenu id Microsoft Entra

  • Krok 1: Povolte id Microsoft Entra pro váš prostředek. Postup povolení ID Microsoft Entra pro váš prostředek najdete v tomto dokumentu Ověření pomocí ID Microsoft Entra.

    Hlavní kroky jsou:

    • Vytvořte prostředek s vlastní subdoménou.
    • Vytvořte instanční objekt a přiřaďte mu roli uživatele služeb Cognitive Services.
  • Krok 2: Nastavte hodnoty ID klienta, ID tenanta a tajného klíče klienta aplikace Microsoft Entra jako proměnné prostředí: AZURE_CLIENT_ID, AZURE_TENANT_ID, . AZURE_CLIENT_SECRET

    DefaultAzureCredential použije hodnoty z těchto proměnných prostředí.

    from azure.identity import DefaultAzureCredential
    from azure.ai.contentsafety import ContentSafetyClient, BlocklistClient
    
    endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
    credential = DefaultAzureCredential()
    content_safety_client = ContentSafetyClient(endpoint, credential)
    blocklist_client = BlocklistClient(endpoint, credential)
    

Klíčové koncepty

Dostupné funkce

Tato služba má k dispozici různé typy analýz. Následující tabulka popisuje aktuálně dostupná rozhraní API.

Funkce Popis
Rozhraní API pro analýzu textu Vyhledá v textu sexuální obsah, násilí, nenávist a sebepoškozování s více úrovněmi závažnosti.
Rozhraní API pro analýzu obrázků Skenuje na obrázcích sexuální obsah, násilí, nenávist a sebepoškozování s více úrovněmi závažnosti.
Rozhraní API pro správu seznamu blokovaných bloků textu Výchozí klasifikátory AI jsou dostatečné pro většinu potřeb zabezpečení obsahu. Možná ale budete muset zjistit podmínky, které jsou specifické pro váš případ použití. Můžete vytvořit seznamy blokovaných termínů pro použití s rozhraním Text API.

Kategorie škod

Zabezpečení obsahu rozpozná čtyři různé kategorie problematického obsahu.

Kategorie Popis
Nenávidět Škoda související s nenávistí a nestranností označuje jakýkoli obsah, který napadá nebo používá pejorativní nebo diskriminující jazyk s odkazem na osobu nebo skupinu identit na základě určitých odlišujících atributů těchto skupin, včetně mimo jiné rasy, etnické příslušnosti, národnosti, genderové identity a výrazu, sexuální orientace, náboženství, statusu imigrace, statusu schopností, osobního vzhledu a velikosti těla.
Sexuální Sex popisuje jazyk související s anatomickými orgány a genitáliemi, romantické vztahy, akty vykreslené erotickými nebo náklonnými výrazy, těhotenství, fyzické sexuální činy, včetně těch, které jsou vykreslovány jako napadení nebo vynucené sexuální násilí proti chtě, prostituci, pornografii a zneužívání.
Násilí Násilí popisuje jazyk související s fyzickými činy, jejichž cílem je ublížit, zranit, poškodit nebo zabít někoho nebo něco; popisuje zbraně, zbraně a související subjekty, jako jsou výrobci, sdružení, právní předpisy atd.
Sebepoškozování Sebepoškozování popisuje jazyk související s fyzickými činnostmi, jejichž cílem je úmyslně ublížit, zranit, poškodit tělo nebo se zabít.

Klasifikace může být označená více popisky. Když například ukázka textu prochází modelem moderování textu, může být klasifikována jako sexuální obsah i násilí.

Úrovně závažnosti

Každá kategorie škod, na které se služba vztahuje, má také hodnocení úrovně závažnosti. Úroveň závažnosti označuje závažnost následků zobrazení obsahu s příznakem.

Text: Aktuální verze textového modelu podporuje úplné měřítko závažnosti 0–7. Ve výchozím nastavení bude odpověď výstupem 4 hodnoty: 0, 2, 4 a 6. Každá dvě sousední úrovně jsou mapovány na jednu úroveň. Uživatelé můžou v požadavku použít outputType a nastavit ho jako "EightSeverityLevels", aby získali 8 hodnot ve výstupu: 0,1,2,3,4,5,6,7. Podrobnosti najdete v definicích úrovní závažnosti textového obsahu .

  • [0,1] –> 0
  • [2,3] –> 2
  • [4,5] –> 4
  • [6,7] –> 6

Obrázek: Aktuální verze image modelu podporuje oříznutou verzi úplné škály závažnosti 0–7. Klasifikátor vrátí pouze závažnosti 0, 2, 4 a 6; každá dvě sousední úrovně jsou mapovány na jednu úroveň. Podrobnosti najdete v definicích úrovní závažnosti obsahu obrázků .

  • [0,1] –> 0
  • [2,3] –> 2
  • [4,5] –> 4
  • [6,7] –> 6

Správa seznamu blokovaných textů

Pro správu seznamu blokovaných textů se podporují následující operace:

  • Vytvoření nebo úprava seznamu blokovaných
  • Vypsat všechny seznamy blokovaných
  • Získání seznamu blokovaných podle blocklistName
  • Přidání blocklistItems do seznamu blokovaných
  • Odebrání blocklistItems ze seznamu blokovaných
  • Výpis všech blocklistItems v seznamu blokovaných položek podle blocklistName
  • Získání blocklistItem v seznamu blokovaných pomocí blocklistItemId a blocklistName
  • Odstranění seznamu blokovaných a všech jeho položek blocklistItems

Můžete nastavit seznamy blokovaných, které chcete použít při analýze textu, a pak můžete získat výsledek shody seznamu bloků z vrácené odpovědi.

Příklady

Následující část obsahuje několik fragmentů kódu, které pokrývají některé z nejběžnějších úloh služby Zabezpečení obsahu, mezi které patří:

Ukázková data pro použitá data najdete tady. Další ukázky najdete v ukázkách.

Analýza textu

Analýza textu bez seznamů blokovaných


    import os
    from azure.ai.contentsafety import ContentSafetyClient
    from azure.ai.contentsafety.models import TextCategory
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError
    from azure.ai.contentsafety.models import AnalyzeTextOptions

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Content Safety client
    client = ContentSafetyClient(endpoint, AzureKeyCredential(key))

    # Construct a request
    request = AnalyzeTextOptions(text="You are an idiot")

    # Analyze text
    try:
        response = client.analyze_text(request)
    except HttpResponseError as e:
        print("Analyze text failed.")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

    hate_result = next(item for item in response.categories_analysis if item.category == TextCategory.HATE)
    self_harm_result = next(item for item in response.categories_analysis if item.category == TextCategory.SELF_HARM)
    sexual_result = next(item for item in response.categories_analysis if item.category == TextCategory.SEXUAL)
    violence_result = next(item for item in response.categories_analysis if item.category == TextCategory.VIOLENCE)

    if hate_result:
        print(f"Hate severity: {hate_result.severity}")
    if self_harm_result:
        print(f"SelfHarm severity: {self_harm_result.severity}")
    if sexual_result:
        print(f"Sexual severity: {sexual_result.severity}")
    if violence_result:
        print(f"Violence severity: {violence_result.severity}")

Analýza textu pomocí seznamů blokovaných


    import os
    from azure.ai.contentsafety import ContentSafetyClient
    from azure.core.credentials import AzureKeyCredential
    from azure.ai.contentsafety.models import AnalyzeTextOptions
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Content Safety client
    client = ContentSafetyClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"
    input_text = "I h*te you and I want to k*ll you."

    try:
        # After you edit your blocklist, it usually takes effect in 5 minutes, please wait some time before analyzing with blocklist after editing.
        analysis_result = client.analyze_text(
            AnalyzeTextOptions(text=input_text, blocklist_names=[blocklist_name], halt_on_blocklist_hit=False)
        )
        if analysis_result and analysis_result.blocklists_match:
            print("\nBlocklist match results: ")
            for match_result in analysis_result.blocklists_match:
                print(
                    f"BlocklistName: {match_result.blocklist_name}, BlockItemId: {match_result.blocklist_item_id}, "
                    f"BlockItemText: {match_result.blocklist_item_text}"
                )
    except HttpResponseError as e:
        print("\nAnalyze text failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Analýza obrázku


    import os
    from azure.ai.contentsafety import ContentSafetyClient
    from azure.ai.contentsafety.models import ImageCategory
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError
    from azure.ai.contentsafety.models import AnalyzeImageOptions, ImageData

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
    image_path = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_data/image.jpg"))

    # Create a Content Safety client
    client = ContentSafetyClient(endpoint, AzureKeyCredential(key))

    # Build request
    with open(image_path, "rb") as file:
        request = AnalyzeImageOptions(image=ImageData(content=file.read()))

    # Analyze image
    try:
        response = client.analyze_image(request)
    except HttpResponseError as e:
        print("Analyze image failed.")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

    hate_result = next(item for item in response.categories_analysis if item.category == ImageCategory.HATE)
    self_harm_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SELF_HARM)
    sexual_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SEXUAL)
    violence_result = next(item for item in response.categories_analysis if item.category == ImageCategory.VIOLENCE)

    if hate_result:
        print(f"Hate severity: {hate_result.severity}")
    if self_harm_result:
        print(f"SelfHarm severity: {self_harm_result.severity}")
    if sexual_result:
        print(f"Sexual severity: {sexual_result.severity}")
    if violence_result:
        print(f"Violence severity: {violence_result.severity}")

Správa seznamu blokovaných textů

Vytvoření nebo aktualizace seznamu blokovaných textů


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.ai.contentsafety.models import TextBlocklist
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"
    blocklist_description = "Test blocklist management."

    try:
        blocklist = client.create_or_update_text_blocklist(
            blocklist_name=blocklist_name,
            options=TextBlocklist(blocklist_name=blocklist_name, description=blocklist_description),
        )
        if blocklist:
            print("\nBlocklist created or updated: ")
            print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
    except HttpResponseError as e:
        print("\nCreate or update text blocklist failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Seznam textových seznamů blokovaných


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    try:
        blocklists = client.list_text_blocklists()
        if blocklists:
            print("\nList blocklists: ")
            for blocklist in blocklists:
                print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
    except HttpResponseError as e:
        print("\nList text blocklists failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Získání seznamu blokovaných textů


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"

    try:
        blocklist = client.get_text_blocklist(blocklist_name=blocklist_name)
        if blocklist:
            print("\nGet blocklist: ")
            print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
    except HttpResponseError as e:
        print("\nGet text blocklist failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Odstranění seznamu blokovaných textů


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"

    try:
        client.delete_text_blocklist(blocklist_name=blocklist_name)
        print(f"\nDeleted blocklist: {blocklist_name}")
    except HttpResponseError as e:
        print("\nDelete blocklist failed:")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Přidání blockItems


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.ai.contentsafety.models import AddOrUpdateTextBlocklistItemsOptions, TextBlocklistItem
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"
    block_item_text_1 = "k*ll"
    block_item_text_2 = "h*te"

    block_items = [TextBlocklistItem(text=block_item_text_1), TextBlocklistItem(text=block_item_text_2)]
    try:
        result = client.add_or_update_blocklist_items(
            blocklist_name=blocklist_name, options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=block_items)
        )
        for block_item in result.blocklist_items:
            print(
                f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, Description: {block_item.description}"
            )
    except HttpResponseError as e:
        print("\nAdd block items failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Vypsat položky blokování


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"

    try:
        block_items = client.list_text_blocklist_items(blocklist_name=blocklist_name)
        if block_items:
            print("\nList block items: ")
            for block_item in block_items:
                print(
                    f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, "
                    f"Description: {block_item.description}"
                )
    except HttpResponseError as e:
        print("\nList block items failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Získání blockItem


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.ai.contentsafety.models import TextBlocklistItem, AddOrUpdateTextBlocklistItemsOptions
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"
    block_item_text_1 = "k*ll"

    try:
        # Add a blockItem
        add_result = client.add_or_update_blocklist_items(
            blocklist_name=blocklist_name,
            options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=block_item_text_1)]),
        )
        if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
            raise RuntimeError("BlockItem not created.")
        block_item_id = add_result.blocklist_items[0].blocklist_item_id

        # Get this blockItem by blockItemId
        block_item = client.get_text_blocklist_item(blocklist_name=blocklist_name, blocklist_item_id=block_item_id)
        print("\nGet blockitem: ")
        print(
            f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, Description: {block_item.description}"
        )
    except HttpResponseError as e:
        print("\nGet block item failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Odebrání blockItems


    import os
    from azure.ai.contentsafety import BlocklistClient
    from azure.core.credentials import AzureKeyCredential
    from azure.ai.contentsafety.models import (
        TextBlocklistItem,
        AddOrUpdateTextBlocklistItemsOptions,
        RemoveTextBlocklistItemsOptions,
    )
    from azure.core.exceptions import HttpResponseError

    key = os.environ["CONTENT_SAFETY_KEY"]
    endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]

    # Create a Blocklist client
    client = BlocklistClient(endpoint, AzureKeyCredential(key))

    blocklist_name = "TestBlocklist"
    block_item_text_1 = "k*ll"

    try:
        # Add a blockItem
        add_result = client.add_or_update_blocklist_items(
            blocklist_name=blocklist_name,
            options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=block_item_text_1)]),
        )
        if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
            raise RuntimeError("BlockItem not created.")
        block_item_id = add_result.blocklist_items[0].blocklist_item_id

        # Remove this blockItem by blockItemId
        client.remove_blocklist_items(
            blocklist_name=blocklist_name, options=RemoveTextBlocklistItemsOptions(blocklist_item_ids=[block_item_id])
        )
        print(f"\nRemoved blockItem: {add_result.blocklist_items[0].blocklist_item_id}")
    except HttpResponseError as e:
        print("\nRemove block item failed: ")
        if e.error:
            print(f"Error code: {e.error.code}")
            print(f"Error message: {e.error.message}")
            raise
        print(e)
        raise

Poradce při potížích

Obecné

Bezpečnost obsahu Azure AI klientská knihovna vyvolá výjimky definované v Azure Core. Kódy chyb jsou definovány takto:

Kód chyby Možné důvody Návrhy
InvalidRequestBody Jedno nebo více polí v textu požadavku neodpovídá definici rozhraní API. 1. Zkontrolujte verzi rozhraní API, kterou jste zadali ve volání rozhraní API.
2. Zkontrolujte odpovídající definici rozhraní API pro verzi rozhraní API, kterou jste vybrali.
Neplatný název zdroje Název prostředku, který jste zadali v adrese URL, nesplňuje požadavky, jako je název seznamu blokovaných, ID termínu seznamu blokovaných atd. 1. Zkontrolujte verzi rozhraní API, kterou jste zadali ve volání rozhraní API.
2. Podle definice rozhraní API zkontrolujte, jestli daný název obsahuje neplatné znaky.
ResourceNotFound Prostředek, který jste zadali v adrese URL, nemusí existovat, například název seznamu blokovaných. 1. Zkontrolujte verzi rozhraní API, kterou jste zadali ve volání rozhraní API.
2. Pečlivě zkontrolujte existenci prostředku zadaného v adrese URL.
InternalError Na straně serveru se aktivovaly některé neočekávané situace. 1. Možná budete chtít akci opakovat několikrát po malé době a uvidíte, že k problému dochází znovu.
2. Pokud tento problém přetrvává, obraťte se na podporu Azure.
ServerOvá sběrnice Serverová strana nemůže požadavek dočasně zpracovat. 1. Možná budete chtít akci opakovat několikrát po malé době a uvidíte, že k problému dochází znovu.
2. Pokud tento problém přetrvává, obraťte se na podporu Azure.
TooManyRequests Aktuální RPS překročila kvótu pro aktuální skladovou položku. 1. Projděte si tabulku cen a seznamte se s kvótou RPS.
2. Pokud potřebujete další QPS, obraťte se na podporu Azure.

protokolování

Tato knihovna používá k protokolování standardní knihovnu protokolování .

Základní informace o relacích HTTP (adresy URL, hlavičky atd.) se protokolují na INFO úrovni.

Podrobné DEBUG protokolování úrovně, včetně těl požadavků/odpovědí a nezopravovaných hlaviček, je možné povolit u klienta nebo pro jednotlivé operace pomocí argumentu klíčového logging_enable slova.

Kompletní dokumentaci k protokolování sady SDK s příklady najdete tady.

Volitelná konfigurace

Volitelné argumenty klíčových slov je možné předat na úrovni klienta a pro jednotlivé operace. Referenční dokumentace azure-core popisuje dostupné konfigurace pro opakování, protokolování, přenosové protokoly a další.

Další kroky

Další dokumentace

Podrobnější dokumentaci k Zabezpečení obsahu Azure najdete v Bezpečnost obsahu Azure AI na docs.microsoft.com.

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování. V případě jakýchkoli dotazů nebo připomínek kontaktujte opencode@microsoft.com.