言語生成ライブラリから挿入された関数Functions injected from the language generation library

適用対象: SDK v4APPLIES TO: SDK v4

次の記事では、言語生成 (LG) ライブラリから関数を挿入する方法について詳しく説明します。The following article details how to inject functions from the Language generation (LG) library.

ActivityAttachmentActivityAttachment

オブジェクトと型から構築された activityAttachment を返します。Return an activityAttachment constructed from an object and a type.

ActivityAttachment(<collection-of-objects>)
パラメーターParameter 必須Required TypeType 説明Description
<content><content> はいYes objectobject 添付ファイルの情報を含むオブジェクトObject containing the information of the attachment
<type><type> はいYes stringstring 添付ファイルの種類を表す文字列A string representing the type of attachment
戻り値Return value TypeType 説明Description
<activityAttachment><activityAttachment> objectobject 入力から形成された activityAttachmentAn activityAttachment formed from the inputs

:Example:

この例では、オブジェクトのコレクションが activityAttachment に変換されます。This example converts a collection of objects to an activityAttachment.

次のテンプレートがあるとします。Suppose you have the following template:

# externalHeroCardActivity(type, title, value)
[Activity
    attachments = ${ActivityAttachment(json(fromFile('.\\herocard.json')), 'herocard')}
]

また、次の herocard.json があるとします。and the following herocard.json:

{
  "title": "titleContent",
  "text": "textContent",
  "Buttons": [
    {
      "type": "imBack",
      "Title": "titleContent",
      "Value": "textContent",
      "Text": "textContent"
    }
  ],
  "tap": {
    "type": "${type}",
    "title": "${title}",
    "text": "${title}",
    "value": "${value}"
  }
}

関数として externalHeroCardActivity() を呼び出すと、次のようになります。By calling externalHeroCardActivity() as a function:

externalHeroCardActivity('signin', 'Signin Button', 'http://login.microsoft.com')

herocard が返されます。It returns a herocard:

{
    "lgType" = "attachment",
    "contenttype" = "herocard",
    "content" = {
        "title": "titleContent",
        "text": "textContent",
        "Buttons": [
            {
            "type": "imBack",
            "Title": "titleContent",
            "Value": "textContent",
            "Text": "textContent"
            }
        ],
        "tap": {
            "type": "signin",
            "title": "Signin Button",
            "text": "Signin Button",
            "value": "http://login.microsoft.com"
        }
    }
}

expandTextexpandText

オブジェクトのプレーンテキストを評価し、展開されたテキストデータを返します。Evaluate the plain text in an object and return the expanded text data.

expandText(<object>)
パラメーターParameter 必須Required TypeType 説明Description
<object><object> はいYes objectobject 展開するテキストが含まれているオブジェクト。The object with text to expand.
戻り値Return value TypeType 説明Description
<evaluated-result><evaluated-result> objectobject 展開されたテキストデータ。The expanded text data.

Example

この例では、JSON オブジェクトのプレーンテキストを評価し、展開されたテキスト結果を返します。This example evaluates the plain text in a JSON object and returns the expanded text result.

たとえば、次のようなオブジェクトがあるとします。Say you have the following object:

{
  "@answer": "hello ${user.name}",
  "user": {
    "name": "vivian"
  }
}

を呼び出す expandText(@answer) と、オブジェクト hello vivian が生成されます。Calling expandText(@answer) will result in the object hello vivian.

templatetemplate

指定したテンプレート名とスコープの評価結果を返します。Return the evaluated result of given template name and scope.

template(<templateName>, '<param1>', '<param2>', ...)
パラメーターParameter 必須Required TypeType 説明Description
<templateName><templateName> はいYes stringstring テンプレート名を表す文字列A string representing the template name
<param1>,<param2>, ...<param1>,<param2>, ... はいYes ObjectObject テンプレートに渡されるパラメーターThe parameters passed to the template
戻り値Return value TypeType 説明Description
<evaluated-result><evaluated-result> objectobject 関数としてのテンプレートの評価結果The result evaluated from the template as a function

Example

この例では、関数としてテンプレートを呼び出した結果が評価されます。This example evaluates the result of calling the template as a function.

次のテンプレートがあるとします。Suppose you have the following template:

# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}

template("welcome", "DL") を呼び出すと、次のいずれかの結果になります。Calling template("welcome", "DL") will result in one of the following:

  • Hi DLHi DL
  • Hello DLHello DL
  • Hey DLHey DL

fromFilefromFile

指定したファイル内の式の評価結果を返します。Return the evaluated result of the expression in the given file.

fromFile(<filePath>)
パラメーターParameter 必須Required TypeType 説明Description
<filePath><filePath> はいYes stringstring 式を含むファイルの相対パスまたは絶対パスrelative or absolute path of a file contains expressions
戻り値Return value TypeType 説明Description
<result><result> stringstring 評価結果の文字列形式The string representation of the evaluated result

Example

この例では、指定したファイルの結果が評価されます。This example evaluates the result from the given file.

/home/user/test.txt という名前のファイルがあるとします。Suppose you have a file called /home/user/test.txt. ファイル内には、次のものがあります。Inside the file there is the following:

`you have ${add(1,2)} alarms`

fromFile('/home/user/test.txt')

fromFile() 関数によって式が評価され、その結果によって元の式が置換されます。The fromFile() function will evaluate the expression and the result will replace the original expression.

fromFile('/home/user/test.txt') を呼び出すと、文字列 you have 3 alarms になります。Calling fromFile('/home/user/test.txt') results in the string you have 3 alarms.

isTemplateisTemplate

指定したテンプレート名がエバリュエーターに含まれているかどうかを返します。Return whether a given template name is included in the evaluator.

isTemplate(<templateName>)
パラメーターParameter 必須Required TypeType 説明Description
<templateName><templateName> はいYes StringString 調べるテンプレート名A template name to check
戻り値Return value TypeType 説明Description
<result><result> BooleanBoolean 指定したテンプレート名がエバリュエーターに含まれているかどうかWhether the given template name is included in the evaluator

Example

この例では、isTemplate() 関数を使用して、指定したテンプレート名がエバリュエーターに存在するかどうかが調べられます。This example uses the isTemplate() function to check whether a given template name is in the evaluator. たとえば、次の 3 つのテンプレートがあります。For example, here are three templates:

# welcome
- hi

# show-alarms
- 7:am and 8:pm

# add-to-do
- you add a task at 7:pm

を呼び出す isTemplate("welcome") と、がに評価され true ます。Calling isTemplate("welcome") will evaluate to true. を呼び出す isTemplate("delete-to-do") と、がに評価され false ます。Calling isTemplate("delete-to-do") will evaluate to false.

追加情報Additional Information