Inside ConveyThis Tech: Tworzenie naszego robota internetowego

Spraw, aby Twoja witryna była wielojęzyczna w 5 minut
Przekaż to demo
Przekaż to demo
My Khanh Pham

My Khanh Pham

Poprawa doświadczenia użytkownika: ConveyThis wprowadza zarządzanie adresami URL

Wielu klientów ConveyThis woli, aby wszystkie adresy URL ich witryn były poprawnie przetłumaczone, co może być trudnym zadaniem, zwłaszcza w przypadku obszernych witryn przetłumaczonych na kilka języków.

Z opinii użytkowników wynika, że dla niektórych klientów rozpoczęcie pierwszych projektów tłumaczenia stron internetowych było nieco oszałamiające. Często pytali, dlaczego na liście tłumaczeń mogą wyświetlać tylko adres URL strony głównej i jak tworzyć tłumaczenia swoich treści.

Wskazywało to na potencjalny obszar do wzmocnienia. Dostrzegliśmy szansę na usprawnienie procesu onboardingu i sprawniejsze zarządzanie projektami. W tamtym momencie brakowało nam jednak konkretnego rozwiązania.

Rezultatem, jak można było się domyślić, było wprowadzenie funkcji zarządzania adresami URL. Umożliwia użytkownikom skanowanie adresów URL ich witryn internetowych i generowanie przetłumaczonych treści za pośrednictwem pulpitu nawigacyjnego ConveyThis , szybko i skutecznie.

Niedawno ta funkcja została przeniesiona z listy tłumaczeń na nową, bardziej elastyczną i potężną stronę zarządzania tłumaczeniami opartą na adresach URL. Uważamy, że nadszedł czas, aby ujawnić historię powstania tej funkcji.

921

Obejmując Golang: podróż ConveyThis w kierunku ulepszonych usług tłumaczeniowych

922

Początek blokady w 2020 roku z powodu pandemii dał mi szansę nauczenia się w końcu języka programowania Golang, który został odłożony na bok z powodu ograniczeń czasowych.

Opracowany przez Google, Golang lub Go zyskuje na popularności w ostatnich latach. Statycznie kompilowany język programowania Golang został zaprojektowany, aby umożliwić programistom tworzenie wydajnego, niezawodnego i współbieżnego kodu. Jego prostota umożliwia pisanie i utrzymywanie rozbudowanych i skomplikowanych programów bez utraty szybkości.

Zastanawiając się nad potencjalnym projektem pobocznym mającym na celu zapoznanie się z Golangiem, przyszedł mi do głowy robot indeksujący. Spełniał wymienione kryteria i potencjalnie oferował rozwiązanie dla użytkowników ConveyThis. Robot indeksujący lub „bot” to program, który odwiedza witrynę internetową w celu wyodrębnienia danych.

W przypadku ConveyThis naszym celem było opracowanie narzędzia umożliwiającego użytkownikom skanowanie ich witryn i pobieranie wszystkich adresów URL. Dodatkowo chcieliśmy usprawnić proces generowania tłumaczeń. Obecnie użytkownicy muszą odwiedzić swoją witrynę internetową w przetłumaczonym języku, aby je wygenerować, co staje się trudne w przypadku dużych, wielojęzycznych witryn.

Chociaż początkowy prototyp był prosty – program pobierający adres URL jako dane wejściowe i rozpoczynający indeksowanie witryny – był szybki i skuteczny. Alex, CTO ConveyThis, dostrzegł potencjał tego rozwiązania i dał zielone światło dla prac badawczo-rozwojowych w celu dopracowania koncepcji i zastanowienia się, jak zorganizować przyszłą usługę produkcyjną.

Poruszanie się po trendzie bezserwerowym za pomocą Go i ConveyThis

W trakcie finalizowania robota indeksującego sieć zmagaliśmy się z niuansami różnych systemów CMS i integracji. Pojawiło się zatem pytanie – jak najlepiej zaprezentować naszym użytkownikom bota?

