Share via


Azure AI Studio 内のフロー用 Python ツール

Note

Azure AI Studio は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

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

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

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

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

    Azure AI Studio のフローに追加された 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 値に型を追加すると、ツールで型が正しく表示されます。

名前 種類 内容 必須
コード string Python コード スニペット。 はい
入力 - ツール関数のパラメータとその割り当ての一覧。 -

出力

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

from promptflow import tool

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

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

種類

Type Python の例 説明
int param: int 整数型
[bool] param: bool ブール型
string param: str 文字列の種類
倍精度浮動小数点 param: float 倍精度型
list param: list または param: List[T] リスト タイプ
object param: dict または param: Dict[K, V] オブジェクトの種類
つながり param: CustomConnection 接続の型は特別に処理されます。

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

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

Note

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 キーまたはその他の必要な資格情報を保存するカスタム接続を作成します。

  1. [AI プロジェクト設定] に移動します。 次に、[新しい接続] を選択します。

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

    Note

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

    AI Studio での接続の作成を示すスクリーンショット。

  3. 次のカスタム キーを接続に追加します:

    • azureml.flow.connection_type: Custom
    • azureml.flow.module: promptflow.connections

    AI Studio でのカスタム接続への追加情報の追加を示すスクリーンショット。

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

次のステップ