Skip to main content

ワークフローアプリケーション

ワークフローは、複雑なタスクを順序付けされたステップに分解することでシステムの複雑さを軽減します。Alibaba Cloud Model Studio では、ワークフローを使用して大規模モデル、API、Function Compute などのノードを組み合わせることで、コーディングコストを削減できます。

アプリケーション

ワークフローアプリケーションの利用理由

ワークフローは、複雑なタスクを一連のステップに分解することでシステムの複雑さを軽減します。Model Studio 上でワークフローアプリケーションを作成すると、実行順序を定義し、各ステップの責任を割り当て、依存関係を指定することでプロセスを自動化・最適化できます。 ワークフローアプリケーションの一般的なユースケースは以下のとおりです。
  • 旅行計画:ワークフロープラグインを使用して目的地などのパラメーターを選択し、フライト、宿泊施設、観光スポットの推奨を含む旅行プランを自動生成できます。
  • レポート分析:複雑なデータセットに対して、データ処理、分析、可視化のプラグインを組み合わせて、構造化されフォーマットされた分析レポートを生成できます。
  • カスタマーサポート:自動化されたワークフローを使用して、問題分類を含む顧客問い合わせを処理し、応答速度と正確性を向上させることができます。
  • コンテンツ作成:記事やマーケティングコピーなどのコンテンツを生成できます。トピックと要件を提供すると、システムが自動的にドラフトを生成します。
  • 教育・トレーニング:ワークフローを使用して進捗追跡と評価を含むパーソナライズされた学習プランを設計し、学生が自分のペースで学習できるようにします。
  • 医療相談:患者が入力した症状に基づき、ワークフローが複数の分析ツールを組み合わせて初期評価を生成するか、関連検査を推奨し、医師のさらなる診断を支援します。

例

例 1:詐欺メッセージの検出

この例では、テキストメッセージが潜在的な詐欺かどうかを判断するワークフローアプリケーションの作成方法を示します。このワークフローは、開始ノード、大規模モデルノード、終了ノードを使用します。
  1. アプリケーション管理ページに移動します。アプリケーションの追加>ワークフローアプリケーション をクリックし、アプリ名を入力してから、今すぐ作成 をクリックします。
  1. 詐欺メッセージを検出するための大規模モデルノードを追加します。 左側のペインから LLM ノードをキャンバスにドラッグし、設定パネルで以下のパラメーターを構成します。他のパラメーターはデフォルト値のままにしてください。
    1. Model Configuration: Qwen-Plus-latest を選択します。
    2. Prompts:
      Analyze the provided message to determine if it is a potential scam. Provide a definitive answer.
       Requirements: Carefully review the message content, focusing on keywords and typical scam patterns, such as requests for urgent transfers, providing personal information, or promising unrealistic benefits.
      Steps:
      1. Identify key elements in the message, including but not limited to the sender's identity, the request made, promised rewards, and any sense of urgency.
      2. Compare the message against the characteristics of known scams to check for similar tactics or language patterns.
      3. Evaluate the overall reasonableness of the message, considering whether the request aligns with standard procedures and common sense.
      4. If the message contains links or attachments, do not click or download them to avoid potential security risks, and warn the user about the dangers of such content.
      Output Format: Clearly state whether the message exhibits characteristics of a scam and briefly explain your reasoning. If a scam is suspected, provide suggestions or preventive measures to protect the user.
      
    3. User Prompt:
      Determine if the message "${sys.query}" is a potential scam.
      
    パネルを閉じて、開始ノードを大規模モデルノードに接続します。
p910525
  1. 大規模モデルノードを終了ノードに接続します。次に、終了ノードをクリックし、設定パネルのエディターで / を入力して Large Model 1/result 変数を挿入します。他のパラメーターはデフォルト値のままにしてください。
p910524
構成例:
image
  1. 右上隅の テスト をクリックします。Your package has been at the pickup station for several days. Please come and collect it. を入力して image をクリックします。ワークフローの実行が完了したら、出力を確認します。
image
  1. 次に、You have a message saying you've won 1 million. Please check it. を入力して image をクリックします。ワークフローの実行後、出力を確認します。