Początkowo rozważaliśmy wypróbowane i przetestowane podejście do korzystania z AWS z interfejsem serwera WWW. Pojawiło się jednak kilka potencjalnych problemów. Mieliśmy niepewność co do obciążenia serwera, jednoczesnego korzystania przez wielu użytkowników i naszego braku doświadczenia z hostingiem programów Go.

To skłoniło nas do rozważenia scenariusza hostingu bezserwerowego. Zapewniało to korzyści, takie jak zarządzanie infrastrukturą przez dostawcę i naturalną skalowalność, co czyniło z niego idealne rozwiązanie dla ConveyThis. Oznaczało to, że nie musieliśmy martwić się o pojemność serwera, ponieważ każde żądanie działałoby we własnym izolowanym kontenerze.

Jednak w 2020 r. przetwarzanie bezserwerowe miało 5-minutowy limit. Okazało się to problemem dla naszego bota, który potencjalnie mógł być wymagany do indeksowania dużych witryn e-commerce z wieloma stronami. Na szczęście na początku 2020 roku AWS wydłużył limit do 15 minut, chociaż włączenie tej funkcji okazało się trudnym zadaniem. W końcu znaleźliśmy rozwiązanie, uruchamiając kod bezserwerowy za pomocą SQS – usługi kolejkowania wiadomości AWS.

923

Podróż do interaktywnej komunikacji botów w czasie rzeczywistym z ConveyThis

924

Gdy rozwiązaliśmy dylemat związany z hostingiem, musieliśmy pokonać kolejną przeszkodę. Mieliśmy teraz funkcjonalnego bota, hostowanego w wydajny, skalowalny sposób. Pozostałym zadaniem było przekazanie danych wygenerowanych przez bota naszym użytkownikom.

Dążąc do maksymalnej interaktywności zdecydowałem się na komunikację w czasie rzeczywistym pomiędzy botem a dashboardem ConveyThis. Chociaż taka funkcja nie wymaga czasu rzeczywistego, chciałem, aby nasi użytkownicy otrzymywali natychmiastową informację zwrotną, gdy tylko bot zacznie działać.

Aby to osiągnąć, opracowaliśmy prosty serwer websocket Node.js, hostowany na instancji AWS EC2. Wymagało to pewnych poprawek w bocie do komunikacji z serwerem websocket i automatyzacji wdrażania. Po gruntownych testach byliśmy gotowi do przejścia do produkcji.

To, co zaczęło się jako projekt poboczny, ostatecznie znalazło swoje miejsce w kokpicie. Dzięki wyzwaniom zdobyłam wiedzę w Go i udoskonaliłam swoje umiejętności w środowisku AWS. Uznałem, że Go jest szczególnie przydatny do zadań sieciowych, programowania kooperacyjnego i przetwarzania bezserwerowego, biorąc pod uwagę jego niewielkie zużycie pamięci.

Mamy plany na przyszłość, ponieważ bot przynosi nowe możliwości. Naszym celem jest przepisanie naszego narzędzia do liczenia słów w celu uzyskania lepszej wydajności i potencjalnie wykorzystanie go do rozgrzewania pamięci podręcznej. Mam nadzieję, że spodobało Ci się to spojrzenie na świat technologii ConveyThis tak bardzo, jak mi się podobało dzielenie się nim.

Gotowy żeby zacząć?

Tłumaczenie, to znacznie więcej niż tylko znajomość języków, to złożony proces.

Stosując się do naszych wskazówek i korzystając z ConveyThis , przetłumaczone strony będą rezonować z odbiorcami, czując się rodzimym dla języka docelowego.

Chociaż wymaga to wysiłku, wynik jest satysfakcjonujący. Jeśli tłumaczysz stronę internetową, ConveyThis może zaoszczędzić godziny dzięki automatycznemu tłumaczeniu maszynowemu.

Wypróbuj ConveyThis za darmo przez 7 dni!

gradient 2