次の方法で共有


Azure AI Foundry ポータルのフロー用 Python ツール

重要

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

プロンプト フロー Python ツールからは、カスタマイズされたコード スニペットが自己完結型の実行可能ノードとして提供されます。 ユーザーは簡単に Python ツールを作成し、コードを編集し、結果を確認できます。

[前提条件]

この機能には ハブ ベースのプロジェクト を使用する必要があります。 Azure AI Foundry プロジェクトはサポートされていません。 「 自分が持っているプロジェクトの種類を確認する方法 」と 「ハブベースのプロジェクトを作成する」を参照してください。

Python ツールを使用してビルドする

  1. Azure AI Foundry でフローを作成するか、開きます。 詳細については、「フローの作成」を参照してください。

  2. [+ Python] を選択し、Python ツールをフローに追加します。

    Azure AI Foundry のフローに追加された Python ツールを示すスクリーンショット。

  3. 入力テーブルで説明されている Python ツールの入力パラメータの値を入力します。 たとえば、[コード] 入力テキスト ボックスに次の Python コードを入力できます。

    from promptflow import tool
    
    @tool
    def my_python_tool(message: str) -> str:
        return 'hello ' + message
    

    詳細については、「Python コード入力の要件」を参照してください。

  4. 必要に応じて、フローにさらにツールを追加します。 または、[実行] を選択してフローを実行します。

  5. 出力については、出力の表で説明します。 Python コード入力の前の例に基づき、入力メッセージが "world" の場合、出力は hello world です。

入力

入力のリストは、コードの保存後、ツール関数の引数に基づいて変わります。 引数と return 値に型を追加すると、ツールで型が正しく表示されます。

名前 タイプ 説明 必須
Code 文字列 Python コード スニペット。 イエス
入力 - ツール関数のパラメータとその割り当ての一覧。 -

出力

出力は Python ツール関数の return 値です。 たとえば、次の Python ツール関数を考えます。

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

入力メッセージが "world" の場合、出力は hello world です。

種類

タイプ Python の例 説明
整数 (int) param: int 整数型
ブール (bool) param: bool ブール型
文字列 param: str 文字列の種類
ダブル param: float Double 型
リスト param: list または param: List[T] List タイプ
オブジェクト param: dict または param: Dict[K, V] オブジェクトの種類
接続 param: CustomConnection 接続の型は特別に処理されます。

Connection 型注釈を持つパラメータは接続入力として扱われます。つまり、次のことを意味します。

  • プロンプト フロー拡張機能には、接続を選択するためのセレクターが表示されます。
  • 実行時に、プロンプト フローは、渡されたパラメータ値から同じ名前の接続を検索しようとします。

Union[...] 型の注釈は接続の型でのみサポートされます。 たとえば param: Union[CustomConnection, OpenAIConnection] です。

Python コード入力の要件

このセクションでは、Python ツールの Python コード入力の要件について説明します。

  • Python ツール コードは、必要なモジュールのインポートを含め、完全な Python コードで構成されている必要があります。
  • Python ツール コードには、実行のエントリ ポイントとして機能する @tool (ツール関数) で修飾した関数を含める必要があります。 @tool デコレーターは、スニペット内で 1 回のみ適用する必要があります。
  • Python ツールの関数パラメータは Inputs セクションで割り当てる必要があります。
  • Python ツール関数には、ツールの出力である return ステートメントおよび値を含める必要があります。

次の Python コードは、ベスト プラクティスの例です。

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Python ツールでカスタム接続を使用する

認証を使用して外部サービスを呼び出す必要がある Python ツールを開発している場合は、プロンプト フローでカスタム接続を使用できます。 これにより、アクセス キーを安全に格納し、Python コードで取得できます。

カスタム接続を作成する

すべての大規模言語モデル API キーまたはその他の必要な資格情報を保存するカスタム接続を作成します。

この機能には ハブ ベースのプロジェクト を使用する必要があります。 Azure AI Foundry プロジェクトはサポートされていません。 「 自分が持っているプロジェクトの種類を確認する方法 」と 「ハブベースのプロジェクトを作成する」を参照してください。

  1. プロジェクトの [管理センター] ページに移動します。

  2. [ハブ] または [プロジェクト] 見出しで、[接続されたリソース] を選択します。

  3. + 新しい接続 を選択します。

  4. [カスタム] サービスを選びます。 接続名を定義できます。 [キーと値のペアを追加] を選び、資格情報とキーを保存する複数のキーと値のペアを追加できます。

    少なくとも 1 つのキーと値のペアがシークレットとして設定されていることを確認します。 そうしないと、接続は正常に作成されません。 1 組のキーと値のペアをシークレットとして設定するには、[シークレットかどうか] を選択し、キー値を暗号化して格納します。

Python でカスタム接続を使用する

Python コードでカスタム接続を使用するには、次の手順を実行します。

  1. Python ノードのコード セクションで、カスタム接続ライブラリ from promptflow.connections import CustomConnection をインポートします。 ツール関数で CustomConnection 型の入力パラメータを定義します。
  2. 入力セクションへの入力を解析します。 次に、値のドロップダウン リストでターゲットのカスタム接続を選択します。

例えば次が挙げられます。

from promptflow import tool
from promptflow.connections import CustomConnection

@tool
def my_python_tool(message: str, myconn: CustomConnection) -> str:
    # Get authentication key-values from the custom connection
    connection_key1_value = myconn.key1
    connection_key2_value = myconn.key2

次のステップ