# 変数の値を設定ノードで計算式を使用する

[**変数の値を設定ノード**](/alli-llm-app-market/app-management/node/assign-value-node.md)で変数の値に計算式を指定することができます。 簡単な数式だけでなく、様々な関数も利用することができます。

この機能を使用するには、まず、[**変数の値を設定ノード**](/alli-llm-app-market/app-management/node/assign-value-node.md)を作成します。「変数を追加」をクリックし、対象の変数を指定して「数式」の形式を選択します。「割り当てられる数式」フィールドに計算式を入力します。 –

<figure><img src="/files/JJ8Jb4GC9zzcV0sGLwoq" alt=""><figcaption></figcaption></figure>

上記の例の様に、数式に変数を含めることもできます。 使用できる演算と関数は以下の通りです。

## 基本的な計算 <a href="#basic-calculations" id="basic-calculations"></a>

* **+, -, \*, /, ( )**
* **%** (係数)\
  例: 100%2 = 0, 100%8 = 4.
* **\*\*** (乗数)\
  例: 100\*\*2 = 10,000.

## 関数 <a href="#basic-functions" id="basic-functions"></a>

すべての関数は、*関数名（）*&#x306E;形式で使用します。 例えばabs（-5）などです。

* **to\_number**: 値を数値形式に変換します。\
  例: to\_number(‘4’) = 4
* **to\_string**: 値を文字列形式に変換します\
  例: to\_string(7) = ‘7’
* **to\_boolean**: 値をブール形式に変換します。\
  例: to\_boolean(1) = True
* **length**: 値の長さを返します。\
  例: length(‘abcde’) = 5
* **abs**: 値の絶対値を返します。\
  例: abs(-5) = 5
* **sin, cos, tan**: sin、cos、tanの値を返します。\
  例: tan(90) = 1
* **ceil, floor, round**: 切り上げ、切り下げ、または切り上げ値を返します。\
  例: floor(2.1) = 2
* **random, random\_int**: raandom（）は、0から1までの乱数値を返します。 random\_int（min、max）は、最小値と最大値の間のランダムな整数値を返します。\
  例: random\_int(-1, 2) = -1, 0, 1, or 2
* **unix\_timestamp**: unix時間を返します。\
  例: unix\_timestamp() = 1601672447

## アドバンスド関数 <a href="#advanced-functions" id="advanced-functions"></a>

以下の関数は、JSONまたは文字列リスト型の変数を編集するために使用されます。 関数に入る値はすべて同じ形式の変数に置き換えられます。 関数で文字列値を使用する場合は、引用符を使用することを忘れないでください。（例:’Allganize’）

### dict <a href="#dict" id="dict"></a>

* **形式**: dict(key1, value1, key2, value2, …)
* キーと値のペアを使用して、JSON型変数の構造を作成します。 キーが存在する場合、関数は値を上書きします。
* **変数のタイプ** : JSON
* **例**: @NAMEが ‘Allganize’ という値を持ち、JSON型の変数を作成したい場合、下記となります。 dict(‘Name’,@NAME,’Email’,’<test@allganize.ai>’) = {‘Name’:’Allganize’, ‘Email’:’<test@allganize.ai>’}

### dict\_set <a href="#dict_set" id="dict_set"></a>

* **形式**: dict\_set(@JSON\_variable, key1, value1, key2, value2…)
* キーと値をJSON変数に追加します。 キーが存在する場合、関数は値を上書きします。
* **変数のタイプ** : JSON
* **例**: @JSON\_VAR が {‘Name’:’Allganize’} を値として持ち、@JSON\_VARに’Email’をキー、’<test@allganize.ai>’を値として追加したい場合、下記となります。 dict\_set(@JSON\_VAR,’Email’,’<test@allganize.ai>’) = {‘Name’:’Allganize’, ‘Email’:’<test@allganize.ai>’}

### dict\_del <a href="#dict_del" id="dict_del"></a>

