Python ツール
Python ツールを使用すると、カスタマイズされたコード スニペットをプロンプト フローの自己完結型実行可能ノードとして提供できます。 Python ツールの作成、コードの編集、結果の確認を簡単に行うことができます。
入力
Name | 種類 | 内容 | 必須 |
---|---|---|---|
コード | string | Python のコード スニペット | はい |
入力 | - | ツール関数のパラメーターとその割り当ての一覧 | - |
種類
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 回だけ適用します。次のセクションのサンプルでは、
@tool
で装飾された Python ツールmy_python_tool
を定義します。Python ツールの関数パラメータは
Inputs
セクションで割り当てる必要があります。次のセクションのサンプルでは、入力
message
を定義し、world
割り当てます。Python ツール関数には戻り値があります。
次のセクションのサンプルでは、連結された文字列が返されます。
コード
次のスニペットは、ツール関数の基本的な構造を示しています。 プロンプト フローは、関数を読み取り、関数パラメーターと型注釈から入力を抽出します。
from promptflow import tool
from promptflow.connections import CustomConnection
# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(message: str, my_conn: CustomConnection) -> str:
my_conn_dict = dict(my_conn)
# Do some function call with my_conn_dict...
return 'hello ' + message
入力
Name | Type | フロー YAML のサンプル値 | 関数に渡される値 |
---|---|---|---|
message | string | world |
world |
my_conn | CustomConnection |
my_conn |
CustomConnection オブジェクト |
プロンプト フローは、実行中に my_conn
という名前の接続を見つけようとします。
出力
"hello world"
Python ツールでのカスタム接続
認証を使用して外部サービスを呼び出す必要がある Python ツールを開発している場合は、プロンプト フローでカスタム接続を使用します。 これを使用して、アクセス キーを安全に格納し、Python コードで取得できます。
カスタム接続を作成する
すべての大規模言語モデル API キーまたはその他の必要な資格情報を保存するカスタム接続を作成します。
ワークスペースのプロンプト フローに移動し、 Connections タブに移動します。
Create>Custom を選択します。
右側のウィンドウで、接続名を定義できます。 [キーと値のペアを追加] を選び、資格情報とキーを保存する複数のキーと値のペアを追加できます。
Note
1 つのキーと値のペアをシークレットとして設定するには、 is シークレット チェック ボックスをオンにします。 このオプションは、キー値を暗号化して格納します。 少なくとも 1 つのキーと値のペアがシークレットとして設定されていることを確認します。 それ以外の場合、接続は正常に作成されません。
Python でカスタム接続を使用する
Python コードでカスタム接続を使用するには:
Python ノードのコード セクションで、カスタム接続ライブラリ
from promptflow.connections import CustomConnection
をインポートします。 ツール関数でCustomConnection
型の入力パラメータを定義します。入力セクションへの入力を解析し、 Value ドロップダウンでターゲット のカスタム接続を選択します。
次に例を示します。
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