跳到主要内容

多语言

这里的多语言指的是对话中用户所说的语言,即 用户语言。在启动对话树时将 “{_用户语言_}” 系统信息项及其值作为 “启动对话” 接口的 infoitem_params 参数内容传入(参见 “API”),用来指定对话中用户所说的语言(没有传入的话则缺省是 zh-CN 简体中文)。这里 “{_用户语言_}” 系统信息项的值可以是(即用户语言代码):

  • "zh-CN" # 大陆简体中文
  • "zh-HK" # 香港繁体中文
  • "zh-TW" # 台湾繁体中文
  • "en-US" # 美式英语
  • "en-GB" # 英式英语
  • "pt-PT" # 葡萄牙本土葡语
  • "pt-BR" # 巴西葡语
  • "es-ES" # 西班牙本土西语
  • "es-MX" # 墨西哥西语
  • "ja-JP" # 日本日语
  • "ru-RU" # 俄罗斯俄语
  • "ru-BY" # 白俄罗斯俄语
  • "ru-KZ" # 哈萨克斯坦俄语
  • "de-DE" # 德国德语
  • "de-AT" # 奥地利德语
  • "de-CH" # 瑞士德语
  • "fr-FR" # 法国法语
  • "fr-CA" # 加拿大魁北克法语
  • "fr-CH" # 瑞士法语
  • "fr-BE" # 比利时法语
  • "id-ID" # 印尼语
  • "vi-VN" # 越南语
  • "th-TH" # 泰语
  • "ar-SA" # 阿拉伯语-沙特
  • "ar-AE" # 阿拉伯语-阿联酋
  • "it-IT" # 意大利语
  • "nl-NL" # 荷兰语
  • "ko-KR" # 韩语
  • "hi-IN" # 印度印地语
  • "bn-BD" # 孟加拉国孟加拉语
  • "bn-IN" # 印度孟加拉语
  • "ur-PK" # 巴基斯坦乌尔都语
  • "tr-TR" # 土耳其语
  • "pl-PL" # 波兰语
  • "ms-MY" # 马来语
  • "fil-PH" # 菲律宾语
  • "uk-UA" # 乌克兰语
  • "fa-IR" # 波斯语
  • "he-IL" # 希伯来语
  • "ro-RO" # 罗马尼亚语
  • "cs-CZ" # 捷克语
  • "hu-HU" # 匈牙利语
  • "sv-SE" # 瑞典语
  • "da-DK" # 丹麦语
  • "fi-FI" # 芬兰语
  • "nb-NO" # 挪威书面语

在对话树的脚本或代码中,可以使用 ctx.user_lang() 来获取当前的用户语言

对话树

  • 在开发对话树时,开发语言是 zh-CN 简体中文(参见 “快速开始”),即系统的错误信息、日志信息,对话树的节点类型、属性名称,对话树的属性内容(如信息项名称、意图描述、提示内容、系统问题、背景信息、信息项选项等)都应是 zh-CN 简体中文,即 zh-CN 简体中文定义的对话树天然就支持多用户语言

  • 但也有 例外:在 “文本输出” 中提到了 5 种输出给用户的内容,这些内容如果采用 “直接输出” 表达形式时,系统会将这些用 zh-CN 简体中文描述的内容自动翻译成上面指定的用户语言,但有时翻译的效果没法达到要求,此时可以使用轮询输出的定义方式,同时提供多个语言版本,并在每个语言版本前加上前后都有百分号的上述用户语言的代码

    • 比如在 Python 对话树中,原本是:
      welcome_node = chattree.create_node( "#单次交互#", {
      ...
      "系统问题" : "请问您需要什么帮助?",
      ...
      )}
      此时不管是什么用户语言,系统都会自动将 “请问您需要什么帮助?” 翻译过去
    • 现在改为:
      welcome_node = chattree.create_node( "#单次交互#", {
      ...
      "系统问题" : ["%zh-CN%请问您需要什么帮助?", "%en-US%What help do you need?", "%ru-RU%Какая помощь вам нужна?", "%es-ES%¿Qué ayuda necesitas?"],
      ...
      )}
      这样系统就会根据具体的用户语言,选择对应的语言原文进行输出,而非翻译了。这种情况下如果输出内容中含有信息项名称(实际输出时出现信息项名称的地方会被替换为信息项的值,参见 “信息项” 的 “信息项的赋值和使用” 一节),则该信息项名称还应是 zh-CN 简体中文
    • 上述 5 种输出给用户的内容,如果采用 “提示词” 表达形式(即 “<...>”),则不会出现相关问题,仍然全部使用 zh-CN 简体中文表达即可

