Udostępnij za pośrednictwem


Konfigurowanie i tworzenie wielojęzycznych agentów

Za pomocą programu Copilot Studio można utworzyć agenta komunikującego się z klientami w różnych językach. Możesz skonfigurować wielojęzyczne agenty tak, aby automatycznie wykrywały pożądany język na podstawie ustawień przeglądarki i odpowiadały tym samym językiem, zapewniając klientom bardziej spersonalizowane i angażujące doświadczenie.

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 agenta, zobacz Upgrade do ujednoliconego tworzenia w programie Copilot Studio.

Dodaj języki do agenta

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

  2. Wybierz Dodaj język.

  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 wszystkie tematy i edytowanie zawartości są wykonywane 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. Gdy pobierasz plik lokalizacyjny dla języka wtórnego, wszelkie nowe ciągi tekstów są w języku pierwotnym (en-US), a ciągi wcześniej przetłumaczone pozostają w języku wtórnym (fr-FR). Jednak wcześniej przetłumaczone ciągi tekstów, których oryginalny tekst został zmodyfikowany od czasu ostatniego przesłania pliku lokalizacji, nadal pojawiają się tak, jak zostały przetłumaczone na język wtórny. Ponieważ identyfikatory łańcuchów nie ulegają zmianie, łańcuchy języków wtórnych i języków podstawowych mogą ulec niesynchronizacji po zmianach w języku podstawowym. Upewnij się, że porównanie nowego pliku lokalizacyjnego z wersją, którą ostatnio przesłałeś — aby zidentyfikować zmiany w ciągu ciągu w języku głównym — jest częścią procesu lokalizacji.

Udostępnianie zawartości dynamicznej z Adaptive Cards 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, w jaki wstawiasz zmienną w wiadomości.

  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 on zawartość dynamiczną dla Adaptive Cards.

Dowiedz się więcej w artykule Lokalizowanie zawartości karty adaptacyjnej.

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. Sprawdź, czy Twój agent jest skonfigurowany tak, aby obsługiwać wszystkie języki, których potrzebujesz.

  2. Utwórz temat.

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

  4. 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 opcję Zapisz. Na kanwie zostanie wyświetlony węzeł Monit.

  5. 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.
  6. 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, które pomogą Ci zrozumieć nieoczekiwane zachowania wielojęzyczne agentów.

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 dodajesz wiadomości do agenta w jego języku podstawowym, ale nie przesyłasz tłumaczeń nowych wiadomości, agent pokazuje nieprzetłumaczone zmiany w języku podstawowym. Zawsze upewnij się, że tłumaczenia są aktualne po wprowadzeniu zmian w agencie.

Pliki lokalizacyjne nie zawierają ciągów o mieszanych typach pochodzących z Adaptive Cards. Jeśli musisz zlokalizować Adaptive Cards, gdzie ciąg może zawierać zarówno statyczny tekst, 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

Podczas próby opublikowania wielojęzycznego agenta, jeśli zostanie wyświetlony komunikat o błędzie "Walidacja bota nie powiodła się" z surowym kodem błędu odpowiedzi SynonymsNotUnique, plik lokalizacji zawiera zduplikowane synonimy lub synonim zgodny z 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 wyjątkowy.
  • Jeden z elementów Synonyms ma taką samą wartość jak element DisplayName.

Wszystkie Synonyms dla tej samej jednostki muszą być unikalne i mieć inną nazwę niż ten 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.