* **形式**: dict\_del(@JSON\_variable, key)
* JSON変数からキーを削除します。
* **変数のタイプ** : JSON
* **例**: @JSON\_VAR が{‘Name’:’Allganize’, ‘Email’:’<test@allganize.ai>’} を値として持ち、Emailのキーを削除する場合、下記となります。 dict\_del(@JSON\_VAR,’Email’) = {‘Name’:’Allganize’}

### dict\_update <a href="#dict_update" id="dict_update"></a>

* **形式**: dict\_update(JSON\_variable\_1, JSON\_variable\_2)
* 2つのJSON変数をマージします。 2つのJSON変数に同じキーがある場合、後者の値が優先されます。
* **変数のタイプ** : JSON
* **例**: @JSON\_VAR が {‘Name’:’Allganize’, ‘Email’:’<test@allganize.ai>’}を値として持ち、@JSON\_VAR2 が {‘Name’:’Alli’, ‘Type’:’AnswerBot’}を値として持ち、この2つのJSON変数をマージする場合、下記となります。 dict\_update(@JSON\_VAR, @JSON\_VAR2) = {‘Name’:’Alli’, ‘Email’:’<test@allganize.ai>’, ‘Type’:’AnswerBot’}

### json\_loads <a href="#json_loads" id="json_loads"></a>

* **形式**: json\_loads(‘JSON\_form’)
* JSON形式をJSON変数として保存します。
* **変数のタイプ** : JSON
* **例**: json\_loads(‘{“Name”:”Alli”, “Email”:”<test@allganize.ai>”}’)

### json\_dumps <a href="#json_dumps" id="json_dumps"></a>

* **形式**: json\_dumps(@JSON\_variable)
* JSON変数の値を文字列に変換します。
* **変数のタイプ**: 文字列
* **例**: json\_dumps(@JSON\_VAR)

### list <a href="#list" id="list"></a>

* **形式**: list(string1, string2, …)
* 文字列を使用して文字列リスト型の変数を作成します。
* **変数のタイプ**:文字列リスト
* **例**: list(‘Allganize’, ‘Test’) = \[‘Allganize’, ‘Test’]

### list\_append <a href="#list_append" id="list_append"></a>

* **形式**: list\_append(@string\_list\_variable, string1, string2, …)
* 文字列リストに任意の文字列に追加します。
* **変数のタイプ**:文字列リスト
* **例**: @STR\_LIST が 値として\[‘Allganize’, ‘Test’]を持ち、’Alli’という文字列を追加する場合、下記となります。list\_append(@STR\_LIST,”Alli”) = \[‘Allganize’, ‘Test’, ‘Alli’]

### list\_reverse <a href="#list_reverse" id="list_reverse"></a>

* **形式**: list\_reverse(@string\_list\_variable)
* リストの要素の並び順を逆にします。
* **変数のタイプ**:文字列リスト
* **例**: When @STR\_LIST has \[‘Allganize’, ‘Test’] as the variable value, list\_reverse(@STR\_LIST) = \[‘Test’, ‘Allganize’]

### get\_by\_json\_path <a href="#get_by_json_path" id="get_by_json_path"></a>

* **形式**: get\_by\_json\_path(@JSON\_variable, JSON\_path)
* JSON変数からJSONパスを指定することで指定した値を返します。
* **変数のタイプ**: 文字列
* **例**: @JSON\_VAR が 値として {‘Name’:’Allganize’, ‘Email’:’<test@allganize.ai>’} を持ち、Emailの値を返す場合は下記となります。 get\_by\_json\_path(@JSON\_VAR, ‘$.Email’) = ‘<test@allganize.ai>’

### storage\_set / storage\_get <a href="#storage_set-storage_get" id="storage_set-storage_get"></a>

* **形式**: storage\_set(‘key’, @variable) / storage\_get(‘key’)
* storage\_setは、変数値をプロジェクトレベルのキーに保存します。 キーは任意のテキストにすることができます。 保存された値は、storge\_getを使用して取得できます。 値を割り当てる変数は、保存された変数と同じタイプである限り、任意のタイプにすることができます。
* **変数のタイプ**：保存された変数と同じタイプ
* **例**: 文字列の変数の値がstorage\_set（ ‘string’,@string\_variable）を使用して保存されている場合、storage\_get（ ‘string’）を使用してプロジェクト内のスキルまたは顧客の値を取得し、それを文字列変数に割り当てることができます。