image

例 2:スマートショッピングアシスタント

この例では、モバイル端末、テレビ、冷蔵庫の選択をユーザーに支援するワークフローを使用したスマートショッピングアシスタントの作成方法を示します。このワークフローは、開始ノード、意図分類ノード、大規模モデルノード、終了ノードを使用します。
  1. アプリケーション管理ページに移動します。アプリケーションの追加>ワークフローアプリケーション をクリックし、アプリ名を入力してから、今すぐ作成 をクリックします。
  1. 左側のペインから Intent Classification ノードをキャンバスにドラッグし、設定パネルで以下のパラメーターを構成します。他のパラメーターはデフォルト値のままにしてください。
    • Input Variable: Built-in Variable > query を選択します。
    • Select Model: Qwen-Plus-latest を選択します。
    • Intent Classification: 意図の追加 をクリックして、以下の 3 つの意図を追加します。
      • テレビを購入
      • モバイル端末を購入
      • 冷蔵庫を購入
    • 記憶:会話中に前のチャット内容をモデルが記憶できるようにします。トグル image をオンにして、Custom Cache を選択します。
      現在のノードキャッシュ:モデルは現在のノード内のチャット内容のみを記憶します。
      カスタムキャッシュ:モデルはワークフロー全体で会話を記憶します。
    パネルを閉じて、開始ノードを意図分類ノードに接続します。
p910523
  1. 左側のペインから LLM ノードをキャンバスにドラッグします。設定パネルで以下のパラメーターを構成し、他のパラメーターはデフォルト値のままにしてください。その後、パネルを閉じて、意図分類ノードの 冷蔵庫を購入 出力を 大規模モデル ノードに接続します。
    • Model Configuration: Qwen-Plus-latest を選択します。
    • Prompts:
      You are a smart shopping assistant responsible for recommending refrigerators to customers.
      You must proactively ask the user for refrigerator parameters in the order listed in the [Refrigerator Parameter List] below. Ask for only one parameter at a time, and do not repeat questions for the same parameter.
      If the user provides a value for a parameter, continue to ask about the remaining parameters.
      If the user asks for the definition of a parameter, provide an explanation based on your professional knowledge, and then continue to ask which parameter value they prefer.
      If the user indicates they no longer wish to make a purchase, output: Thank you for visiting. We look forward to serving you next time.
      [Refrigerator Parameter List]
      1. Usage Scenario: [Home, Small commercial, Large commercial]
      2. Capacity: [200L, 300L, 400L, 500L]
      3. Energy Efficiency Rating: [Level 1, Level 2, Level 3]
      After all parameters from the [Refrigerator Parameter List] have been collected, ask: "Are you sure you want to purchase?" while also showing the parameters the customer has selected, for example: For small commercial use|300L|Level 1. Ask if they are sure about the refrigerator with these parameters. If the customer decides not to buy, ask which parameters they want to adjust.
      If the customer confirms the parameters meet their requirements, you must output in the following format:
      [Usage Scenario: Home, Capacity: 300L, Energy Efficiency Rating: Level 1]. Output only the content in this format and no other information.
      
    • User Prompt:
      User's question: ${sys.query}
      
    • 記憶:会話中に前のチャット内容をモデルが記憶できるようにします。トグル image をオンにして、Custom Cache を選択します。
