Aracılığıyla paylaş


Python için Azure Yapay Zeka İçerik Güvenliği istemci kitaplığı - sürüm 1.0.0

Azure Yapay Zeka İçerik Güvenliği, uygulama ve hizmetlerde kullanıcı tarafından oluşturulan ve yapay zeka tarafından oluşturulan zararlı içerikleri algılar. İçerik Güvenliği, zararlı malzemeleri algılamanıza olanak sağlayan metin ve görüntü API'leri içerir:

  • Metin Analizi API'si: Metni cinsel içerik, şiddet, nefret ve kendine zarar verecek şekilde çok önem düzeyiyle tarar.
  • Görüntü Analizi API'si: Çok önem düzeyine sahip cinsel içerik, şiddet, nefret ve kendine zarar için görüntüleri tarar.
  • Metin Blok Listesi Yönetim API'leri: Varsayılan yapay zeka sınıflandırıcıları çoğu içerik güvenliği gereksinimi için yeterlidir; ancak kullanım örneğine özgü terimleri denetlemeniz gerekebilir. Metin API'siyle kullanmak üzere engelleyici terim listeleri oluşturabilirsiniz.

Belgeler

Başlamanıza yardımcı olacak çeşitli belgeler mevcuttur

Başlarken

Önkoşullar

Paketi yükleme

pip install azure-ai-contentsafety

İstemcinin kimliğini doğrulama

Uç noktayı alma

azure portalını veya Azure CLI'yı kullanarak Azure Yapay Zeka İçerik Güvenliği hizmet kaynağınızın uç noktasını bulabilirsiniz:

# 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"

API anahtarıyla ContentSafetyClient/BlocklistClient oluşturma

Parametre olarak credential bir API anahtarı kullanmak için.

  • 1. Adım: API anahtarını alma. API anahtarı Azure Portal'da veya aşağıdaki Azure CLI komutunu çalıştırarak bulunabilir:

    az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
    
  • 2. Adım: anahtarı bir örneğine AzureKeyCredentialdize olarak geçirin.

    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)
    

Microsoft Entra Kimliği belirteci kimlik bilgileriyle ContentSafetyClient/BlocklistClient oluşturma

  • 1. Adım: Kaynağınız için Microsoft Entra kimliğini etkinleştirin. Kaynağınız için Microsoft Entra kimliğini etkinleştirme adımları için lütfen bu Microsoft Entra Kimliği ile kimlik doğrulaması belgesine bakın.

    Ana adımlar şunlardır:

    • Özel bir alt etki alanı ile kaynak oluşturun.
    • Hizmet Sorumlusu oluşturun ve buna Bilişsel Hizmetler Kullanıcı rolü atayın.
  • 2. Adım: Microsoft Entra uygulamasının istemci kimliği, kiracı kimliği ve istemci gizli dizisi değerlerini ortam değişkenleri olarak ayarlayın: AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET.

    DefaultAzureCredential bu ortam değişkenlerindeki değerleri kullanır.

    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)
    

Önemli kavramlar

Kullanılabilir özellikler

Bu hizmetten farklı analiz türleri kullanılabilir. Aşağıdaki tabloda şu anda kullanılabilen API'ler açıklanmaktadır.

Özellik Açıklama
Metin Analizi API'si Metni cinsel içerik, şiddet, nefret ve kendine zarar verecek şekilde çok önem dereceleriyle tarar.
Görüntü Analizi API'si Cinsel içerik, şiddet, nefret ve kendine zarar verecek görüntüleri çok önem düzeyiyle tarar.
Metin Blok Listesi Yönetim API'leri Varsayılan yapay zeka sınıflandırıcıları çoğu içerik güvenliği gereksinimi için yeterlidir. Ancak, kullanım örneğine özgü terimleri denetlemeniz gerekebilir. Metin API'siyle kullanmak üzere engelleyici terim listeleri oluşturabilirsiniz.

Zarar kategorileri

İçerik Güvenliği dört farklı uygunsuz içerik kategorisi tanır.

