Een door de gebruiker beheerde woordenlijst implementeren
Met Azure AI Translator-containers kunt u verschillende functies van de Translator-service uitvoeren in uw eigen omgeving en zijn ze ideaal voor specifieke vereisten voor beveiliging en gegevensbeheer.
Het kan voorkomen dat u een container uitvoert met een opnameproces met meerdere lagen wanneer u ontdekt dat u een update naar zins- en/of woordgroepenbestanden moet implementeren. Omdat de standaardterm- en zinsbestanden tijdens runtime worden versleuteld en rechtstreeks in het geheugen worden gelezen, moet u een snelle oplossing voor engineering implementeren om een dynamische update te implementeren. Deze update kan worden geïmplementeerd met behulp van onze door de gebruiker beheerde woordenlijstfunctie:
Als u de oplossing phrasefix wilt implementeren, moet u een woordenlijstbestand voor woordgroepen maken om op te geven dat een vermelde woordgroep op een opgegeven manier wordt vertaald.
Als u de sentfix-oplossing wilt implementeren, moet u een sentfix-woordenlijstbestand maken om een exacte doelomzetting voor een bronzin op te geven.
De phrasefix- en sentfix-bestanden worden vervolgens opgenomen in uw vertaalaanvraag en worden tijdens runtime rechtstreeks in het geheugen gelezen.
Belangrijk
UTF-16 LE is de enige geaccepteerde bestandsindeling voor de mappen met beheerde woordenlijst. Zie Encoding voor meer informatie over het coderen van uw bestanden
Als u handmatig de mapstructuur wilt maken, moet u uw map maken en een naam geven. De map beheerde woordenlijst is gecodeerd in UTF-16 LE BOM-indeling en nestt woordgroepenfix- of sentfix-bron- en doeltaalbestanden. Laten we de map
customhotfix
een naam opgeven. Elke map kan phrasefix- en sentfix-bestanden bevatten. U geeft de bron-() en doeltaalcodessrc
tgt
op met de volgende naamconventie:Indeling van woordenlijstbestand Voorbeeldbestandsnaam { src
}. {tgt
}. {container-woordenlijst}. {phrasefix}.src.snten.es.container-glossary.phrasefix.src.snt { src
}. {tgt
}. {container-woordenlijst}. {phrasefix}.tgt.snten.es.container-glossary.phrasefix.tgt.snt { src
}. {tgt
}. {container-woordenlijst}. {sentfix}.src.snten.es.container-glossary.sentfix.src.snt { src
}. {tgt
}. {container-woordenlijst}. {sentfix}.tgt.snten.es.container-glossary.sentfix.tgt.snt Notitie
- De oplossing phrasefix is een exacte zoek- en vervangbewerking. Een woord of woordgroep die wordt vermeld, wordt vertaald op de manier die is opgegeven.
- De oplossing sentfix is nauwkeuriger en u kunt een exacte doelomzetting voor een bronzin opgeven. De volledige verzonden zin moet overeenkomen met de sentfix-vermelding om een overeenkomst met een zin te maken. Als slechts een deel van de zin overeenkomt, komt de vermelding niet overeen.
- Als u aarzelt om opruimende wijzigingen in zoeken en vervangen aan te brengen, raden we u aan om te beginnen alleen de sentfix-oplossing te gebruiken.
Als u vervolgens woordenlijstvermeldingsupdates dynamisch opnieuw wilt laden, maakt u een
version.json
bestand in decustomhotfix
map. Hetversion.json
bestand moet de volgende parameters bevatten: VersionId. Een geheel getal.Voorbeeldbestand version.json
{ "VersionId": 5 }
Tip
Opnieuw laden kan worden beheerd door de volgende omgevingsvariabelen in te stellen bij het starten van de container:
- HotfixReloadInterval=. De standaardwaarde is 5 minuten.
- HotfixReloadEnabled=. De standaardwaarde is true.
De opdracht docker run gebruiken
Vereiste opties voor docker-run-opdrachten
docker run --rm -it -p 5000:5000 \ -e eula=accept \ -e billing={ENDPOINT_URI} \ -e apikey={API_KEY} \ -e Languages={LANGUAGES_LIST} \ -e HotfixDataFolder={path to glossary folder} {image}
Voorbeeld van docker-run-opdracht
docker run -rm -it -p 5000:5000 \ -v /mnt/d/models:/usr/local/models -v /mnt/d /customerhotfix:/usr/local/customhotfix \ -e EULA=accept \ -e billing={ENDPOINT_URI} \ -e apikey={API_Key} \ -e Languages=en,es \ -e HotfixDataFolder=/usr/local/customhotfix\ mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest