Azure AI Studio 内のフロー用 Python ツール
重要
この記事で説明する機能の一部は、プレビューでのみ使用できる場合があります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
プロンプト フロー Python ツールからは、カスタマイズされたコード スニペットが自己完結型の実行可能ノードとして提供されます。 ユーザーは簡単に Python ツールを作成し、コードを編集し、結果を確認できます。
Python ツールを使用してビルドする
Azure AI Studio でフローを作成するか、開きます。 詳細については、「フローの作成」を参照してください。
[+ Python] を選択し、Python ツールをフローに追加します。
入力テーブルで説明されている Python ツールの入力パラメータの値を入力します。 たとえば、[コード] 入力テキスト ボックスに次の Python コードを入力できます。
from promptflow import tool @tool def my_python_tool(message: str) -> str: return 'hello ' + message
詳細については、「Python コード入力の要件」を参照してください。
必要に応じて、フローにさらにツールを追加します。 または、[実行] を選択してフローを実行します。
出力については、出力の表で説明します。 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 キーまたはその他の必要な資格情報を保存するカスタム接続を作成します。
プロジェクトの [設定] ページに移動します。 次に、[+ 新しい接続] を選択します。
[カスタム] サービスを選びます。 接続名を定義できます。 [キーと値のペアを追加] を選び、資格情報とキーを保存する複数のキーと値のペアを追加できます。
Note
少なくとも 1 つのキーと値のペアがシークレットとして設定されていることを確認します。 そうしないと、接続は正常に作成されません。 1 組のキーと値のペアをシークレットとして設定するには、[シークレットかどうか] を選択し、キー値を暗号化して格納します。
Python でカスタム接続を使用する
Python コードでカスタム接続を使用するには、次の手順を実行します。
- Python ノードのコード セクションで、カスタム接続ライブラリ
from promptflow.connections import CustomConnection
をインポートします。 ツール関数でCustomConnection
型の入力パラメータを定義します。 - 入力セクションへの入力を解析します。 次に、値のドロップダウン リストでターゲットのカスタム接続を選択します。
次に例を示します。
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