Udostępnij przez


Konfigurowanie i tworzenie wielojęzycznych agentów

Agenci wielojęzyczni komunikują się z klientami w różnych językach przy zachowaniu całej zawartości w jednym agencie. W wielu przypadkach automatycznie wykrywają żądany język na podstawie ustawienia przeglądarki internetowej użytkownika agenta i odpowiadają w tym samym języku, zapewniając bardziej spersonalizowane i atrakcyjne środowisko dla klientów.

Podczas tworzenia agenta określasz jego język podstawowy.

Po dodaniu języków pomocniczych do agenta odpowiadasz za dostarczanie tłumaczeń komunikatów w tworzonych tematach. W przypadku agentów korzystających z generatywnej orkiestracji, wygenerowane wiadomości są tłumaczone automatycznie.

Gdy klient rozpoczyna sesję z opublikowanym agentem, agent wybiera jeden z jego języków, aby dopasować język określony w kliencie lub przeglądarce klienta. Jeśli agent nie może wykryć klienta lub języka przeglądarki, albo jeśli wykryty język nie jest jednym z języków określonych dla agenta, agent domyślnie przechodzi na swój język podstawowy.

Możesz zaprojektować agenta do zmiany używanego języka podczas konwersacji (zobacz Make an agent switch to another language). Można również skonfigurować agenta, który używa orkiestracji generatywnej, aby dynamicznie przełączać języki zgodnie z językiem używanym w bieżącej turze konwersacji (zobacz Konfigurowanie agenta na potrzeby dynamicznego przełączania języka).

Aby zapoznać się z listą obsługiwanych języków, zobacz Obsługa języka.

Notatka

Klasyczne czatboty obsługują tylko jeden język. Aby uzyskać więcej informacji na temat konwertowania klasycznego czatbota na agent, zobacz Uaktualnianie do ujednoliconego tworzenia treści w Copilot Studio.

Dodaj języki do agenta

  1. Przejdź do strony Ustawienia agenta i wybierz pozycję Języki.

  2. Wybierz pozycję Dodaj języki.

  3. W panelu Dodawanie języków wybierz języki, które chcesz dodać do agenta, a następnie wybierz pozycję Dodaj.

  4. Przejrzyj listę języków i zamknij stronę Ustawienia .

Zarządzanie lokalizacją dla wielojęzycznego agenta

W programie Copilot Studio wykonujesz całą edycję tematów i treści w języku podstawowym agenta. W tej sekcji wyjaśniono, jak pobierać ciągi z agenta i tłumaczyć je na języki pomocnicze agenta. Po załadowaniu przetłumaczonych ciągów możesz przełączyć język w panelu testowym i sprawdzić, czy konwersacje w językach dodatkowych również przebiegają zgodnie z oczekiwaniami.

Przygotowywanie zlokalizowanej zawartości

Po pierwszym pobraniu pliku lokalizacji dla języka pomocniczego wszystkie ciągi znajdują się w języku podstawowym agenta. Po pobraniu pliku lokalizacyjnego użyj go w preferowanym procesie lokalizacji.

  1. Przejdź do strony Ustawienia agenta i wybierz pozycję Języki.

  2. Na stronie Języki na liście języków pomocniczych wybierz pozycję Przekaż dla języka, który chcesz zaktualizować.

  3. W panelu Aktualizuj lokalizacje wybierz format JSON lub ResX, aby pobrać bieżący plik lokalizacji dla tego języka.

    Notatka

    Pobrany plik zawiera najnowszą treść lokalizacji dla agenta. Jeśli musisz pobrać poprzednie wersje pliku lokalizacji, otwórz rozwiązanie agenta.

  4. Otwórz pobrany plik i zastąp ciągi języka podstawowego odpowiednim przetłumaczonym tekstem.

  5. Wróć do panelu Aktualizuj lokalizacje , wybierz pozycję Przeglądaj i przekaż przetłumaczony plik.

  6. Zamknij panel Aktualizuj lokalizacje i stronę Ustawienia .

Aktualizowanie zlokalizowanej zawartości

Jeśli wprowadzisz zmiany w ciągach języka podstawowego, musisz również zaktualizować zawartość w językach pomocniczych. Ten proces obejmuje zarówno nową, jak i zmodyfikowaną zawartość. Zmiany przyrostowe nie są tłumaczone automatycznie. Należy pobrać plik JSON lub ResX języka dodatkowego i zaktualizować nieprzetłumaczone ciągi przy użyciu preferowanego procesu lokalizacji.

Poniższy scenariusz jest typowy dla przepływu pracy dla przetłumaczonej zawartości. Wcześniej przetłumaczono język podstawowy (en-US) na język dodatkowy (fr-FR) oraz dodano i zmodyfikowano zawartość w języku podstawowym. Po pobraniu pliku lokalizacji dla języka pomocniczego cała nowa zawartość jest w języku podstawowym (en-US). Jednak zmodyfikowana treść nadal pojawia się w języku dodatkowym. Ponieważ zmodyfikowana zawartość używa tego samego identyfikatora, należy porównać nowy plik z wcześniej przekazanym plikiem.

