Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate

Företag behöver ofta kommunicera effektivt med en stor bas av kunder, partners och intressenter på flera olika språk. De måste översätta och lokalisera innehåll som marknadsföringsmaterial, produktinnehållstillgångar, driftmanualer och juridiska dokument. Varje affärsenhet i företaget har olika arbetsbelastningar för översättning och hanterar ofta sina egna översättningskrav och leverantörer. Även om detta distribuerade tillvägagångssätt kan ge affärsenheterna översättningsautonomi och flexibilitet, blir det svårt för företag att upprätthålla översättningskonsistens i hela företaget.

Amazon Translate är ett neural maskinöversättning tjänst som levererar snabb, högkvalitativ, prisvärd och anpassningsbar språköversättning. Idag stöder Amazon Translate skalbar språköversättning för över 5,500 XNUMX språkparningar i batch och realtid. Det kan användas för att bygga lösningar som löser utmaningen som företag med flera affärsenheter står inför när de letar efter sätt att påskynda flerspråkiga arbetsflöden med stöd för anpassning.

Till exempel, den BMW Group behövde en enhetlig översättningslösning för att hjälpa sina affärsenheter, såsom försäljning och tillverkning, att använda översättningsteknik i stor skala och ta bort vanliga felöversättningsproblem i hela företaget. Deras lösning med Amazon Translate minskar översättningstiden med över 75 % samtidigt som det ger varje affärsenhet möjlighet att anpassa utdata för att möta deras specifika översättningskrav.

I det här blogginlägget visar vi hur man bygger en enhetlig översättningslösning med anpassningsfunktioner med hjälp av Amazon Translate och andra AWS-tjänster. Vi visar dig också hur du installerar och testar lösningen och hur du kan bygga en anpassningsbar och skalbar översättningslösning för användare beroende på deras avdelnings lokaliseringsbehov.

Lösningsöversikt

Lösningen använder Amazon Translates inbyggda funktioner som realtidsöversättning, automatisk identifiering av källspråk och anpassad terminologi, Använda Amazon API Gateway, dessa funktioner exponeras som en enkel /translate API. Anpassad terminologi låter dig definiera specifika anpassade översättningspar. För att anpassad terminologi ska fungera måste du ladda upp en terminologifil till Amazon Translate. Därför ett annat API /customterm är utsatt.

Lösningen illustrerar två alternativ för översättning: en standardöversättning och en anpassad översättning (med den anpassade terminologifunktionen). Du kan dock ändra dessa alternativ efter behov för att passa dina affärsbehov. Konsumenter kan använda dessa alternativ med API Gateways API-nycklar. När en översättningsbegäran tas emot av API:t validerar den begäran (med hjälp av en AWS Lambda behörighetsfunktion) om den tillhandahållna API-nyckeln är auktoriserad att utföra den begärda typen av översättning. Vi använder en Amazon DynamoDB tabell för att lagra metadatainformation om konsumenter, behörigheter och API-nycklar.

Denna lösning vänder sig till tre persontyper:

  • Standard översättningspersona – Användare inom en affärsenhet som inte har några anpassningskrav. Detta inkluderar standardöversättningsalternativ och funktioner som automatisk språkdetektering av Amazon Translate.
  • Anpassad översättningspersona – Användare inom en affärsenhet som har anpassningskrav. Detta inkluderar alla funktioner för standardöversättning samt möjligheten att anpassa översättningarna med hjälp av en anpassad terminologifil.
  • Admin persona – Stöder det anpassade översättningsalternativet genom att hantera uppladdningen av anpassade terminologifiler men kan inte göra några andra översättnings-API-anrop.

Följande diagram illustrerar den centraliserade översättningslösningen med anpassningsarkitektur.

För användarens översättningspersona inkluderar processen följande åtgärder (den blå banan i föregående diagram):

1a. Ring /translate API och skicka API-nyckeln i API-huvudet. Valfritt, för den anpassade översättningspersonan, kan användaren aktivera anpassad översättning genom att skicka in en valfri frågesträngsparameter (useCustomTerm).

2. API Gateway validerar API-nyckeln.

3. Lambdas anpassade auktoriserare anropas för att validera åtgärden att den medföljande API-nyckeln är tillåten. Till exempel kan en standardöversättningspersona inte be om anpassad översättning, eller så kan en administratör inte utföra någon textöversättning.

