Bagikan melalui


Keamanan Konten Azure AI pustaka klien untuk Python - versi 1.0.0

Keamanan Konten Azure AI mendeteksi konten yang dihasilkan pengguna dan buatan AI yang berbahaya dalam aplikasi dan layanan. Keamanan Konten mencakup API teks dan gambar yang memungkinkan Anda mendeteksi materi yang berbahaya:

  • TEXT Analysis API: Memindai teks untuk konten seksual, kekerasan, kebencian, dan melukai diri sendiri dengan tingkat keparahan multi.
  • API Analisis Gambar: Memindai gambar untuk konten seksual, kekerasan, kebencian, dan melukai diri sendiri dengan tingkat keparahan multi.
  • TEXT Blocklist Management API: Pengklasifikasi AI default cukup untuk sebagian besar kebutuhan keamanan konten; namun, Anda mungkin perlu menyaring istilah yang khusus untuk kasus penggunaan Anda. Anda dapat membuat daftar blokir istilah untuk digunakan dengan Text API.

Dokumentasi

Berbagai dokumentasi tersedia untuk membantu Anda memulai

Memulai

Prasyarat

Instal paketnya

pip install azure-ai-contentsafety

Mengautentikasi klien

Mendapatkan titik akhir

Anda dapat menemukan titik akhir untuk sumber daya layanan Keamanan Konten Azure AI Anda menggunakan Portal Microsoft Azure atau 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"

Membuat ContentSafetyClient/BlocklistClient dengan kunci API

Untuk menggunakan kunci API sebagai credential parameter .

  • Langkah 1: Dapatkan kunci API. Kunci API dapat ditemukan di Portal Microsoft Azure atau dengan menjalankan perintah Azure CLI berikut:

    az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
    
  • Langkah 2: Berikan kunci sebagai string ke dalam instans 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)
    

Membuat ContentSafetyClient/BlocklistClient dengan kredensial token ID Microsoft Entra

  • Langkah 1: Aktifkan ID Microsoft Entra untuk sumber daya Anda. Lihat dokumen ini Autentikasi dengan ID Microsoft Entra untuk langkah-langkah mengaktifkan ID Microsoft Entra untuk sumber daya Anda.

    Langkah utamanya adalah:

    • Buat sumber daya dengan subdomain kustom.
    • Buat Perwakilan Layanan dan tetapkan peran Pengguna Cognitive Services ke dalamnya.
  • Langkah 2: Atur nilai ID klien, ID penyewa, dan rahasia klien aplikasi Microsoft Entra sebagai variabel lingkungan: AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET.

    DefaultAzureCredential akan menggunakan nilai dari variabel lingkungan ini.

    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)
    

Konsep utama

Fitur yang tersedia

Ada berbagai jenis analisis yang tersedia dari layanan ini. Tabel berikut ini menjelaskan API yang saat ini tersedia.

Fitur Deskripsi
API Analisis Teks Memindai teks untuk konten seksual, kekerasan, kebencian, dan melukai diri sendiri dengan tingkat keparahan multi-tingkat.
API Analisis Gambar Memindai gambar untuk konten seksual, kekerasan, kebencian, dan melukai diri sendiri dengan tingkat keparahan multi.
API Manajemen Daftar BlokIr Teks Pengklasifikasi AI default cukup untuk sebagian besar kebutuhan keamanan konten. Namun, Anda mungkin perlu menyaring istilah yang khusus untuk kasus penggunaan Anda. Anda dapat membuat daftar blokir istilah untuk digunakan dengan Text API.

Kategori bahaya

Keamanan Konten mengenali empat kategori konten yang tidak menyenangkan yang berbeda.

Kategori Deskripsi
Benci Kerusakan terkait kebencian dan keadilan mengacu pada konten apa pun yang menyerang atau menggunakan bahasa pejoratif atau diskriminatif dengan merujuk ke seseorang atau kelompok identitas berdasarkan atribut pembeda tertentu dari kelompok-kelompok ini termasuk tetapi tidak terbatas pada ras, etnis, kebangsaan, identitas dan ekspresi gender, orientasi seksual, agama, status imigrasi, status kemampuan, penampilan pribadi, dan ukuran tubuh.
Seksual Seksual menggambarkan bahasa yang terkait dengan organ anatomi dan alat kelamin, hubungan romantis, tindakan yang digambarkan dalam istilah erotis atau kasih sayang, kehamilan, tindakan seksual fisik, termasuk yang digambarkan sebagai penyerangan atau tindakan kekerasan seksual paksa terhadap kehendak, prostitusi, pornografi, dan pelecehan seseorang.
Kekerasan Kekerasan menggambarkan bahasa yang terkait dengan tindakan fisik yang dimaksudkan untuk menyakiti, melukai, merusak, atau membunuh seseorang atau sesuatu; menjelaskan senjata, senjata dan entitas terkait, seperti produsen, asosiasi, undang-undang, dan sebagainya.
Melukai diri sendiri Melukai diri sendiri menggambarkan bahasa yang terkait dengan tindakan fisik yang dimaksudkan untuk dengan sengaja melukai, melukai, merusak tubuh seseorang atau membunuh diri sendiri.

Klasifikasi dapat di-multi-label. Misalnya, ketika sampel teks melewati model moderasi teks, sampel tersebut dapat diklasifikasikan sebagai Konten seksual dan Kekerasan.

Tingkat keparahan

Setiap kategori bahaya yang diterapkan layanan juga dilengkapi dengan peringkat tingkat keparahan. Tingkat keparahan dimaksudkan untuk menunjukkan tingkat keparahan konsekuensi dari menunjukkan konten yang ditandai.

