Azure Document Translation-clientbibliotheek voor Python - versie 1.0.0
Azure Cognitive Services-documentvertaling is een cloudservice die kan worden gebruikt voor het vertalen van meerdere en complexe documenten in talen en dialecten met behoud van de oorspronkelijke documentstructuur en gegevensindeling. Gebruik de clientbibliotheek voor documentvertaling voor het volgende:
- Vertaal talrijke, grote bestanden van een Azure Blob Storage container naar een doelcontainer in de taal van uw keuze.
- Controleer de vertaalstatus en voortgang van elk document in de vertaalbewerking.
- Pas een aangepast vertaalmodel of woordenlijsten toe om de vertaling aan uw specifieke geval aan te passen.
Broncode | Pakket (PyPI) | API-referentiedocumentatie | Productdocumentatie | Monsters
Disclaimer
Ondersteuning voor Azure SDK Python-pakketten voor Python 2.7 is beëindigd op 1 januari 2022. Voor meer informatie en vragen raadpleegt u https://github.com/Azure/azure-sdk-for-python/issues/20691
Aan de slag
Vereisten
- Python 3.6 of hoger is vereist voor het gebruik van dit pakket.
- U moet een Azure-abonnement en een Translator-resource hebben om dit pakket te kunnen gebruiken.
Het pakket installeren
Installeer de Azure Document Translation-clientbibliotheek voor Python met pip:
pip install azure-ai-translation-document
Opmerking: deze versie van de clientbibliotheek is standaard ingesteld op de versie v1.0 van de service
Een Translator-resource maken
De functie Documentvertaling biedt alleen ondersteuning voor toegang met één service . Maak een Translator-resource om toegang te krijgen tot de service.
U kunt de resource maken met behulp van
Optie 1:Azure Portal
Optie 2:Azure CLI. Hieronder ziet u een voorbeeld van hoe u een Translator-resource kunt maken met behulp van de CLI:
# Create a new resource group to hold the Translator resource -
# if using an existing resource group, skip this step
az group create --name my-resource-group --location westus2
# Create document translation
az cognitiveservices account create \
--name document-translation-resource \
--custom-domain document-translation-resource \
--resource-group my-resource-group \
--kind TextTranslation \
--sku S1 \
--location westus2 \
--yes
De client verifiëren
Als u wilt communiceren met de functieservice Documentvertaling, moet u een exemplaar van een client maken. Er zijn een eindpunt en referenties nodig om het clientobject te instantiëren.
Het eindpunt opzoeken
U kunt het eindpunt voor uw Translator-resource vinden met behulp van Azure Portal.
Houd er rekening mee dat voor de service een aangepast domeineindpunt is vereist. Volg de instructies in de bovenstaande koppeling om uw eindpunt te formatteren: https://{NAME-OF-YOUR-RESOURCE}.cognitiveservices.azure.com/
De API-sleutel ophalen
U vindt de API-sleutel in Azure Portal of door de volgende Azure CLI-opdracht uit te voeren:
az cognitiveservices account keys list --name "resource-name" --resource-group "resource-group-name"
De client maken met AzureKeyCredential
Als u een API-sleutel als credential
parameter wilt gebruiken, geeft u de sleutel door als een tekenreeks aan een exemplaar van AzureKeyCredential.
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient
endpoint = "https://<resource-name>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
document_translation_client = DocumentTranslationClient(endpoint, credential)
De client maken met een Azure Active Directory-referentie
AzureKeyCredential
verificatie wordt gebruikt in de voorbeelden in deze introductiehandleiding, maar u kunt zich ook verifiëren met Azure Active Directory met behulp van de azure-identity-bibliotheek .
Als u het hieronder weergegeven Type DefaultAzureCredential of andere referentietypen wilt gebruiken die worden geleverd met de Azure SDK, installeert u het azure-identity
pakket:
pip install azure-identity
U moet ook een nieuwe AAD-toepassing registreren en toegang verlenen tot uw Translator-resource door de "Cognitive Services User"
rol toe te wijzen aan uw service-principal.
Wanneer dit is voltooid, stelt u de waarden van de client-id, tenant-id en clientgeheim van de AAD-toepassing in als omgevingsvariabelen: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
.
from azure.identity import DefaultAzureCredential
from azure.ai.translation.document import DocumentTranslationClient
credential = DefaultAzureCredential()
document_translation_client = DocumentTranslationClient(
endpoint="https://<resource-name>.cognitiveservices.azure.com/",
credential=credential
)
Belangrijkste concepten
Voor de documentvertalingsservice moet u uw bestanden uploaden naar een Azure Blob Storage broncontainer en een doelcontainer opgeven waarin de vertaalde documenten kunnen worden geschreven. Aanvullende informatie over het instellen hiervan vindt u in de servicedocumentatie:
- Azure Blob Storage containers instellen met uw documenten
- Woordenlijsten of een aangepast model toepassen voor vertaling (optioneel)
- Sta toegang tot uw opslagaccount toe met een van de volgende opties:
- SAS-tokens genereren voor uw containers (of bestanden) met de juiste machtigingen
- Een beheerde identiteit maken en gebruiken om toegang te verlenen tot uw opslagaccount
DocumentTranslationClient
Interactie met de clientbibliotheek documentvertaling begint met een exemplaar van de DocumentTranslationClient
.
De client biedt bewerkingen voor:
- Een vertaalbewerking maken om documenten in uw broncontainer(s) te vertalen en resultaten naar uw doelcontainer(s) te schrijven.
- De status van afzonderlijke documenten in de vertaalbewerking controleren en de voortgang van elk document bijhouden.
- Alle eerdere en huidige vertaalbewerkingen opsommen.
- Ondersteunde woordenlijst- en documentindelingen identificeren.
Vertaalinvoer
Invoer voor de begin_translation
clientmethode kan op twee verschillende manieren worden geleverd:
- Eén broncontainer met documenten kan worden vertaald in een andere taal:
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient
document_translation_client = DocumentTranslationClient("<endpoint>", AzureKeyCredential("<api_key>"))
poller = document_translation_client.begin_translation("<sas_url_to_source>", "<sas_url_to_target>", "<target_language>")
- Of meerdere verschillende bronnen kunnen worden voorzien van elk hun eigen doelen.
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient, DocumentTranslationInput, TranslationTarget
my_input = [
DocumentTranslationInput(
source_url="<sas_url_to_source_A>",
targets=[
TranslationTarget(target_url="<sas_url_to_target_fr>", language="fr"),
TranslationTarget(target_url="<sas_url_to_target_de>", language="de")
]
),
DocumentTranslationInput(
source_url="<sas_url_to_source_B>",
targets=[
TranslationTarget(target_url="<sas_url_to_target_fr>", language="fr"),
TranslationTarget(target_url="<sas_url_to_target_de>", language="de")
]
),
DocumentTranslationInput(
source_url="<sas_url_to_source_C>",
targets=[
TranslationTarget(target_url="<sas_url_to_target_fr>", language="fr"),
TranslationTarget(target_url="<sas_url_to_target_de>", language="de")
]
)
]
document_translation_client = DocumentTranslationClient("<endpoint>", AzureKeyCredential("<api_key>"))
poller = document_translation_client.begin_translation(my_input)
Opmerking: de target_url voor elke doeltaal moet uniek zijn.
Als u documenten onder een map wilt vertalen of alleen bepaalde documenten wilt vertalen, raadpleegt u sample_begin_translation_with_filters.py. Raadpleeg de servicedocumentatie voor alle ondersteunde talen.
Long-Running bewerkingen
Langlopende bewerkingen zijn bewerkingen die bestaan uit een initiële aanvraag die naar de service wordt verzonden om een bewerking te starten, gevolgd door het pollen van de service met intervallen om te bepalen of de bewerking is voltooid of mislukt, en of deze is geslaagd, om het resultaat te verkrijgen.
Methoden voor het vertalen van documenten worden gemodelleerd als langlopende bewerkingen.
De client maakt een begin_<method-name>
methode beschikbaar die een DocumentTranslationLROPoller
of AsyncDocumentTranslationLROPoller
retourneert. Aanroepers moeten wachten tot de bewerking is voltooid door het poller-object aan te roepen result()
dat is geretourneerd door de begin_<method-name>
methode.
Voorbeeldcodefragmenten worden gegeven ter illustratie van het gebruik van langlopende bewerkingen hieronder.
Voorbeelden
De volgende sectie bevat verschillende codefragmenten voor enkele van de meest voorkomende taken voor documentvertaling, waaronder:
Uw documenten vertalen
Vertaal alle documenten in de broncontainer naar de doelcontainer. Als u documenten onder een map wilt vertalen of alleen bepaalde documenten wilt vertalen, raadpleegt u sample_begin_translation_with_filters.py.
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient
endpoint = "https://<resource-name>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
source_container_sas_url_en = "<sas-url-en>"
target_container_sas_url_es = "<sas-url-es>"
document_translation_client = DocumentTranslationClient(endpoint, credential)
poller = document_translation_client.begin_translation(source_container_sas_url_en, target_container_sas_url_es, "es")
result = poller.result()
print(f"Status: {poller.status()}")
print(f"Created on: {poller.details.created_on}")
print(f"Last updated on: {poller.details.last_updated_on}")
print(f"Total number of translations on documents: {poller.details.documents_total_count}")
print("\nOf total documents...")
print(f"{poller.details.documents_failed_count} failed")
print(f"{poller.details.documents_succeeded_count} succeeded")
for document in result:
print(f"Document ID: {document.id}")
print(f"Document status: {document.status}")
if document.status == "Succeeded":
print(f"Source document location: {document.source_document_url}")
print(f"Translated document location: {document.translated_document_url}")
print(f"Translated to language: {document.translated_to}\n")
else:
print(f"Error Code: {document.error.code}, Message: {document.error.message}\n")
Meerdere invoer vertalen
Begin met het vertalen van documenten in meerdere broncontainers naar meerdere doelcontainers in verschillende talen.
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient, DocumentTranslationInput, TranslationTarget
endpoint = "https://<resource-name>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
source_container_sas_url_de = "<sas-url-de>"
source_container_sas_url_en = "<sas-url-en>"
target_container_sas_url_es = "<sas-url-es>"
target_container_sas_url_fr = "<sas-url-fr>"
target_container_sas_url_ar = "<sas-url-ar>"
document_translation_client = DocumentTranslationClient(endpoint, credential)
poller = document_translation_client.begin_translation(
[
DocumentTranslationInput(
source_url=source_container_sas_url_en,
targets=[
TranslationTarget(target_url=target_container_sas_url_es, language="es"),
TranslationTarget(target_url=target_container_sas_url_fr, language="fr"),
],
),
DocumentTranslationInput(
source_url=source_container_sas_url_de,
targets=[
TranslationTarget(target_url=target_container_sas_url_ar, language="ar"),
],
)
]
)
result = poller.result()
for document in result:
print(f"Document ID: {document.id}")
print(f"Document status: {document.status}")
if document.status == "Succeeded":
print(f"Source document location: {document.source_document_url}")
print(f"Translated document location: {document.translated_document_url}")
print(f"Translated to language: {document.translated_to}\n")
else:
print(f"Error Code: {document.error.code}, Message: {document.error.message}\n")
Vertaalbewerkingen weergeven
Inventariseer de vertaalbewerkingen die voor de resource zijn ingediend.
from azure.core.credentials import AzureKeyCredential
from azure.ai.translation.document import DocumentTranslationClient
endpoint = "https://<resource-name>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
document_translation_client = DocumentTranslationClient(endpoint, credential)
operations = document_translation_client.list_translation_statuses() # type: ItemPaged[TranslationStatus]
for operation in operations:
print(f"\nID: {operation.id}")
print(f"Status: {operation.status}")
print(f"Created on: {operation.created_on}")
print(f"Last updated on: {operation.last_updated_on}")
print(f"Total number of translations on documents: {operation.documents_total_count}")
print(f"Total number of characters charged: {operation.total_characters_charged}")
print("Of total documents...")
print(f"{operation.documents_failed_count} failed")
print(f"{operation.documents_succeeded_count} succeeded")
print(f"{operation.documents_canceled_count} canceled")
Zie dit voorbeeld voor meer informatie over het gebruik van de documentomzettingsclientbibliotheek met Azure Storage Blob om documenten te uploaden, SAS-tokens voor uw containers te maken en de voltooide vertaalde documenten te downloaden. Houd er rekening mee dat u de bibliotheek azure-storage-blob moet installeren om dit voorbeeld uit te voeren.
Geavanceerde onderwerpen
De volgende sectie biedt enkele inzichten voor een aantal geavanceerde vertaalfuncties, zoals woordenlijsten en aangepaste vertaalmodellen.
Glossaria
Woordenlijsten zijn domeinspecifieke woordenlijsten. Als u bijvoorbeeld bepaalde medische documenten wilt vertalen, hebt u mogelijk ondersteuning nodig voor de vele woorden, terminologie en idiomen op medisch gebied die u niet kunt vinden in de standaardvertalingswoordenlijst, of u hebt gewoon een specifieke vertaling nodig. Daarom biedt Document Translation ondersteuning voor woordenlijsten.
Woordenlijstbestand maken
Documentvertaling ondersteunt woordenlijsten in de volgende indelingen:
Bestandstype | Extensie | Beschrijving | Voorbeelden |
---|---|---|---|
Tab-Separated waarden/TAB | .tsv, .tab | Lees meer op wikipedia | glossary_sample.tsv |
waarden Comma-Separated | .csv | Lees meer op wikipedia | glossary_sample.csv |
Localization Interchange File Format | .xlf, .xliff | Lees meer op wikipedia | glossary_sample.xlf |
Bekijk hier alle ondersteunde indelingen.
Woordenlijsten gebruiken in documentvertaling
Als u woordenlijsten wilt gebruiken met documentvertaling, moet u eerst het woordenlijstbestand uploaden naar een blobcontainer en vervolgens de SAS-URL naar het bestand opgeven, zoals in de codevoorbeelden sample_translation_with_glossaries.py.
Aangepaste vertaalmodellen
In plaats van de engine van documentvertaling te gebruiken voor vertaling, kunt u uw eigen aangepaste Azure-machine-/deep learning-model gebruiken.
Een aangepast vertaalmodel maken
Volg de instructies hier voor meer informatie over het maken, inrichten en implementeren van uw eigen aangepaste Azure-vertaalmodel: Een aangepast model bouwen, implementeren en gebruiken voor vertaling
Een aangepast vertaalmodel gebruiken met documentvertaling
Als u een aangepast vertaalmodel wilt gebruiken met documentvertaling, moet u eerst uw model maken en implementeren. Volg vervolgens het codevoorbeeld sample_translation_with_custom_model.py voor gebruik met documentvertaling.
Problemen oplossen
Algemeen
De clientbibliotheek documentvertaling genereert uitzonderingen die zijn gedefinieerd in Azure Core.
Logboekregistratie
Deze bibliotheek maakt gebruik van de standaardbibliotheek voor logboekregistratie voor logboekregistratie.
Basisinformatie over HTTP-sessies (URL's, headers, enzovoort) wordt geregistreerd op INFO
niveau.
Gedetailleerde DEBUG
logboekregistratie op niveau, inclusief aanvraag-/antwoordteksten en niet-bewerkte headers, kan worden ingeschakeld op de client of per bewerking met het logging_enable
trefwoordargument.
Bekijk hier de volledige documentatie voor SDK-logboekregistratie met voorbeelden.
Optionele configuratie
Optionele trefwoordargumenten kunnen worden doorgegeven op het niveau van de client en per bewerking. In de naslagdocumentatie van Azure Core worden de beschikbare configuraties beschreven voor nieuwe pogingen, logboekregistratie, transportprotocollen en meer.
Volgende stappen
De volgende sectie bevat verschillende codefragmenten die algemene patronen illustreren die worden gebruikt in de Python-clientbibliotheek voor documentomzetting. Meer voorbeelden vindt u in de map voorbeelden .
Meer voorbeeldcode
Deze codevoorbeelden tonen algemene scenariobewerkingen met de Azure Document Translation-clientbibliotheek.
- Clientverificatie: sample_authentication.py
- Begin met het vertalen van documenten: sample_begin_translation.py
- Vertalen met meerdere invoerwaarden: sample_translate_multiple_inputs.py
- De status van documenten controleren: sample_check_document_statuses.py
- Alle ingediende vertaalbewerkingen weergeven: sample_list_translations.py
- Een aangepaste woordenlijst toepassen op vertaling: sample_translation_with_glossaries.py
- Gebruik Azure Blob Storage om vertaalresources in te stellen: sample_translation_with_azure_blob.py
Asynchrone voorbeelden
Deze bibliotheek bevat ook een volledige set asynchrone API's. Als u deze wilt gebruiken, moet u eerst een asynchroon transport installeren, zoals aiohttp. Asynchrone clients bevinden zich onder de azure.ai.translation.document.aio
naamruimte.
- Clientverificatie: sample_authentication_async.py
- Begin met het vertalen van documenten: sample_begin_translation_async.py
- Vertalen met meerdere invoerwaarden: sample_translate_multiple_inputs_async.py
- De status van documenten controleren: sample_check_document_statuses_async.py
- Alle ingediende vertaalbewerkingen weergeven: sample_list_translations_async.py
- Een aangepaste woordenlijst toepassen op vertaling: sample_translation_with_glossaries_async.py
- Gebruik Azure Blob Storage om vertaalresources in te stellen: sample_translation_with_azure_blob_async.py
Aanvullende documentatie
Zie de documentatie over documentvertaling van Azure Cognitive Services op docs.microsoft.com voor uitgebreidere documentatie over Azure Cognitive Services-documentvertaling .
Bijdragen
Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.
Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.
Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie de Veelgestelde vragen over de gedragscode voor meer informatie of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.
Azure SDK for Python