4. Lambda-auktoriseraren hämtar användarinformationen från DynamoDB-tabellen och verifierar mot API-nyckeln som tillhandahålls.

5a. Efter validering anropas en annan Lambda-funktion (Translate) för att anropa Amazon Translate API translate_text.

6a. Den översatta texten returneras i API-svaret.

Administratörspersonan kan ladda upp en anpassad terminologifil som kan användas av den anpassade översättningspersonen genom att anropa /customterm API. Arbetsflödesstegen är följande (den gröna banan i föregående diagram):

1b. Ring /customterm API och skicka API-nyckeln i API-huvudet.

2. API Gateway validerar API-nyckeln.

3. Lambdas anpassade auktoriserare anropas för att validera åtgärden att den medföljande API-nyckeln är tillåten. Till exempel kan bara en administratörsperson ladda upp anpassade terminologifiler.

4. Lambda-auktoriseraren hämtar användarinformationen från DynamoDB-tabellen och verifierar mot API-nyckeln som tillhandahålls.

5b. Efter att API-nyckeln har validerats anropas en annan Lambda-funktion (Upload) för att anropa Amazon Translate API import_terminology.

6b. Den anpassade terminologifilen laddas upp till Amazon Translate med ett unikt namn som genereras av Lambda-funktionen.

I följande avsnitt går vi igenom stegen för att distribuera och testa lösningen.

Förutsättningar

För att distribuera lösningen behöver du ett AWS-konto. Om du inte redan har ett AWS-konto kan du skapa en. Din tillgång till AWS-kontot måste ha AWS identitets- och åtkomsthantering (IAM) behörigheter att starta AWS molnformation mallar som skapar IAM-roller.

Observera att du är ansvarig för kostnaden för AWS-tjänsterna som används när du kör den här exempeldistributionen. Många av dessa tjänster (som Amazon Translate, API Gateway och Lambda) kommer med en gratis nivå för att komma igång. För fullständig information, se prissidorna för varje AWS-tjänst som du använder i det här inlägget.

Distribuera lösningen med AWS CloudFormation

Starta den medföljande CloudFormation-mallen för att distribuera lösningen i ditt AWS-konto. Denna stack fungerar bara i us-east-1 or eu-west-1 Regioner. Om du vill distribuera den här lösningen i andra regioner, se GitHub repo och distribuera CloudFormation i din valda region.

  1. Implementera den senaste CloudFormation-mallen genom att följa länken för din föredragna region:
Region CloudFormation Stack
N. Virginia (us-east-1) Knappen Starta stack
Irland (eu-west-1) Knappen Starta stack
  1. Om du uppmanas, logga in med dina AWS-kontouppgifter.
  2. Lämna fälten på Skapa stack sida med deras förifyllda standardvärden.
  3. Välja Nästa.
  4. För Stapla namn, ange namnet på CloudFormation-stacken (för det här inlägget, EnterpriseTranslate).
  5. För DDBTableName¸ ange namnet på DynamoDB-tabellen (EnterpriseTranslateTable).
  6. För apiGatewayName, ange API-gatewayen som skapats av stacken (EnterpriseTranslateAPI).
  7. För apiGatewayStageName, ange miljönamnet för API Gateway (prod).
  8. Välja Nästa.
  9. På granskningssidan markerar du kryssrutorna för att bekräfta skapandet av IAM-resurser. Detta krävs för att CloudFormation ska kunna skapa en roll för att ge åtkomst till de resurser som behövs av stacken och namnge resurserna på ett dynamiskt sätt.
  10. Välja Skapa stack.

Du kan övervaka hur stacken skapas på Händelser flik. Stacken är klar när stackens status visas som CREATE_COMPLETE.

Implementeringen skapar följande resurser (alla med prefix EntTranslate):

  • Ett API Gateway API med två resurser anropade /customterm och /translate, med tre API-nycklar för att representera två översättningspersoner och en administratörspersona
  • En DynamoDB-tabell med tre artiklar för att spegla en konsument med tre olika roller (tre API-nycklar)
  • Flera Lambda-funktioner (med Python 3.9) enligt arkitekturdiagrammet

Efter att resurserna har distribuerats till ditt konto på AWS Cloud kan du testa lösningen.

Samla API-nycklar

