Visual AgentのNotebook上での呼び出しについて

Options
Koji
Koji Partner, Dataiku DSS Core Designer, Registered Posts: 49 Partner

フロー上で作成したVisual AgentをNotebook上でpythonで呼び出して処理の結果をnotebook上で出力させることは可能でしょうか?

例えば、dataset lookupのツールを使えるエージェントを構築し、notebookで作成したエージェントにクエリを渡し結果を出力するというイメージです。

Best Answer

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 234 Dataiker
    edited April 3 Answer ✓

    @Koji さん、投稿していただいたメッセージに気づかず失礼しました🙇‍♂️(なぜか、頂いたメッセージがディスカッションのリストに表示されず、通知も届かず・・)。以下回答させていただきます。

    はい、Visual AgentをPythonコードから呼び出すことは可能です。エージェント自体は通常の https://developer.dataiku.com/latest/api-reference/python/llm-mesh.html#llm-mesh オブジェクトとして取得できるのですが、エージェントのIDを事前に確認する必要があります。

    以下のような実装で、エージェントを呼び出すことができましたので、参考までに共有いたします。

    import dataiku
    
    #始めに利用したいビジュアルエージェントのIDを取得しておく必要あり
    agent_name = "ローン情報問合せ エージェント"
    project_id = "FINAIADVISOR"
    agent_list = dataiku.api_client().get_project(project_id).list_llms(purpose='GENERIC_COMPLETION', as_type='listitems')
    
    # 追記: 'friendlyName' というのは、リストに入っているディクショナリーのキーであるため、そのままの値で利用してください!
    agent_model = [model for model in agent_list if model['friendlyName'].endswith(agent_name)]
    agent_id = agent_model[0].id
    
    #あとは、通常のLLM Mesh オブジェクトとして利用可能
    v_agent = dataiku.api_client().get_project(project_id).get_llm(agent_id)
    response = v_agent.new_completion().with_message("お客様ID:79478のローン申請について、承認状況を教えてください?", role='user').execute()
    print(response.text)
    

Answers

  • Koji
    Koji Partner, Dataiku DSS Core Designer, Registered Posts: 49 Partner

    @Tsuyoshi

    ありがとうございます。追加で質問なのですが。agent_name,model["friendlyName"]はフロー上のどの部分にあたりますでしょうか?

    get_project()の引数はproject_idと認識しています。

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 234 Dataiker
    edited April 3

    @Koji agent_name(ビジュアルエージェントの名前)は、フロー上では添付画像1のように表示されます。

    image.png

    フロー上ではなくても、添付画像2のように「Models & Agents」メニューからもご確認いただけます。

    image.png

    また、"friendlyName" は返ってきたリストに入っているディクショナリーのキーですので、そのままの値でご利用ください。「get_project()の引数はproject_id」というのはご認識の通りです。

    上記、ご質問をいただいた点がわかりやすいように、元のコードを修正しておきました。よろしくお願いいたします。

  • Koji
    Koji Partner, Dataiku DSS Core Designer, Registered Posts: 49 Partner

    @Tsuyoshi

    追加で質問になってしまうのですが、添付されたコードはどのLLMにも適用できるものなのでしょうか?OpenAIからGeminiに変更したところエラーが出るようになってしまいました

    Processing failed, caused by: RequestFailedException: java.io.IOException: Failed to stream LLM completion, caused by: IOException: Request failed: Code: 400 msg= 400 Bad Request
    
  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 234 Dataiker

    @Koji LLM Mesh API経由で、標準のLLMコネクション(Vertex AI - Gemini)を利用した場合に、エラーが発生するということですね。そうしますと、設定内容やログの詳細をもう少し確認する必要があると考えられます。

    今回は具体的なエラーが発生している状況ですので、Dataikuサポートにお問合せいただくことが可能と考えております。お手数ですが、お客様・パートナー様に共有されているガイドラインに沿って、具体的な実装内容とエラー情報を添えていただきまして、技術サポートへのお問合せを頂けますと幸いです。

  • Koji
    Koji Partner, Dataiku DSS Core Designer, Registered Posts: 49 Partner

    @Tsuyoshi

    承知しました。

    ちなみパートナー向けの技術サポートへのガイドラインについて所在などご教授いただくこと可能でしょうか?失念してしまい、申し訳ありません。

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 234 Dataiker
    edited May 2

    @Koji 承知しました。こちらは、別途DMさせていただきます。よろしくお願いいたします!

    ちなみパートナー向けの技術サポートへのガイドラインについて所在などご教授いただくこと可能でしょうか?

  • Koji
    Koji Partner, Dataiku DSS Core Designer, Registered Posts: 49 Partner

    サポートに確認したところ現状、Vertex AI(Gemini)で設定したエージェントの呼び出しがコードできないのは不具合のようでした。将来的なDSSバージョンアップで修正対応するそうです

Setup Info
    Tags
      Help me…