Kategori Açıklama
Nefret Nefret ve eşitlikle ilgili zararlar, ırk, etnik köken, milliyet, cinsiyet kimliği ve ifadesi, cinsel yönelim, din, göçmenlik durumu, yetenek durumu, kişisel görünüm ve vücut boyutu dahil ancak bunlarla sınırlı olmamak üzere bu grupların belirli ayırt edici özniteliklerine dayalı bir kişi veya kimlik grubuna atıfta bulunarak, pejorative veya ayrımcı dil kullanan herhangi bir içeriği ifade eder.
Cinsel Cinsel, anatomik organlar ve cinsel organlar, romantik ilişkiler ile ilgili dili tanımlar, cinsel veya sevgi dolu terimlerle, hamilelik, fiziksel cinsel eylemler, saldırı veya zorla cinsel şiddet eylemi olarak gösterilenler de dahil olmak üzere, kişinin isteklerine, fuhuşuna, pornografisine ve kötüye kullanımına karşı.
Şiddet Şiddet, bir kişiyi veya bir şeyi yaralayan, yaralayan, zarar verecek veya öldürmeye yönelik fiziksel eylemlerle ilgili dili tanımlar; silahlar, silahlar ve üreticiler, dernekler, mevzuat gibi ilgili varlıkları açıklar.
Kendine zarar verme Kendine zarar verme, kasi olarak yaralanmak, vücuduna zarar vermek veya kendini öldürmek için tasarlanmış fiziksel eylemlerle ilgili dili tanımlar.

Sınıflandırma çok etiketli olabilir. Örneğin, bir metin örneği metin denetleme modeli üzerinden geçtiğinde, hem Cinsel içerik hem de Şiddet olarak sınıflandırılabilir.

Önem derecesi düzeyleri

Hizmetin uyguladığı her zarar kategorisi de önem derecesiyle birlikte gelir. Önem derecesi düzeyi, bayrak eklenmiş içeriği göstermenin sonuçlarının önem derecesini belirtmek için tasarlanır.

Metin: Metin modelinin geçerli sürümü tam 0-7 önem derecesini destekler. Varsayılan olarak, yanıt 4 değer verir: 0, 2, 4 ve 6. Her iki bitişik düzey tek bir düzeye eşlenir. Kullanıcılar istekte "outputType" kullanabilir ve çıkışta 8 değeri almak için bunu "EightSeverityLevels" olarak ayarlayabilir: 0,1,2,3,4,5,6,7. Ayrıntılar için metin içeriği önem düzeyi tanımlarına başvurabilirsiniz.

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

Görüntü: Görüntü modelinin geçerli sürümü, tam 0-7 önem derecesi ölçeğinin kırpılmış sürümünü destekler. Sınıflandırıcı yalnızca 0, 2, 4 ve 6 önem derecelerini döndürür; her iki bitişik düzey tek bir düzeye eşlenir. Ayrıntılar için görüntü içeriği önem düzeyi tanımlarına başvurabilirsiniz.

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

Metin blok listesi yönetimi

Metin blok listenizi yönetmek için aşağıdaki işlemler desteklenir:

  • Blok listesi oluşturma veya değiştirme
  • Tüm blok listelerini listeleme
  • blocklistName ile blok listesi alma
  • Blok listesine blocklistItems ekleme
  • Blok listesinden blocklistItems kaldırma
  • BlocklistName ile bir blok listesindeki tüm blocklistItem'leri listeleme
  • blocklistItemId ve blocklistName ile blok listesinde blocklistItem alma
  • Bir blok listesini ve tüm blok listesiItem'lerini silme

Metni analiz ederken kullanmak istediğiniz blok listelerini ayarlayabilir ve ardından döndürülen yanıttan blok listesi eşleşme sonucunu alabilirsiniz.

Örnekler

Aşağıdaki bölümde, aşağıdakiler de dahil olmak üzere en yaygın İçerik Güvenliği hizmet görevlerinden bazılarını kapsayan çeşitli kod parçacıkları sağlanır:

Lütfen burada kullanılan veriler için örnek verilere bakın. Daha fazla örnek için lütfen örneklere bakın.

Metni analiz etme

Blok listeleri olmadan metin çözümleme


    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}")

Blok listeleriyle metni analiz etme


    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

Görüntüyü analiz etme


    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}")

Metin blok listesini yönetme

Metin blok listesi oluşturma veya güncelleştirme


    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

Metin blok listelerini listeleme


    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

Metin blok listesini alma


    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

Metin blok listesini silme


    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

blockItems ekleme


    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

BlockItems listesini oluşturma


    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

blockItem alma


    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

blockItems öğesini kaldırma


    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

Sorun giderme

Genel

Azure Yapay Zeka İçerik Güvenliği istemci kitaplığı, Azure Core'da tanımlanan özel durumları tetikler. Hata kodları aşağıdaki gibi tanımlanır:

Hata Kodu Olası nedenler Öneriler
InvalidRequestBody İstek gövdesindeki bir veya daha fazla alan API tanımıyla eşleşmiyor. 1. API çağrısında belirttiğiniz API sürümünü denetleyin.
2. Seçtiğiniz API sürümü için ilgili API tanımını denetleyin.
InvalidResourceName URL'de belirttiğiniz kaynak adı, blok listesi adı, engelleyici terim kimliği gibi gereksinimleri karşılamıyor. 1. API çağrısında belirttiğiniz API sürümünü denetleyin.
2. Verilen adın API tanımına göre geçersiz karakterlere sahip olup olmadığını denetleyin.
ResourceNotFound URL'de belirttiğiniz kaynak, blok listesi adı gibi mevcut olmayabilir. 1. API çağrısında belirttiğiniz API sürümünü denetleyin.
2. URL'de belirtilen kaynağın varlığını bir kez daha denetleyin.
InternalError Sunucu tarafında bazı beklenmeyen durumlar tetiklendi. 1. Küçük bir süre sonra birkaç kez yeniden denemek ve sorunun yeniden oluştuğuna bakmak isteyebilirsiniz.
2. Bu sorun devam ederse Azure Desteği'ne başvurun.
ServerBusy Sunucu tarafı isteği geçici olarak işleyemiyor. 1. Küçük bir süre sonra birkaç kez yeniden denemek ve sorunun yeniden oluştuğuna bakmak isteyebilirsiniz.
2.Bu sorun devam ederse Azure Desteği'ne başvurun.
TooManyRequests Geçerli RPS, geçerli SKU'nuzun kotasını aştı. 1. RPS kotasını anlamak için fiyatlandırma tablosunu denetleyin.
2.Daha fazla QPS'ye ihtiyacınız varsa Azure Desteği'ne başvurun.

Günlüğe Kaydetme

Bu kitaplık , günlüğe kaydetme için standart günlük kitaplığını kullanır.

HTTP oturumlarıyla ilgili temel bilgiler (URL'ler, üst bilgiler vb.) düzeyinde INFO günlüğe kaydedilir.

İstek/yanıt gövdeleri ve kaydedilmemiş üst bilgiler de dahil olmak üzere ayrıntılı DEBUG düzey günlüğe kaydetme, istemcide veya anahtar sözcük bağımsız değişkeniyle logging_enable işlem başına etkinleştirilebilir.

Burada örneklerin bulunduğu tam SDK günlük belgelerine bakın.

İsteğe Bağlı Yapılandırma

İsteğe bağlı anahtar sözcük bağımsız değişkenleri istemci ve işlem başına düzeyinde geçirilebilir. Azure-core başvuru belgelerinde yeniden denemeler, günlüğe kaydetme, aktarım protokolleri ve daha fazlası için kullanılabilir yapılandırmalar açıklanmaktadır.

Sonraki adımlar

Diğer belgeler

Azure content safety hakkında daha kapsamlı belgeler için bkz. docs.microsoft.com Azure Yapay Zeka İçerik Güvenliği.

Katkıda bulunma

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.

Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.