Utför följande steg för att samla in API-nycklarna:

  1. Navigera till Utgångarna fliken i CloudFormation-stacken och kopiera nyckelns värde apiGatewayInvokeURL.För att hitta API-nycklarna som skapats av lösningen, titta i DynamoDB-tabellen du just skapade eller navigera till sidan för API-nycklar på API Gateway-konsolen. Det här inlägget använder det senare tillvägagångssättet.
  2. Resurser fliken i CloudFormation-stacken, hitta det logiska ID:t EntTranslateApi för API Gateway och öppna länken under Fysiskt ID kolumn i en ny flik.
  3. Välj på API Gateway-konsolen API-Keys i navigeringsfönstret.
  4. Notera de tre API-nycklarna (standard, anpassad, admin) som genereras av lösningen. Välj till exempel standardnyckel EntTranslateCus1StandardTierKey Och välj Visa länk mot API-nyckelegenskapen.

Nu kan du testa API:erna med valfri öppen källkodsverktyg som du väljer. För det här inlägget använder vi Postman API-testverktyg endast i illustrationssyfte. För detaljer om att testa API med Postman, se API-utvecklingsöversikt.

Test 1: Standardöversättning

För att testa standardöversättnings-API:et skapar du först en POST-förfrågan i Postman.

  1. Välja Lägg till förfrågan i Postman.
  2. Ställ in metodtypen som POST.
  3. Ange API Gateway-anrops-URL från fliken Utdata i den implementerade CloudFormation-stacken.
  4. Lägg till /translate till URL-slutpunkten.
  5. Headers flik, lägg till en ny huvudnyckel som heter x-api-key.
  6. Ange standard API-nyckelvärde (kopierat i Collect API-nycklar-steget).
  7. Kaross fliken, välj Raw och ange en JSON-kropp enligt följande:
    {   "sourceText": "some text to translate",   "targetLanguage": "fr",   "sourceLanguage":"en"}

    sourceLanguage är en valfri parameter. Om du inte tillhandahåller det kommer systemet att ställa in det som auto för automatisk identifiering av källspråket.

  8. Anropa API:et genom att välja Skicka och verifiera resultatet.
    Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

API:t bör köras framgångsrikt och returnera den översatta texten i Kaross del av svarsobjektet.

Test 2: Anpassad översättning med anpassad terminologi

För att testa den anpassade termuppladdningsfunktionen skapar vi först en PUT-förfrågan i Postman.

  1. Välja Lägg till förfrågan i Postman.
  2. Ställ in metodtypen som SÄTTA.
  3. Ange API Gateway-anrops-URL.
  4. Lägg till /customterm till slutet av webbadressen.
  5. Headers flik, lägg till en ny huvudnyckel som heter x-api-key.
  6. Ange administratörs-API-nyckelvärdet (kopierat i Collect API-nycklar-steget).
  7. Kaross fliken ändrar du formatet till binär och ladda upp den anpassade termen CSV-fil. Ett exempel på CSV-fil finns under /Resources mapp i GitHub-repo.
  8. Anropa API:et genom att välja Skicka och verifiera resultatet.
    Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    API:t bör köras framgångsrikt med ett meddelande i avsnittet Bröd i svarsobjektet som säger "Anpassad term har laddats upp framgångsrikt"
  9. Välj på Amazon Translate-konsolen Anpassad terminologi i navigeringsfönstret.
    En anpassad terminologifil borde ha laddats upp och visas i terminologilistan. Filnamnssyntaxen är kund-ID från DynamoDB-tabellen för den valda API-nyckeln följt av en sträng _customterm_1.Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Observera att om du inte använde admin API-nyckeln kommer systemet inte att ladda upp den anpassade termfilen. Nu är du redo att utföra din anpassade översättning.
  10. Välja Lägg till förfrågan i Postman.
  11. Ställ in metodtypen som POST.
  12. Ange API Gateway-anrops-URL.
  13. Lägg till /translate till URL-slutpunkten.
  14. Headers flik, lägg till en ny huvudnyckel som heter x-api-key.
  15. Ange standard API-nyckelvärde.
  16. Kaross flik, ange en JSON-kropp enligt följande:
    {   "sourceText": "some text to translate",   "targetLanguage": "fr",   "sourceLanguage":"en"}

  17. Params lägg till en ny frågesträngsparameter med namnet useCustomTerm med ett värde på 1.
  18. Anropa API:et genom att välja Skicka och verifiera resultatet. API:t bör misslyckas med meddelandet "Obehörig." Detta beror på att du försöker anropa en anpassad översättningsfunktion med en standard persona API-nyckel.
  19. Headers anger du det anpassade API-nyckelvärdet.
  20. Kör testet igen och det ska kunna översättas med den anpassade terminologifilen.