p910522
  1. 左側のペインから LLM ノードをキャンバスにドラッグします。設定パネルで以下のパラメーターを構成し、他のパラメーターはデフォルト値のままにしてください。その後、パネルを閉じて、意図分類ノードの テレビを購入 出力を 大規模モデル ノードに接続します。
    • Model Configuration: Qwen-Plus-latest を選択します。
    • Prompts:
      You are a smart shopping assistant responsible for recommending TVs to customers.
      You must proactively ask the user for TV parameters in the order listed in the [TV Parameter List] below. Ask for only one parameter at a time, and do not repeat questions for the same parameter.
      If the user provides a value for a parameter, continue to ask about the remaining parameters.
      If the user asks for the definition of a parameter, provide an explanation based on your professional knowledge, and then continue to ask which parameter value they prefer.
      If the user indicates they no longer wish to make a purchase, output: Thank you for visiting. We look forward to serving you next time.
      [TV Parameter List]
      1. Screen Size: [50-inch, 70-inch, 80-inch]
      2. Refresh Rate: [60Hz, 120Hz, 240Hz]
      3. Resolution: [1080P, 2K, 4K]
      After all parameters from the [TV Parameter List] have been collected, ask: "Are you sure you want to purchase?" while also showing the parameters the customer has selected, for example: 50-inch|120Hz|1080P. Ask if they are sure about the TV with these parameters. If the customer decides not to buy, ask which parameters they want to adjust.
      If the customer confirms the parameters meet their requirements, you must output in the following format:
      [Screen Size: 50-inch, Refresh Rate: 120Hz, Resolution: 1080P]. Output only the content in this format and no other information.
      
    • User Prompt:
      User's question: ${sys.query}
      
    • 記憶:会話中に前のチャット内容をモデルが記憶できるようにします。トグル image をオンにして、Custom Cache を選択します。
p910521
  1. 左側のペインから LLM ノードをキャンバスにドラッグします。設定パネルで以下のパラメーターを構成し、他のパラメーターはデフォルト値のままにしてください。その後、パネルを閉じて、意図分類ノードの モバイル端末を購入 出力を 大規模モデル ノードに接続します。
    • Model Configuration: Qwen-Plus-latest を選択します。
    • Prompts:
      You are a smart shopping assistant responsible for recommending mobile phones to customers.
      You must proactively ask the user for mobile phone parameters in the order listed in the [Mobile Phone Parameter List] below. Ask for only one parameter at a time, and do not repeat questions for the same parameter.
      If the user provides a value for a parameter, continue to ask about the remaining parameters.
      If the user asks for the definition of a parameter, provide an explanation based on your professional knowledge, and then continue to ask which parameter value they prefer.
      If the user indicates they no longer wish to make a purchase, output: Thank you for visiting. We look forward to serving you next time.
      [Mobile Phone Parameter List]
      1. Usage Scenario: [Gaming, Photography, Watching movies]
      2. Screen Size: [6.4-inch, 6.6-inch, 6.8-inch, 7.9-inch foldable screen]
      3. RAM + Storage Space: [8GB+128GB, 8GB+256GB, 12GB+128GB, 12GB+256GB]
      After all parameters from the [Mobile Phone Parameter List] have been collected, ask: "Are you sure you want to purchase?" while also showing the parameters the customer has selected, for example: For photography|8GB+128GB|6.6-inch. Ask if they are sure about the mobile phone with these parameters. If the customer decides not to buy, ask which parameters they want to adjust.
      If the customer confirms the parameters meet their requirements, you must output in the following format:
      [Usage Scenario: Photography, Screen Size: 6.8-inch, Storage Space: 128GB, RAM Space: 8GB]. Output only the content in this format and no other information.
      
    • User Prompt:
      User's question: ${sys.query}
      
    • 記憶:会話中に前のチャット内容をモデルが記憶できるようにします。トグル image をオンにして、Custom Cache を選択します。
p910519
  1. 左側のペインから Variable Processing ノードをキャンバスにドラッグします。設定パネルで以下のパラメーターを構成し、他のパラメーターはデフォルト値のままにしてください。その後、パネルを閉じて、意図分類ノードの デフォルト 意図出力を 変数処理 ノードに接続します。
    • Output Mode: テキスト出力 を選択します。
    • エディターボックスに以下を入力します。
      Hello! Please tell me if you want to buy a TV, a refrigerator, or a mobile phone.
      
p910518
  1. 3 つの大規模モデルノードと 変数処理 ノードをすべて 終了 ノードに接続します。次に、終了ノードをクリックし、設定パネルのエディターで / を入力して、以下の 4 つの変数を挿入します:Large Model 1/result、Large Model 2/result、Large Model 3/result、および Variable Processing 1/result。他のパラメーターはデフォルト値のままにしてください。