### get\_text\_from\_file <a href="#get_text_from_file" id="get_text_from_file"></a>

* **形式**: get\_text\_from\_file( @file\_type\_variables ,clip=n)
* nで指定した数値を最大文字数として、ファイル変数内にアップロードされたファイル内のRaw Textを抽出します。
* **変数のタイプ**: 文字列
* **例**: @FILE\_UPLOADにアップロードしたファイルから最大2000文字まで抽出したい場合、下記となります。get\_text\_from\_file( @FILE\_UPLOAD ,clip=2000)

### contains <a href="#contains" id="contains"></a>

* **形式**: contains(@string\_list\_variable, string)
* 文字列リストにある文字列が含まれているがどうかを確認し、含まれているかをTrue/Falseで返します。
* **変数のタイプ**: True/False, string
* **例**: @STR\_LIST が \[‘Allganize’, ‘Test’] を値として持ち、Allganizeという文字列がリストに含まれているかを確認する場合、下記となります。contains(@STR\_LIST, ‘Allganize’) = ‘True’

### append <a href="#append" id="append"></a>

* **形式**: append(@string\_list\_variable, string)
* 文字列リストに文字列の要素を追加します。
* **変数のタイプ**:文字列リスト
* **例**: @STR\_LIST が \[‘Allganize’, ‘Test’]を要素として持ち、リストにVariableという値を追加したい場合、下記となります。contains(@STR\_LIST, ‘Variable’) = \[‘Allganize’, ‘Test’, ‘Variable’]

### unique <a href="#unique" id="unique"></a>

* **形式**: unique(@string\_list\_variable)
* 文字列リストから重複する値を削除します。
* **変数のタイプ**:文字列リスト
* **例**: @STR\_LIST が \[‘Allganize’, ‘Test’, ‘Test’] を要素として持ち、重複する値を削除したい場合、下記となります。 unique(@STR\_LIST) = \[‘Allganize’, ‘Test’]

### urlencode <a href="#urlencode" id="urlencode"></a>

* **形式**: urlencode(@JSON\_variable)
* JSONの変数をURLにエンコードされた形式に変換します。
* **変数のタイプ**: 文字列
* **例**: @JSON\_VARの中身が {‘key’:’hello world!’}であり、URLにエンコードしたい場合、下記となります。 urlencode(@JSON\_VAR) = ‘key=hello+world%21’

### urldecode <a href="#urldecode" id="urldecode"></a>

* **形式**: urldecode(string)
* urlにエンコードされたstring型の変数をJSON形式に変換します。
* **変数のタイプ**: 文字列とJSON
* **例**: @STRの中身が ‘key=hello+world%21’ であり、JSON形式にエンコードしたい場合、下記となります。urldecode(@STR) = {‘key’:’hello world!’}

### regex\_sub, regex\_isub <a href="#regex_sub-regex_isub" id="regex_sub-regex_isub"></a>

* **形式**: regex\_sub(regex\_pattern, string1, string2) or regex\_isub(regex\_pattern, string1, string2)
* ある文字列にある正規表現パターンを別の文字列に置き換えます。 regex\_subでは大文字と小文字が区別されますが、regex\_isubでは区別されません。
* **変数のタイプ**: 文字列
* **例**: @STRの文字列の値が ‘ooAoO’であり、’o’を大文字・小文字関係なく、Aに置き換えたい場合、下記となります。regex\_isub(r’o{2}’, ‘A’, @STR) = ‘AAA’

### date\_format <a href="#date_format" id="date_format"></a>

* **形式**: date\_format(regex\_date\_format, date)
* 日付を正規表現の日付形式に変換します。
* **変数のタイプ**: 文字列
* **例**: Data型かString型の@DATE が’2020-01-11’を値として持ち、正規表現を用いて特定の日付形式（年-月）に変換したい場合、下記となります。 date\_format(r’%Y-%m’, @DATE) = ‘2020-01’