Du kommer också att märka att den här gången behåller den översatta texten ordet "översätta" utan att översätta det (om du använde den medföljande exempelfilen). Detta beror på det faktum att den anpassade terminologifilen som tidigare laddades upp har ordet "translate" i sig, vilket tyder på att den anpassade terminologin ändrade basutdata från Amazon Translate.

Test 3: Lägg till ytterligare konsumenter och affärsenheter

Denna lösning implementerade en konsument (customerA) med tre olika API-nycklar som en del av CloudFormation-stacken. Du kan lägga till ytterligare konsumenter genom att skapa en ny användningsplan i API Gateway och associera nya API-nycklar till denna användningsplan. För mer information om hur du skapar användningsplaner och API-nycklar, se Skapa och använda användningsplaner med API-nycklar. Du kan sedan lägga till dessa API-nycklar som ytterligare poster i DynamoDB-tabellen.

Städa upp

För att undvika framtida avgifter, rensa resurserna du skapade som en del av CloudFormation-stacken:

  1. På AWS CloudFormation-konsolen navigerar du till stacken du skapade.
  2. Välj stapeln och välj Radera stack.

Din stack kan ta lite tid att raderas. Du kan följa dess framsteg på Händelser flik. När raderingen är klar ändras stackens status från DELETE_IN_PROGRESS till DELETE_COMPLETE. Den försvinner sedan från listan.

Överväganden

Tänk på följande när du använder den här lösningen:

  • API-anrop för den här lösningen är långsammare än att anropa Amazon Translate API direkt. Detta beror på att lösningen implementerar ytterligare affärslogik och använder ytterligare tjänster (API Gateway och Lambda).
  • Observera Amazon Translate servicegränser för synkron översättning i realtid och anpassade terminologifiler.
  • Denna lösning är fokuserad på att exponera ett API med hjälp av en API-nyckel. Om du planerar att ta detta till produktionsmiljöer, överväg en autentiseringsmekanism som använder öppna industristandarder (som OIDC) för att autentisera begäran först. För mer information, se Hantera multi-tenant API:er med Amazon API Gateway.

Slutsats

I det här inlägget visade vi hur enkelt det är att utföra realtidsöversättning, ladda upp anpassade terminologifiler och göra anpassade översättningar i Amazon Translate med hjälp av dess inbyggda API:er, och skapade en lösning för att stödja anpassning med API Gateway.

Du kan utöka lösningen med anpassningar som är relevanta för dina affärsbehov. Du kan till exempel tillhandahålla ytterligare funktioner som t.ex Aktiv anpassad översättning använda parallella data via en annan API-nyckel, eller skapa ett cachinglager för att arbeta med den här lösningen för att ytterligare minska kostnaderna för översättningar och tjäna ofta åtkomliga översättningar från en cache. Du kan aktivera API-strypning och hastighetsbegränsning genom att dra fördel av API Gateway-funktioner. Möjligheterna är oändliga, och vi vill gärna höra hur du tar denna lösning till nästa nivå för din organisation genom att skicka in en AWS Kontakta oss begäran. Du kan börja anpassa den här lösningen genom att gå till GitHub repo för den här bloggen.

För mer information om Amazon Translate, besök Amazon Translate resurser att hitta videoresurser och blogginlägg, och även hänvisa till Vanliga frågor om Amazon Translate. Om du är ny på Amazon Translate, prova det med hjälp av Gratis nivå, som erbjuder upp till 2 miljoner tecken per månad gratis under de första 12 månaderna, från och med din första översättningsbegäran.


Om författaren

Accelerera flerspråkiga arbetsflöden med en anpassningsbar översättningslösning byggd med Amazon Translate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Fahad Ahmed är Solutions Architect på Amazon Web Services (AWS) och tar hand om Digital Native Businesses i Storbritannien. Han har 17+ års erfarenhet av att bygga och designa mjukvaruapplikationer. Han hittade nyligen en ny passion för att göra AI-tjänster tillgängliga för massorna.

Tidsstämpel:

Mer från AWS maskininlärning