Teks: Versi model teks saat ini mendukung skala tingkat keparahan 0-7 penuh. Secara default, respons akan menghasilkan 4 nilai: 0, 2, 4, dan 6. Masing-masing dua tingkat yang berdekatan dipetakan ke satu tingkat. Pengguna dapat menggunakan "outputType" dalam permintaan dan mengaturnya sebagai "EightSeverityLevels" untuk mendapatkan 8 nilai dalam output: 0,1,2,3,4,5,6,7. Anda dapat merujuk definisi tingkat keparahan konten teks untuk detailnya.

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

Gambar: Versi model gambar saat ini mendukung versi yang dipangkas dari skala tingkat keparahan 0-7 penuh. Pengklasifikasi hanya mengembalikan tingkat keparahan 0, 2, 4, dan 6; masing-masing dua tingkat yang berdekatan dipetakan ke satu tingkat. Anda dapat merujuk definisi tingkat keparahan konten gambar untuk detailnya.

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

Manajemen daftar blokir teks

Operasi berikut didukung untuk mengelola daftar blokir teks Anda:

  • Membuat atau mengubah daftar blokir
  • Mencantumkan semua daftar blokir
  • Mendapatkan daftar blokir dengan blocklistName
  • Menambahkan blocklistItems ke daftar blokir
  • Menghapus blocklistItems dari daftar blokir
  • Mencantumkan semua blocklistItems dalam daftar blokir menurut blocklistName
  • Mendapatkan blocklistItem dalam daftar blokir dengan blocklistItemId dan blocklistName
  • Menghapus daftar blokir dan semua blocklistItems-nya

Anda dapat mengatur daftar blokir yang ingin Anda gunakan saat menganalisis teks, lalu Anda bisa mendapatkan hasil pencocokan daftar blokir dari respons yang dikembalikan.

Contoh

Bagian berikut ini menyediakan beberapa cuplikan kode yang mencakup beberapa tugas layanan Content Safety yang paling umum, termasuk:

Silakan lihat data sampel untuk data yang digunakan di sini. Untuk sampel lainnya, silakan merujuk ke sampel.

Analisa teks

Menganalisis teks tanpa daftar blokir


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

Menganalisis teks dengan daftar blokir


    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

Menganalisis Gambar


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

Mengelola daftar blokir teks

Membuat atau memperbarui daftar blokir teks


    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

Daftar daftar blokir teks


    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

Dapatkan daftar blokir teks


    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

Hapus daftar blokir teks


    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

Menambahkan 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

Daftar blockItems


    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

Dapatkan 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

Menghapus 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

Pemecahan Masalah

Umum

Keamanan Konten Azure AI pustaka klien akan memunculkan pengecualian yang ditentukan di Azure Core. Kode kesalahan didefinisikan seperti di bawah ini:

Kode Kesalahan Kemungkinan alasan Saran
InvalidRequestBody Satu atau beberapa bidang dalam isi permintaan tidak cocok dengan definisi API. 1. Periksa versi API yang Anda tentukan dalam panggilan API.
2. Periksa definisi API yang sesuai untuk versi API yang Anda pilih.
InvalidResourceName Nama sumber daya yang Anda tentukan di URL tidak memenuhi persyaratan, seperti nama daftar blokir, ID istilah daftar blokir, dll. 1. Periksa versi API yang Anda tentukan dalam panggilan API.
2. Periksa apakah nama yang diberikan memiliki karakter yang tidak valid sesuai dengan definisi API.
ResourceNotFound Sumber daya yang Anda tentukan di URL mungkin tidak ada, seperti nama daftar blokir. 1. Periksa versi API yang Anda tentukan dalam panggilan API.
2. Periksa kembali keberadaan sumber daya yang ditentukan dalam URL.
InternalError Beberapa situasi tak terduga di sisi server telah dipicu. 1. Anda mungkin ingin mencoba kembali beberapa kali setelah periode kecil dan melihatnya masalah terjadi lagi.
2. Hubungi Dukungan Azure jika masalah ini berlanjut.
ServerBusy Sisi server tidak dapat memproses permintaan untuk sementara. 1. Anda mungkin ingin mencoba kembali beberapa kali setelah periode kecil dan melihatnya masalah terjadi lagi.
2.Hubungi Dukungan Azure jika masalah ini berlanjut.
TooManyRequests RPS saat ini telah melebihi kuota untuk SKU Anda saat ini. 1. Periksa tabel harga untuk memahami kuota RPS.
2.Hubungi Dukungan Azure jika Anda memerlukan lebih banyak QPS.

Pembuatan Log

Pustaka ini menggunakan pustaka pengelogan standar untuk pengelogan.

Informasi dasar tentang sesi HTTP (URL, header, dll.) dicatat pada INFO tingkat.

Pengelogan tingkat terperinci DEBUG , termasuk isi permintaan/respons dan header yang tidak diredaktifkan , dapat diaktifkan pada klien atau per operasi dengan logging_enable argumen kata kunci.

Lihat dokumentasi pengelogan SDK lengkap dengan contoh di sini.

Konfigurasi Opsional

Argumen kata kunci opsional dapat diteruskan di tingkat klien dan per operasi. Dokumentasi referensi azure-core menjelaskan konfigurasi yang tersedia untuk percobaan ulang, pengelogan, protokol transportasi, dan banyak lagi.

Langkah berikutnya

Dokumentasi tambahan

Untuk dokumentasi yang lebih luas tentang Azure Content Safety, lihat Keamanan Konten Azure AI di docs.microsoft.com.

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.

Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Kode Etik atau kontak dengan pertanyaan atau komentar opencode@microsoft.com tambahan.