Udostępnianie zawartości dynamicznej z kart adaptacyjnych na potrzeby lokalizacji

Pliki lokalizacji nie zawierają ciągów znakowych o mieszanych typach z kart adaptacyjnych. Jeśli musisz zlokalizować kartę adaptacyjną, w której ciąg może zawierać zarówno tekst statyczny, jak i zmienne (zawartość dynamiczna), użyj następującego obejścia. W procedurze pokazano, jak używać węzła Ustaw zmienną tekstową do przechowywania pełnego ciągu ze statycznym tekstem i zmiennymi w zmiennej pośredniej. Następnie odwołujesz się tylko do tej zmiennej pośredniej na karcie adaptacyjnej. Podczas pobierania pliku lokalizacyjnego dla agenta wartość zmiennej pośredniej, wraz z tekstem statycznym i odniesieniami do zmiennej, jest dostępna do procesu lokalizacji jako część działania setVariable.

Aby zapewnić możliwość lokalializacji zawartości dynamicznej karty adaptacyjnej:

  1. Dodaj węzeł Ustaw wartość zmiennej przed kartą adaptacyjną. Ten krok tworzy reprezentację YAML, którą można zaktualizować przy użyciu edytora kodu w celu przekonwertowania węzła na węzeł Ustaw zmienną tekstową . Nie można bezpośrednio tworzyć węzłów typu Ustaw zmienną tekstową na kanwie tworzenia.

  2. W węźle Ustaw wartość zmiennej utwórz nową zmienną, ale nie ustawiaj jeszcze wartości.

  3. Otwórz edytor kodu dla tematu .

  4. W edytorze kodu znajdź część reprezentującą węzeł Ustaw wartość zmiennej i zastąp element kind: SetVariable ciągiem kind: SetTextVariable. Ta zmiana konwertuje węzeł Ustaw wartość zmiennej na węzeł Ustaw zmienną tekstową .

  5. Zamknij edytor kodu.

  6. Wybierz dolne pole węzła Ustaw zmienną tekstową i wprowadź pełny ciąg ze statycznym tekstem i zmiennymi, które mają być wyświetlane na karcie adaptacyjnej. Wstaw zmienną w taki sam sposób, jak wstawienie zmiennej w komunikacie.

  7. Zaktualizuj kartę adaptacyjną przy użyciu odwołania do tej nowej zmiennej.

  8. Zapisz swój temat. Teraz możesz pobrać plik lokalizacji i sprawdzić, czy zawiera zawartość dynamiczną kart adaptacyjnych.

Testowanie wielojęzycznego agenta

  1. Otwórz panel testowy.

  2. Wybierz trzy kropki (...) na górze panelu testowego i wybierz język, który chcesz. Panel testowy ponownie ładuje się, tym razem przy użyciu wybranego języka. Kanwa tworzenia pozostaje w języku podstawowym i nie można zapisać zmian w temacie, dopóki nie przejdziesz z powrotem do języka podstawowego.

  3. Aby przetestować agenta, wprowadź komunikat w wybranym języku.

Możesz również ustawić język przeglądarki na jeden z języków agenta i przejść do wstępnie utworzonej witryny demonstracyjnej. Pokazowa witryna internetowa zostanie otwarta w określonym języku, a agent prowadzi rozmowy w tym języku.

Przełącz agenta do innego języka

Podczas tworzenia można skonfigurować agenta, aby przełączyć się na inny język w trakcie konwersacji. Logika może znajdować się w dowolnym temacie w module agenta. Najlepszą praktyką jest jednak przełączanie języka zaraz po węźle Pytanie, co gwarantuje, że wszystkie kolejne komunikaty aż do następnego węzła Pytanie będą w tym samym języku.

Aby zmienić bieżący język agenta, ustaw User.Languagezmienną systemową na jeden z języków pomocniczych agenta. Ten wybór natychmiast zmienia język, którym posługuje się Twój agent.

Konfigurowanie agenta na potrzeby przełączania języka dynamicznego

Notatka

Ta funkcja jest dostępna tylko dla agentów z włączoną funkcją orkiestracja generatywna.

Agenta można skonfigurować tak, aby wykrywał język używany przez klienta i odpowiadał w tym samym języku. Dzięki tej konfiguracji agent może przełączać języki wiele razy w trakcie jednej konwersacji. Poniższy scenariusz pokazuje, jak skonfigurować agenta do przełączania się między językiem niderlandzkim i angielskim. Można ją rozszerzyć dla dowolnej kombinacji języków obsługiwanych przez agenta.

