webappsの挙動について

長戸
長戸 Partner, Registered, Data Haiker Member Posts: 17 Partner

お世話になっております。

※テキストベースでの質問とさせてください。

現在、Pluginでwebappsを作成しています。
body.html, app.js, backend.pyで定義してアプリケーションを動かしています。

backend.pyでLangGraphでワークフローを構築し、その中でAIエージェントを呼び出し、処理を行っています。
プロンプトを送信して回答を生成し、結果を返すという仕組みです。

そこで三点質問させてください。
プロンプトを送信したのは、一回にもかかわらず何度もbackend.pyにリクエストが送られています。
これはwebappsの挙動として正しいでしょうか。
一度、リクエストをbackend.pyに送った後は回答が返ってくるまで、重複してリクエストを送らないようにしたいのですが可能でしょうか。
また、webapps上のフロント画面のデバッグを行いたいのですが、ブラウザの開発者ツールのようなリクエストの詳細なログをトレースできるき機能はございますでしょうか。

Answers

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 265 Dataiker

    以下、コメントさせていただきます。

    プロンプトを送信したのは、一回にもかかわらず何度もbackend.pyにリクエストが送られています。
    これはwebappsの挙動として正しいでしょうか。

    → (Webappの実装内容に応じて、正しい挙動は変わるものと考えられますが)通常は想定に反して何度もbackend.pyにリクエストが送信されることはないと考えられます。

    一度、リクエストをbackend.pyに送った後は回答が返ってくるまで、重複してリクエストを送らないようにしたいのですが可能でしょうか。

    → まずは実装内容の確認が必要ですが、例えば、重複してリクエストを送信しないようにJavaScriptの実装を改善するなどの対応は可能と考えられます。

    また、webapps上のフロント画面のデバッグを行いたいのですが、ブラウザの開発者ツールのようなリクエストの詳細なログをトレースできるき機能はございますでしょうか。

    → Dataiku側では、Webappsフロント画面のデバッグ機能は特に提供しておりませんが、DataikuのWebappsはWebブラウザ上で開発・プレビュー可能です。このため、ご記載のように、Google Chrome等Webブラウザの開発者ツールを利用したデバッグが可能と考えられます。

  • 長戸
    長戸 Partner, Registered, Data Haiker Member Posts: 17 Partner

    ご返信いただきありがとうございます。

    ご指摘いただいた内容も含めて再度コードを確認してみます。
    お忙しい中、アドバイスいただきありがとうございます。

  • 長戸
    長戸 Partner, Registered, Data Haiker Member Posts: 17 Partner

    @Tsuyoshi

    河原崎様
    先日はご返信いただき、誠にありがとうございます。
    重ねてで恐縮ですが、もう一点ご確認させてください。

    webappsにおいてプロンプトを受け取ってから、裏で処理を進める際のタイムアウト値のデフォルト設定などはございますでしょうか。
    Dataikuがマネージドしている範囲で、タイムアウト値の設定等がればご教示いただきたいです。

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 265 Dataiker

    @長戸 さん、お世話になっております。以下、回答させていただきます。

    以下コメントに記載のように、Webappがバックエンド処理を呼び出す場合のタイムアウト値は、デフォルトで60秒が設定されているようです。(この値の変更は不可となります。)
    https://community.dataiku.com/discussion/26764/timeout-in-a-plugin-converted-from-webapp

    そこで、Webappから長時間処理が必要な処理を呼び出したい場合、(Webappの実装内容、利用するプログラミング言語によって対応方法は変わりますが)以下コメントに記載のように、プログラム側で非同期処理を実装する必要があると考えられます。
    https://community.dataiku.com/discussion/31476/timeout-with-dash-webapp-as-model-view-in-plugin

  • 長戸
    長戸 Partner, Registered, Data Haiker Member Posts: 17 Partner

    河原崎様
    ご返信ありがとうございます。
    内容について確認いたします。

  • 長戸
    長戸 Partner, Registered, Data Haiker Member Posts: 17 Partner

    @Tsuyoshi

    お世話になっております。

    app.jsからbackend.pyを呼び出す際に、非同期処理をはさむことで問題を解決することができました。
    フロント側で処理が終了するのを待機するのではなく、制御をフロント側に返して、フロント側からPollingする形でバックエンドの処理を受け取る形にしました。

    ご協力いただきありがとうございました。

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 265 Dataiker

    @長戸 様、結果のご連絡をいただきましてありがとうございます!

    想定通りの処理を実現できたとのことで良かったです👍️引き続き、どうぞよろしくお願いいたします。

Setup Info
    Tags
      Help me…