Libreria client di Traduzione documenti di Azure per Python - versione 1.0.0
Traduzione documenti di Servizi cognitivi di Azure è un servizio cloud che può essere usato per tradurre più documenti complessi tra lingue e dialetti mantenendo al tempo stesso la struttura e il formato dei dati originali del documento. Usare la raccolta client per La traduzione documenti per:
- Tradurre numerosi file di grandi dimensioni da un contenitore Archiviazione BLOB di Azure a un contenitore di destinazione nella lingua preferita.
- Controllare lo stato della traduzione e lo stato di avanzamento di ogni documento nell'operazione di traduzione.
- Applicare un modello di traduzione personalizzato o glossari per adattare la traduzione al caso specifico.
Codice | sorgente Pacchetto (PyPI) | Documentazione | di riferimento sulle APIDocumentazione | del prodotto Campioni
Dichiarazione di non responsabilità
Il supporto dei pacchetti Python di Azure SDK per Python 2.7 è terminato il 01 gennaio 2022. Per altre informazioni e domande, fare riferimento a https://github.com/Azure/azure-sdk-for-python/issues/20691
Introduzione
Prerequisiti
- Python 3.6 o versione successiva è necessario per usare questo pacchetto.
- Per usare questo pacchetto, è necessario avere una sottoscrizione di Azure e una risorsa Translator .
Installare il pacchetto
Installare la libreria client di Traduzione documenti di Azure per Python con pip:
pip install azure-ai-translation-document
Nota: questa versione della libreria client usa per impostazione predefinita la versione 1.0 del servizio
Creare una risorsa per Translator
La funzionalità Traduzione documenti supporta solo l'accesso a servizio singolo . Per accedere al servizio, creare una risorsa Translator.
È possibile creare la risorsa usando
Opzione 1:Portale di Azure
Opzione 2:Interfaccia della riga di comando di Azure. Di seguito è riportato un esempio di come creare una risorsa Translator usando l'interfaccia della riga di comando:
# 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
Autenticare il client
Per interagire con il servizio di funzionalità Traduzione documenti, è necessario creare un'istanza di un client. Un endpoint e le credenziali sono necessari per creare un'istanza dell'oggetto client.
Ricerca dell'endpoint
È possibile trovare l'endpoint per la risorsa Traduttore usando il portale di Azure.
Si noti che il servizio richiede un endpoint di dominio personalizzato. Seguire le istruzioni nel collegamento precedente per formattare l'endpoint: https://{NAME-OF-YOUR-RESOURCE}.cognitiveservices.azure.com/
Ottenere la chiave API
La chiave API è disponibile nel portale di Azure o eseguendo il comando seguente dell'interfaccia della riga di comando di Azure:
az cognitiveservices account keys list --name "resource-name" --resource-group "resource-group-name"
Creare il client con AzureKeyCredential
Per usare una chiave API come credential
parametro, passare la chiave come stringa in un'istanza di 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)
Creare il client con credenziali di Azure Active Directory
AzureKeyCredential
l'autenticazione viene usata negli esempi di questa guida introduttiva, ma è anche possibile eseguire l'autenticazione con Azure Active Directory usando la libreria azure-identity .
Per usare il tipo DefaultAzureCredential illustrato di seguito o altri tipi di credenziali forniti con Azure SDK, installare il azure-identity
pacchetto:
pip install azure-identity
Sarà anche necessario registrare una nuova applicazione AAD e concedere l'accesso alla risorsa Translator assegnando il ruolo all'entità "Cognitive Services User"
servizio.
Al termine, impostare i valori dell'ID client, dell'ID tenant e del segreto client dell'applicazione AAD come variabili di ambiente: 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
)
Concetti chiave
Il servizio Traduzione documenti richiede di caricare i file in un contenitore di origine Archiviazione BLOB di Azure e fornire un contenitore di destinazione in cui è possibile scrivere i documenti tradotti. Altre informazioni sulla configurazione sono disponibili nella documentazione del servizio:
- Configurare i contenitori Archiviazione BLOB di Azure con i documenti
- Facoltativamente, applicare glossari o un modello personalizzato per la traduzione
- Consentire l'accesso all'account di archiviazione con una delle opzioni seguenti:
- Generare token di firma di accesso condiviso nei contenitori (o nei file) con le autorizzazioni appropriate
- Creare e usare un'identità gestita per concedere l'accesso all'account di archiviazione
DocumentTranslationClient
L'interazione con la libreria client Di traduzione documenti inizia con un'istanza DocumentTranslationClient
di .
Il client fornisce operazioni per:
- Creazione di un'operazione di traduzione per tradurre i documenti nei contenitori di origine e scrivere i risultati nei contenitori di destinazione.
- Controllo dello stato dei singoli documenti nell'operazione di traduzione e monitoraggio dello stato di avanzamento di ogni documento.
- Enumerazione di tutte le operazioni di traduzione passate e correnti.
- Identificazione dei formati di glossario e documento supportati.
Input di traduzione
L'input al begin_translation
metodo client può essere fornito in due modi diversi:
- Un singolo contenitore di origine con documenti può essere tradotto in una lingua diversa:
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>")
- In alternativa, è possibile fornire più origini diverse ognuna con le proprie destinazioni.
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)
Nota: il target_url per ogni lingua di destinazione deve essere univoco.
Per tradurre i documenti in una cartella o tradurre solo determinati documenti, vedere sample_begin_translation_with_filters.py. Vedere la documentazione del servizio per tutte le lingue supportate.
Operazioni di Long-Running
Le operazioni a esecuzione prolungata sono operazioni costituite da una richiesta iniziale inviata al servizio per avviare un'operazione, seguita dal polling del servizio a intervalli per determinare se l'operazione è stata completata o non riuscita e, se ha avuto esito positivo, per ottenere il risultato.
I metodi che convertono i documenti vengono modellati come operazioni a esecuzione prolungata.
Il client espone un begin_<method-name>
metodo che restituisce un DocumentTranslationLROPoller
oggetto o AsyncDocumentTranslationLROPoller
. I chiamanti devono attendere il completamento dell'operazione chiamando result()
sull'oggetto poller restituito dal begin_<method-name>
metodo .
Di seguito vengono forniti frammenti di codice di esempio per illustrare l'uso di operazioni a esecuzione prolungata
Esempio
La sezione seguente fornisce diversi frammenti di codice che illustrano alcune delle attività di traduzione documenti più comuni, tra cui:
Tradurre i documenti
Tradurre tutti i documenti nel contenitore di origine nel contenitore di destinazione. Per tradurre i documenti in una cartella o tradurre solo determinati documenti, vedere 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")
Tradurre più input
Iniziare a tradurre con documenti in più contenitori di origine in più contenitori di destinazione in lingue diverse.
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")
Elencare le operazioni di traduzione
Enumerare le operazioni di conversione inviate per la risorsa.
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")
Per informazioni su come usare la libreria client di Traduzione documenti con il BLOB di archiviazione di Azure per caricare documenti, creare token di firma di accesso condiviso per i contenitori e scaricare i documenti tradotti completati, vedere questo esempio. Per eseguire questo esempio, è necessario installare la libreria azure-storage-blob .
Argomenti avanzati
La sezione seguente fornisce alcune informazioni dettagliate per alcune funzionalità di traduzione avanzate, ad esempio glossari e modelli di traduzione personalizzati.
Glossari
I glossari sono dizionari specifici del dominio. Ad esempio, se si desidera tradurre alcuni documenti medici, potrebbe essere necessario il supporto per molte parole, terminologia e idiomi nel campo medico che non è possibile trovare nel dizionario di traduzione standard oppure è sufficiente una traduzione specifica. Questo è il motivo per cui La traduzione documenti fornisce supporto per i glossari.
Come creare un file di glossario
Traduzione documenti supporta i glossari nei formati seguenti:
Tipo di file | Estensione | Descrizione | Esempi |
---|---|---|---|
Valori Tab-Separated/TAB | .tsv, .tab | Altre informazioni su wikipedia | glossary_sample.tsv |
valori Comma-Separated | .csv | Altre informazioni su wikipedia | glossary_sample.csv |
Formato file di interscambio di localizzazione | .xlf, .xliff | Altre informazioni su wikipedia | glossary_sample.xlf |
Visualizzare tutti i formati supportati qui.
Come usare i glossari nella traduzione dei documenti
Per usare i glossari con La traduzione documenti, è prima necessario caricare il file di glossario in un contenitore BLOB e quindi specificare l'URL della firma di accesso condiviso al file come negli esempi di codice sample_translation_with_glossaries.py.
Modelli di traduzione personalizzati
Anziché usare il motore di Traduzione documenti per la traduzione, è possibile usare un modello personalizzato di Azure machine/deep learning personalizzato.
Come creare un modello di traduzione personalizzato
Per altre informazioni su come creare, effettuare il provisioning e distribuire il proprio modello di traduzione di Azure personalizzato, seguire le istruzioni riportate di seguito: Compilare, distribuire e usare un modello personalizzato per la traduzione
Come usare un modello di traduzione personalizzata con la traduzione dei documenti
Per usare un modello di traduzione personalizzato con La traduzione documenti, è prima necessario creare e distribuire il modello, quindi seguire l'esempio di codice sample_translation_with_custom_model.py da usare con La traduzione documenti.
Risoluzione dei problemi
Generale
La raccolta client di Traduzione documenti genererà eccezioni definite in Azure Core.
Registrazione
Questa libreria usa la libreria di registrazione standard per la registrazione.
Le informazioni di base sulle sessioni HTTP (URL, intestazioni e così via) vengono registrate a INFO
livello.
La registrazione dettagliata DEBUG
a livello, inclusi i corpi di richiesta/risposta e le intestazioni non contrassegnate , può essere abilitata nel client o per operazione con l'argomento logging_enable
parola chiave.
Vedere la documentazione completa sulla registrazione sdk con esempi qui.
Configurazione facoltativa
Gli argomenti delle parole chiave facoltativi possono essere passati al client e a livello di operazione. La documentazione di riferimento di azure-core descrive le configurazioni disponibili per tentativi, registrazione, protocolli di trasporto e altro ancora.
Passaggi successivi
La sezione seguente fornisce diversi frammenti di codice che illustrano modelli comuni usati nella libreria client Python di Traduzione documenti. Altri esempi sono disponibili nella directory degli esempi .
Altro codice di esempio
Questi esempi di codice mostrano operazioni di scenario comuni con la libreria client di Traduzione documenti di Azure.
- Autenticazione client: sample_authentication.py
- Iniziare a tradurre documenti: sample_begin_translation.py
- Tradurre con più input: sample_translate_multiple_inputs.py
- Controllare lo stato dei documenti: sample_check_document_statuses.py
- Elencare tutte le operazioni di traduzione inviate: sample_list_translations.py
- Applicare un glossario personalizzato alla traduzione: sample_translation_with_glossaries.py
- Usare Archiviazione BLOB di Azure per configurare le risorse di traduzione: sample_translation_with_azure_blob.py
Esempi asincroni
Questa libreria include anche un set completo di API asincrone. Per usarli, è prima necessario installare un trasporto asincrono, ad esempio aiohttp. I client asincroni vengono trovati nello azure.ai.translation.document.aio
spazio dei nomi.
- Autenticazione client: sample_authentication_async.py
- Iniziare a tradurre documenti: sample_begin_translation_async.py
- Tradurre con più input: sample_translate_multiple_inputs_async.py
- Controllare lo stato dei documenti: sample_check_document_statuses_async.py
- Elencare tutte le operazioni di traduzione inviate: sample_list_translations_async.py
- Applicare un glossario personalizzato alla traduzione: sample_translation_with_glossaries_async.py
- Usare Archiviazione BLOB di Azure per configurare le risorse di traduzione: sample_translation_with_azure_blob_async.py
Documentazione aggiuntiva
Per una documentazione più completa sulla traduzione dei documenti di Servizi cognitivi di Azure, vedere la documentazione relativa alla traduzione dei documenti in docs.microsoft.com.
Contributo
In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, visitare cla.microsoft.com.
Quando si invia una richiesta pull, un bot CLA determina automaticamente se è necessario specificare un contratto CLA e completare la richiesta pull in modo appropriato (ad esempio con un'etichetta e un commento). Seguire le istruzioni specificate dal bot. È sufficiente eseguire questa operazione una sola volta per tutti i repository che usano il contratto CLA Microsoft.
Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento Open Source di Microsoft) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.
Azure SDK for Python