### to\_date <a href="#to_date" id="to_date"></a>

* **形式**: to\_date(date\_format, YMD\_form(optional))
* 日付を日付形式に変換します。 変換元の日付のフォーマットは下記となります。 YYYYMMDD, YYYY/MM/DD, YYYY-MM-DD, YYYY MM DD, YYYY M D YYYY-M-D, YYYY/M/D, YYMMDD, YY/M/D, YY-M-DD, YY M DD
* オプションのYMDフォームにMDYを入力して、入力した日付形式で年/月/日の順序を変更できます。 たとえば、MMDDYY、MM / DD / YYYYなどを使用できます。 下記の例2を参照してください。
* 0から始まる日付形式は入力できません。
* **変数のタイプ**：文字列または日付形式
* **例1** : String型か数値である@DATEが’20210602’を値として持っており、日付のフォーマットを揃えたい場合、下記となります。 to\_date(@DATE) = ‘2021-06-02’.
* **例2** :String型か数値である@DATEが’060221’を値として持っており、日付のフォーマットを揃えたい場合、下記となります。 to\_date(@DATE, “MDY”) = ‘2021-06-02’.

### date\_add <a href="#date_add" id="date_add"></a>

* **形式**: date\_add(date, number)
* 日付に日数を追加します。
* **変数のタイプ**: 日付
* **例**: Data型かString型の@DATE が’2020-01-11’を値として持ち、2日分日付を進めたい場合、下記となります。 date\_add(@DATE, 2) = ‘2020-01-13’

### today <a href="#today" id="today"></a>

* **形式**: today()
* 本日の日付を返します。
* **変数のタイプ**: 日付、または、文字列
* **例**:本日の日付が2021年4月15日の場合、下記となります。 today() = ‘2021-04-15’

### first\_day\_of\_month <a href="#first_day_of_month" id="first_day_of_month"></a>

* **形式**: first\_day\_of\_month()
* 今月の最初の日付を返します。
* **変数のタイプ**: 日付、または、文字列
* **例**: 本日の日付が2021年4月15日の場合、下記となります first\_day\_of\_month() = ‘2021-04-01’

### last\_day\_of\_month <a href="#last_day_of_month" id="last_day_of_month"></a>

* **形式**: last\_day\_of\_month()
* 今月の最後の日付を返します。
* **変数のタイプ**: 日付、または、文字列
* **例**: 本日の日付が2021年4月15日の場合、下記となります。 last\_day\_of\_month() = ‘2021-04-30’

### find\_all, find\_iall <a href="#find_all-find_iall" id="find_all-find_iall"></a>

* **形式**: find\_all(regex\_pattern, string) or find\_iall(regex\_pattern, string)
* 文字列から正規表現パターンと一致する最初の結果を見つけて結果を返します。 find\_allでは大文字と小文字が区別されますが、find\_iallでは区別されません。
* **変数のタイプ**: 文字列
* **例**: @STR が ‘Type of the OS: Windows’ を値として持ち、OS名のみを抽出したい場合、下記となります。 find\_iall(r'(windows|mac|linux)’, @STR) = ‘Windows’

### substr <a href="#substr" id="substr"></a>

* **形式**: substr(string, number)
* 文字列の最初の\[number]\[数値]文字を返します。
* **変数のタイプ**: 文字列
* **例**: @STR が ‘3months’ を値として持ち、2文字抽出したい場合、下記となります。\
  substr(@STR, 2) = ‘3m’

### get\_user\_groups <a href="#substr" id="substr"></a>

* **形式**: get\_user\_groups()
* アクセスしたメンバーの@GROUPに保存されている値を返します。
* **変数のタイプ**: 文字列または文字列リスト
* **例**: 該当メンバーが”Aグループ”に所属していた場合、下記となります。\
  get\_user\_groups()=\['Aグループ']


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.allganize.ai/alli-llm-app-market/app-management/advanced-flow-example/assign-value-node-general-operations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