W tym scenariuszu użyto tematu z wyzwalaczem Otrzymano wiadomość. Wyzwalacz tego tematu umożliwia agentowi sprawdzenie każdej otrzymanej wiadomości. W tym temacie jest używany monit niestandardowy do wykrywania języka i warunku ustawiania zmiennej systemowej języka agenta.

  1. Utwórz temat.

  2. Zastąp domyślny typ wyzwalacza dla tematu typem Otrzymano wiadomość.

  3. Dodaj monit do tematu:

    1. Wybierz ikonę Dodaj węzeł poniżej węzła Wyzwalacz.

    2. Wybierz pozycję Dodaj narzędzie>Nowy monit.

    3. W edytorze komunikatów wprowadź nazwę reprezentatywną dla komunikatu, na przykład "Detect language".

    4. W okienku Instrukcje wprowadź "Określ język, w którym jest zapisywany ten komunikat: ".

    5. W dolnej części okienka Instrukcje wybierz pozycję Dodaj zawartość i wybierz pozycję Tekst. Zostanie wyświetlone okno z zaproszeniem do wprowadzenia nazwy i przykładowego komunikatu.

    6. W polu Nazwa wprowadź ciąg "Message". W polu Przykładowe dane wprowadź ciąg "Komunikat od użytkownika", a następnie wybierz pozycję Zamknij.

    7. W okienku Odpowiedź na model przełącz format danych wyjściowych na format JSON.

    8. Kliknij przycisk Testuj. Twoje polecenie wyświetla literał JSON z pojedynczą właściwością identyfikującą język jako język angielski.

      Zrzut ekranu przedstawiający monit skonfigurowany do wykrywania języka komunikatu.

    9. Wybierz Zapisz. Na kanwie zostanie wyświetlony węzeł Monit.

  4. Skonfiguruj węzeł Prompt:

    1. W polu Dane wejściowe wybierz zmienną systemowąActivity.Text (tekst przychodzącej wiadomości).
    2. W obszarze Dane wyjścioweutwórz nową zmienną o nazwie DetectedLanguage.
  5. Rozgałęzij logikę na podstawie wykrytego języka:

    1. Dodaj warunek poniżej węzła Zachęta.

    2. Oprzyj swój warunek na zmiennej niestandardowej DetectedLanguage.structuredOutput.language, która przechowuje nazwę wykrytego języka.

    3. Dodaj gałąź warunku dla każdego języka, który chcesz wykryć.

    4. W każdej gałęzi dodaj węzeł Ustaw wartość zmiennej , aby odpowiednio ustawić zmienną User.Language systemową. Na poniższej ilustracji przedstawiono temat z warunkiem przełączania się między holenderskim i angielskim.

      Zrzut ekranu przedstawiający temat, który wykrywa i przełącza język agenta.

Rozwiązywanie problemów z agentem wielojęzycznym

Ta sekcja zawiera wskazówki dotyczące nieoczekiwanego zachowania agenta wielojęzycznego.

Wielojęzyczne zachowanie agenta dla języków, które nie zostały skonfigurowane

Jeśli użytkownik skonfiguruje przeglądarkę dla języka, który nie został skonfigurowany dla agenta, agent wróci do jego języka podstawowego.

Podczas tworzenia agenta należy określić język podstawowy agenta. Nie można zmienić języka podstawowego po utworzeniu, ale możesz zmienić region dla języka podstawowego agenta, jeśli jest dostępny więcej niż jeden region.

Wielojęzyczne zachowanie agenta w przypadku brakujących tłumaczeń

Jeśli dodasz komunikaty do agenta w swoim języku podstawowym, ale nie przekażesz tłumaczeń dla nowych komunikatów , agent wyświetli nieprzetłumaczone zmiany w jego języku podstawowym. Zawsze upewnij się, że tłumaczenia są aktualne po wprowadzeniu zmian w agencie.

Pliki lokalizacji nie zawierają ciągów znakowych o mieszanych typach z kart adaptacyjnych. Jeśli musisz zlokalizować karty adaptacyjne, w których ciąg może zawierać zarówno tekst statyczny, jak i zmienne (zawartość dynamiczna), należy użyć obejścia. Dowiedz się, jak przechowywać ciąg mieszanego typu w zmiennej tekstowej przed użyciem go w Karcie Adaptacyjnej.

Błędy podczas publikowania wielojęzycznego agenta

Jeśli podczas próby opublikowania wielojęzycznego agenta zostanie wyświetlony komunikat o błędzie „Walidacja bota nie powiodła się” z nieprzetworzonym kodem błędu odpowiedzi SynonymsNotUnique, plik lokalizacji zawiera zduplikowane synonimy lub synonim pasujący do wartości DisplayName. Ten błąd zwykle występuje, gdy węzeł zawiera Entity.Definition.'closedListItem', a miała miejsce jedna z następujących sytuacji:

  • Jeden z Synonyms elementów nie jest unikatowy.
  • Jeden z elementów Synonyms ma taką samą wartość jak element DisplayName.

Wszystkie Synonyms dla tej samej encji muszą być unikatowe i mieć inną nazwę niż element DisplayName.

Aby rozwiązać ten błąd, przejrzyj plik JSON lub ResX dla języka pomocniczego i zidentyfikuj wszystkie wystąpienia, w których ten warunek może być obecny.