変数
ワークフローやチャットフローは、単独ノードで構成されています。多くのノードは入力と出力のアイテムを持っていますが、各ノードの入力および出力情報は一貫性がなく、ダイナミックに変化します。
固定のシンボルを用いて、ダイナミックなコンテンツをどのように参照するのでしょうか? 変数はダイナミックなデータコンテナとして、さまざまな内容を格納・送信し、異なるノードの間で相互に参照され、お互いに情報を移動することができます。
システム変数
システム変数とは、チャットフロー/ワークフロー内でグローバルに使用される事前設定されたシステムレベルのパラメータです。すべてのシステムレベルの変数はsys.
で始まります。
ワークフロー
ワークフローは、以下のシステム変数を提供します:
変数名 | データタイプ | 说明 | メモ |
---|---|---|---|
| Array[File] | ファイルパラメータで、ユーザーがアプリを初めて使用する際にアップロードした画像を保存します。 | 画像のアップロード機能は、アプリケーションの編成ページ右上の「機能」から開始する必要があります。 |
sys.user_id | String | ユーザーIDです。ワークフローアプリを使用する際、システムが自動的にユーザーに一意の識別子を割り当て、異なるユーザーを区別するために使用します。 | |
sys.app_id | String | アプリIDで、システムが各ワークフローアプリに一意の識別子を割り当て、異なるアプリを区別します。このパラメータは現在のアプリの基本情報を記録するために使用されます。 | 開発能力を持つユーザー向けで、このパラメータを使用して異なるワークフローアプリを区別し、特定できます。 |
sys.workflow_id | String | ワークフローIDで、現在のワークフローアプリに含まれるすべてのノード情報を記録するために使用されます。 | 開発能力を持つユーザー向けで、このパラメータを使用してワークフロー内のノード情報を追跡および記録できます。 |
sys.workflow_run_id | String | ワークフローアプリ実行IDで、ワークフローアプリ内の実行状況を記録するために使用されます。 | 開発能力を持つユーザー向けで、このパラメータを使用してアプリの過去の実行状況を追跡できます。 |
ワークフロー内のシステム変数
チャットフロー
チャットフローは、以下のシステム変数を提供します:
変数名 | データタイプ | 説明 | メモ |
---|---|---|---|
sys.query | String | ユーザーが最初に入力したダイアログボックスの内容 | |
sys.files | Array[File] | ユーザーがダイアログボックス内でアップロードした画像 | 画像のアップロード機能は、アプリケーションの構築ページ右上隅の「機能」で有効にする必要があります |
sys.dialogue_count | Number | チャットフロー形式のアプリとの対話中にユーザーが持つ対話のラウンド数。各対話の後、自動的に1つのカウントが増加します。if-elseノードと組み合わせて豊富な分岐ロジックを作成できます。 例えば、Xラウンド目に到達したとき、対話履歴を振り返り分析を提供します。 | |
sys.conversation_id | String | 対話ボックスのインタラクションセッションの一意の識別子で、すべての関連メッセージを同じ対話にグループ化し、LLMが同じトピックとコンテキストに対して持続的な対話を行うことを確認します。 | |
sys.user_id | String | 各アプリユーザーに割り当てられた一意の識別子で、異なる対話ユーザーを区別するために使用されます。 | |
sys.app_id | String | アプリIDで、システムは各ワークフローアプリケーションに一意の識別子を割り当て、異なるアプリを区別し、このパラメータを使用して現在のアプリの基本情報を記録します。 | 開発能力を持つユーザー向けで、このパラメータを使用して異なるワークフローアプリを特定および位置付けることができます。 |
sys.workflow_id | String | ワークフローIDで、現在のワークフローアプリ内に含まれるすべてのノード情報を記録するために使用されます。 | 開発能力を持つユーザー向けで、このパラメータを使用してワークフロー内のすべてのノード情報を追跡および記録できます。 |
sys.workflow_run_id | String | ワークフローアプリケーションの実行IDで、ワークフローアプリケーション内の実行状況を記録するために使用されます。 | 開発能力を持つユーザー向けで、このパラメータを使用してアプリの過去の実行状況を追跡できます。 |
チャットフロー内のシステム変数
環境変数
環境変数は、APIキーやデータベースのパスワードといった機密性の高い情報を保護する際に、ワークフロー実行時に活用されます。 これらはコードに直接書き込むのではなく、ワークフローに設定され、異なる環境間での共有が可能になっています。
環境変数
サポートされるデータ型には以下の3つがあります:
- String 文字列
- Number 数値
- Secret シークレット
環境変数は以下の特徴を持ちます:
- 多くのノードでグローバルに参照可能です;
- 同一の環境変数名を複数設定することはできません;
- ノードの出力変数は基本的に読み取り専用で、書き換えることはできません;
会話変数
会話変数は、マルチターンダイアログシナリオに適した機能ですが、ワークフロー型アプリケーションのインタラクションは線形かつ独立しており、複数回の対話が行われないため、会話変数は主にチャットフロー型アプリケーション(チャットボットからワークフローへの変換)にのみ適用されます。
会話変数は、同一のチャットフローセッション内でアプリ開発者が一時的に保存する特定の情報を定義し、現在のワークフロー内のマルチターンダイアログ全体でその情報を参照可能にします。 具体例としては、コンテキスト、ダイアログボックスにアップロードされたファイル(近日公開予定)、ユーザーがダイアログ中に入力した好みなどが含まれます。これはLLMに随時参照できる「メモ帳」を提供し、LLMのメモリエラーによる情報のずれを防ぐためのものです。
例えば、ユーザーが最初の対話で設定した言語を会話変数に保存すれば、LLMはその情報を参照し、続く対話で指定された言語でユーザーに返信することが可能です。
会話変数は以下の6つのデータ型をサポートしています:
- String 文字列
- Number 数値
- Object オブジェクト
- Array[string] 文字列の配列
- Array[number] 数値の配列
- Array[object] オブジェクトの配列
会话变量具有以下特性:
- 会話変数はほとんどのノード内でグローバルに参照可能です。
- 会話変数の書き込みには変数代入ノードを使用する必要があります;
- 会話変数は読み書き可能な変数です;
会話変数と変数代入ノードの具体的な使用方法については、変数代入をご参照ください。
注意事项
- 変数名の重複を避けるため、ノードの命名は独自に設定してください。
- ノードの出力変数は通常固定されており、編集することはできません。