p910518
構成例:
image
  1. アプリケーションをテスト:
    1. 右上隅のテストをクリックします。ダイアログボックスにTell me about your refrigeratorsと入力し、imageをクリックして、出力を表示します。
    2. 次に、Home use を入力して出力を確認します。
    3. 次に、200L を入力して出力を確認します。
    4. 最後に、Level 1 energy efficiency を入力して出力を確認します。
工作流-智能导购

セッションパラメーター

セッション変数はグローバル変数として機能し、ワークフローのライフサイクル全体を通してパラメーターを保存し、任意のノードから参照できます。 キャンバス設定ページの右上隅にある image アイコンをクリックします。
image

ノード

ノードはワークフローアプリケーションのコア機能ユニットです。各ノードは特定のタスク(アクションの実行、条件のトリガー、データの処理、ワークフローの制御など)を実行します。これらのノードをビルディングブロックのように組み合わせて、自動化されたプロセスを作成します。
  • 開始と終了
  • 大規模モデル
  • ナレッジベース
  • API
  • プラグイン
  • Function Compute
  • スクリプト
  • 条件
  • 意図分類
  • フロー出力
  • 変数処理
  • パラメーター抽出
  • エージェントグループ
  • エージェント作成
  • マルチモーダル生成
  • 使用タイミング
    • ワークフローを設計する際、開始ノードと終了ノードで入出力パラメーターの構造と内容を定義します。
  • 使用方法
    • 開始ノード

      コンポーネント

      説明

      事前定義変数

      ワークフローは、ユーザー入力の処理と会話履歴の維持のために以下の事前定義変数を提供します。

      • query:ユーザーのテキスト入力を格納します。

      • historyList:マルチターン対話におけるコンテキストを維持するために会話履歴を格納します。大規模モデルノードや意図分類ノードなど、メモリ機能をサポートするノードでこの変数を使用するには、カスタムキャッシュ を選択します。

      • imageList:画像分析やマルチモーダル対話を可能にするためにユーザーがアップロードした画像を格納します。大規模モデルノードや意図分類ノードなど、メモリ機能をサポートするノードでこの変数を使用するには、カスタムキャッシュ を選択します。

      カスタム変数

      カスタム変数は、ワークフロー用に定義する構造化された入力パラメーターです。テストまたは API 呼び出しからデータを受け取り、後続のノードで参照できます。カスタム変数を作成する際は、以下のパラメーターを構成します。

      • 変数名:意味のある名前を入力します。漢字はサポートされていません。

      • 型:変数のデータ型です。サポートされている型は、String、Boolean、Number、Object、Array(String、Boolean、Number、Object の配列)、File です。

      • 説明:変数の目的と使用タイミングを簡潔に記述します。

    • 終了ノード

      コンポーネント

      説明

      出力モード

      テキスト出力:非構造化コンテンツに適しています。入力ボックスには固定コンテンツを入力するか、/ を入力して変数を参照し、ユーザーに返される最終結果を決定します。ワークフローノードの出力またはセッション変数から変数を取得できます。出力変数を適切にマッピングすることで、ワークフローのデータフローを制御し、正確で完全な最終応答を保証できます。

      JSON Output:JSON 形式で構造化されたコンテンツを出力する場合に適しています。変数名を定義し、テキストを入力するか変数を参照できます。

      ストリーミング出力

      ストリーミング出力スイッチは、テキスト出力モードにのみ適用されます。

      有効にすると、大規模モデルノードやアプリケーションコンポーネントノードからの応答がトークン単位でストリーミングされます。無効にすると、完全な応答が生成された後に一度に返されます。

アプリケーションのテスト

ワークフローを設定した後は、テスト機能を使用して、期待どおりに実行されることを確認できます。右上隅にある テスト ボタンをクリックして、テストパネルを開きます。テストパネルには、さまざまなテストケース向けの複数のテストモードが用意されています。

テキスト会話