知识库

  • 在构建知识库时,缺省也是 zh-CN 简体中文,如:
    # 术语概念
    ## 人工智能
    ### 定义
    人工智能(Artificial Intelligence,AI)是指由计算机系统执行的通常需要人类智能的任务。它包括机器学习、自然语言处理、计算机视觉等多个领域。
    ### 同义词/近义词
    AI、智能计算
    ### 与相关概念的区别
    人工智能不同于传统的软件编程,后者是基于明确的规则和逻辑,而人工智能则通过数据驱动的方式进行学习和决策。
    ## 机器学习
    ### 定义
    机器学习(Machine Learning)是人工智能的一个子领域,专注于开发算法,使计算机能够从数据中学习和改进性能,而无需明确编程。
    ### 同义词/近义词
    ML、自适应系统
    ### 与相关概念的区别
    机器学习是实现人工智能的一种方法,但并非所有的人工智能系统都依赖于机器学习。
  • 但要支持其它用户语言,则需要 在知识库中对每一行都标注出相关的用户语言,即在每行开头加上前后都有百分号的相应用户语言的代码,如(同时支持 zh-CN 简体中文、en-US 美式英语、ru-RU 俄语的知识库):
    %zh-CN% # 术语概念
    %en-US% # Terminology Concept
    %ru-RU% # Термины и понятия

    %zh-CN% ## 人工智能
    %en-US% ## AI
    %ru-RU% ## Искусственный интеллект

    %zh-CN% ### 定义
    %en-US% ### Definition
    %ru-RU% ### Определение

    %zh-CN% 人工智能(Artificial Intelligence,AI)是指由计算机系统执行的通常需要人类智能的任务。它包括机器学习、自然语言处理、计算机视觉等多个领域。
    %en-US% Artificial Intelligence (AI) refers to tasks performed by computer systems that usually require human intelligence. It includes machine learning, natural language processing, computer vision and other fields.
    %ru-RU% Искусственный интеллект(Artificial Intelligence,AI)— это задачи, выполняемые компьютерными системами, которые обычно требуют человеческого интеллекта. Он включает такие области, как машинное обучение, обработка естественного языка, компьютерное зрение и другие направления.

    %zh-CN% ### 同义词/近义词
    %en-US% ### Synonyms
    %ru-RU% ### Синонимы / близкие по значению термины

    %zh-CN% AI、智能计算
    %en-US% intelligent computing
    %ru-RU% AI, интеллектуальные вычисления

    %zh-CN% ### 与相关概念的区别
    %en-US% ### Differences from Related Concepts
    %ru-RU% ### Отличия от связанных понятий

    %zh-CN% 人工智能不同于传统的软件编程,后者是基于明确的规则和逻辑,而人工智能则通过数据驱动的方式进行学习和决策。
    %en-US% Artificial intelligence is different from traditional software programming, which is based on clear rules and logic, while artificial intelligence learns and makes decisions in a data-driven manner.
    %ru-RU% Искусственный интеллект отличается от традиционного программирования: традиционное программирование основано на явно заданных правилах и логике, тогда как искусственный интеллект обучается и принимает решения на основе данных.

    %zh-CN% ## 机器学习
    %en-US% ## Machine Learning
    %ru-RU% ## Машинное обучение

    %zh-CN% ### 定义
    %en-US% ### Definition
    %ru-RU% ### Определение

    %zh-CN% 机器学习(Machine Learning)是人工智能的一个子领域,专注于开发算法,使计算机能够从数据中学习和改进性能,而无需明确编程。
    %en-US% Machine Learning is a subfield of artificial intelligence that focuses on developing algorithms that enable computers to learn from data and improve performance without having to be explicitly programmed.
    %ru-RU% Машинное обучение(Machine Learning)— это подраздел искусственного интеллекта, который сосредоточен на разработке алгоритмов, позволяющих компьютерам обучаться на данных и улучшать свою производительность без явного программирования.

    %zh-CN% ### 同义词/近义词
    %en-US% ### Synonyms
    %ru-RU% ### Синонимы / близкие по значению термины

    %zh-CN% ML、自适应系统
    %en-US% adaptive systems
    %ru-RU% ML, адаптивные системы

    %zh-CN% ### 与相关概念的区别
    %en-US% ### Differences from Related Concepts
    %ru-RU% ### Отличия от связанных понятий

    %zh-CN% 机器学习是实现人工智能的一种方法,但并非所有的人工智能系统都依赖于机器学习。
    %en-US% Machine learning is a method for achieving artificial intelligence, but not all artificial intelligence systems rely on machine learning.
    %ru-RU% Машинное обучение является одним из методов реализации искусственного интеллекта, но не все системы искусственного интеллекта зависят от машинного обучения.

信息项的值

  • 信息项的名称是 zh-CN 简体中文,信息项的值则多数情况下会是相应的用户语言
  • 但也有例外
    • 如果一个定义 “用户输入” 信息项的节点是 “#单次交互#” 节点,且该节点后继是若干 “#用户意图#” 节点,则该信息项的值就是这些 “#用户意图#” 节点中某一个的 “意图” 属性的值,是 zh-CN 简体中文
    • 如果一个 “用户输入” 信息项(“#单次交互#” 或 “#多轮交互#” 节点定义的)具有 “信息项选项”,则该信息项的值(可能)就是这些选项的内容,是 zh-CN 简体中文
    • 如果一个 “用户输入” 信息项(“#单次交互#” 或 “#多轮交互#” 节点定义的)具有 “信息项约束” 且该约束中限定了信息项的可选值(是 zh-CN 简体中文),则该信息项的值也是 zh-CN 简体中文