テキスト会話はデフォルトのテストモードです。会話履歴を保持し、継続的なマルチターン対話をサポートします。
  1. テストパネル上部のドロップダウンリストからテキスト会話モードを選択します(デフォルトで選択されています)。ワークフローにカスタム変数が含まれている場合、パラメーター構成エリアでその値を入力します。
  2. 入力ボックスにテストコンテンツ(テキストおよびファイル添付)を入力し、Send ボタンをクリックするか Enter キーを押してテストを実行します。
  3. テスト結果を確認します。ノードをクリックして詳細な入力と出力を表示したり、出力フォーマットをテキストと JSON の間で切り替えたりできます。
  4. 会話を続けるには、入力ボックスに次のターンを入力して送信します。新しい会話を開始するには、クリア ボタンをクリックします。

テキスト生成

テキスト生成モードは、シングルターンのインタラクション用です。各テストは独立しており、会話履歴は保持されません。

チェックリスト

チェックリストには、ワークフローに必要な構成が記載されています。 チェックリストを表示するには、キャンバス構成ページの右上隅にある image アイコンをクリックします。
image

アプリケーションのリリース

アプリケーションをリリースすると、API を介して呼び出すか、同じメインアカウントの RAM ユーザーと Web ページとして共有できます。そのためには、エージェントアプリケーション管理ページの右上隅にある 公開 ボタンをクリックします。

API による呼び出し

ワークフローアプリケーションの Publish Channel タブで、API の横にある View API をクリックして、API を使用してエージェントアプリケーションを呼び出す方法を確認します。
注:API を呼び出すには、YOUR_API_KEY をご利用の API キーに置き換える必要があります。
image
API 呼び出しに関する FAQ および情報については、以下のトピックをご参照ください。 現在、ワークフローから Xiyan サービスを呼び出すことはできません。代わりに、API ノードを使用してカスタム API サービスを呼び出してください。
API 呼び出しのタイムアウトは 300 秒で、変更できません。タイムアウトが発生する可能性がある場合は、以下のソリューションを検討してください。
  • 非同期モードの使用:このモードでは、システムがタスク ID を返します。その後、タスク ID を使用して結果を照会することで、同期タイムアウト制限を回避できます。
  • タスクの分割:タスクを複数のステップに分割するか、バッチデータをより小さなチャンクに処理して、単一の実行がタイムアウトしないようにします。

ワークフローのインポートまたはエクスポート

  1. Model Studio ワークフローのインポートまたはエクスポート ワークフローページの上部にある image アイコンをクリックし、Export DSL または 百煉DSLをインポートする を選択します。
    image
  2. Dify ワークフローのインポート Model Studio は、Dify ワークフローをワンクリックでインポートして、簡単に移行および再利用できるようにサポートしています。
    1. ワークフローページの上部にある image アイコンをクリックし、Import Dify DSL を選択します。
      image
    2. 各ノードのパラメーターを調整します。
      image
      ノードの互換性の詳細は以下のとおりです。

      Dify ノード

      マップされた Model Studio ノード

      互換性

      start

      start

      1. sys.query は query にマッピングされます。

      2. sys.dialogue_count は 最大メモリターン数 にマッピングされます。

      LLM

      LLM

      1. モデル:Model Studio は、サポートされていないモデルのモデルフィールドをインポート後にクリアし、手動で選択する必要があります。サポートされているモデルは完全に互換性があります。

      2. プロンプト:Dify のシステムプロンプトは Model Studio のメインプロンプトにマッピングされ、ユーザープロンプトはユーザープロンプトにマッピングされます。

      3. ビジョン機能:完全に互換性があります。

      4. コンテキスト:Model Studio は、Dify のコンテキストからの生フィールドをシステムプロンプトに直接組み込みます。

      knowledge retrieval

      ナレッジベース

      1. 入力:Model Studio は一貫して content フィールドを入力として使用します。

      2. ナレッジベース:Model Studio はインポート後にこのフィールドをクリアします。Model Studio で手動でナレッジベースを関連付ける必要があります。

      3. 取得設定:Dify の Top-k パラメーターは 取得フラグメント数 にマッピングされます。

      Direct Reply

      出力ノード

      完全に互換性があります。

      agent

      なし

      名前のみ保持されます。ノードをクリックして、特定の Model Studio ノードを置き換えとして選択する必要があります。

      Question Classifier

      意図分類

      Model Studio は、非対応モデルのモデルフィールドをクリアするため、手動でモデルを選択する必要があります。対応モデルは完全に互換性があります。

      Iteration

      バッチ処理

      1. 入力: Batch Array にマッピングされます。

      2. 出力変数: Output Variable にマッピングされます。

      loop

      loop

      完全に互換性があります。

      code execution

      スクリプト

      Model Studio は、Python スクリプトと JavaScript スクリプトを区別します。

      Template Transform

      なし

      互換性がありません。Model Studio はカスタムノードを生成します。

      Variable Aggregator

      変数処理

      Aggregate Groups 出力モードの Variable Processing ノードにマッピングされます。

      Document Extractor

      なし

      互換性がありません。Model Studio はカスタムノードを生成します。

      Variable Assignment

      変数設定

      完全に互換性があります。

      Parameter Extractor

      パラメーター抽出

      Model Studio は推論モードをサポートしていません。その他の機能は完全に互換性があります。

      HTTP request

      API

      完全に互換性がありますが、再認証が必要です。

      List Operation

      なし

      互換性がありません。Model Studio はカスタムノードを生成します。

      Tool

      プラグイン、MCP

      互換性がありません。Model Studio はカスタムノードを生成します。

      comment

      なし

      互換性がありません。

      end

      end

      Dify ワークフローに複数の終了ノードが含まれている場合、Model Studio はそれらを単一の変数処理ノードと単一の終了ノードに変換します。

ワークフローバージョンの管理

  1. ワークフロー構成ページの右上隅にある 公開 をクリックします。公開 ダイアログボックスで、1.0.0 などのバージョン情報を入力し、OK をクリックします。
image
  1. ページ上部の Version Management をクリックし、過去のバージョン パネルで、Overwrite Current Draft または Return to Current Version をクリックして、現在のワークフローアプリケーションの異なるバージョンを必要に応じて表示または使用できます。
    上部の このバージョンの DSL をエクスポート をクリックして、選択した過去のバージョンの DSL をエクスポートすることもできます。
image
  1. 任意選択: ノードライブラリ でノードを表示または検索します。
image

ワークフローアプリケーションの削除とコピー

My Applications で、公開済みのアプリケーションカードを見つけ、image アイコンをクリックして、アプリケーションの削除、ワークフローのコピー、アプリケーション名の変更 を行います。

image

よくある質問

  • ワークフローアプリケーション
  • ノード
  1. ワークフロー実行の結果をデータベースに書き込むにはどうすればよいですか? スクリプト変換ノードを使用して、前のノードからの出力をデータベースに書き込みます。
  2. Model Studio でワークフローアプリケーションを構築する際にファイルをアップロードするにはどうすればよいですか? ワークフローアプリケーションに API ノードを追加してファイルをアップロードします。
  3. 画像をアップロードするにはどうすればよいですか? VL モデルを使用して、画像 URL をパラメーターとして渡します。
  4. ワークフローアプリケーション内で非同期タスク API を使用できますか? ワークフローアプリケーションのタイムアウトは 600 秒です。ワークフロー内で非同期タスク API の使用は避けてください。
  5. フロントエンドアプリケーションから Model Studio ワークフロー API を呼び出してストリーミング出力を受信するにはどうすればよいですか? フロントエンド呼び出しは現在サポートされていません。
  6. スタンドアロンの .yaml ファイルを Model Studio ワークフローにインポートできないのはなぜですか? Model Studio はスタンドアロンの .yaml ファイルのインポートをサポートしていません。MD5 ファイルを含む圧縮パッケージを提供する必要があります。問題が発生した場合は、MD5 を再生成することをお勧めします。
  7. Model Studio ワークフローの変数名に中国語を使用できますか? いいえ、変数名に漢字を含めることはできません。
  8. 会話履歴はどのように保存されますか? ワークフローアプリケーションはデータを 1 か月間のみ保存します。会話履歴はご自身で保存する必要があります。session_id の有効期間は 1 時間です。