Python 工具
Python 工具可讓您在提示流程中提供自定義代碼段作為獨立的可執行節點。 您可以輕鬆地建立 Python 工具、編輯程式代碼和驗證結果。
輸入
名稱 | 類型 | 描述 | 必要 |
---|---|---|---|
代碼 | string | Python 程式碼片段 | Yes |
輸入 | - | 工具函式參數及其指派的清單 | - |
類型
類型 | Python 範例 | 描述 |
---|---|---|
int | param: int | 整數型別 |
bool | param: bool | 布林值類型 |
string | param: str | 字串類型 |
double | param: float | Double 型別 |
清單 | param: list or param: List[T] | 清單類型 |
object | param: dict or param: Dict[K, V] | Object type |
[連接] | param: CustomConnection | 線上類型是特別處理 |
具有 Connection
型別批注的參數會被視為連接輸入,這表示:
- 提示流程延伸模組會顯示選取器以選取連線。
- 在運行時間期間,提示流程會嘗試從傳入的參數值尋找具有相同名稱的連接。
注意
Union[...]
只有連接類型才支援型別批注,例如 param: Union[CustomConnection, OpenAIConnection]
。
輸出
輸出是 Python 工具函式的傳回。
使用 Python 工具撰寫
使用下列指導方針搭配 Python 工具撰寫。
指導方針
Python 工具程式代碼應該包含完整的 Python 程式代碼,包括任何必要的模組匯入。
Python 工具程式代碼必須包含以
@tool
(tool 函式) 裝飾的函式,做為執行進入點。@tool
只在代碼段內套用裝飾專案一次。下一節中的範例會定義以 裝飾的
@tool
Python 工具my_python_tool
。必須在
Inputs
區段中指派 Python 工具函式參數。下一節中的範例會定義輸入
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
輸入
名稱 | 類型 | 流程 YAML 中的範例值 | 傳遞至函式的值 |
---|---|---|---|
message | 字串 | world |
world |
my_conn | CustomConnection |
my_conn |
CustomConnection 物件 |
提示流程會嘗試在運行時間期間尋找名為 my_conn
的連線。
輸出
"hello world"
Python 工具中的自定義連線
如果您要開發需要使用驗證呼叫外部服務的 Python 工具,請在提示流程中使用自定義連線。 您可以使用它安全地儲存存取密鑰,然後在 Python 程式代碼中擷取它。
建立自訂連線
建立自訂連線,以儲存您所有的大型語言模型 API 金鑰或其他必要認證。
注意
若要將一個機碼/值組設定為秘密,請選取 [ 是秘密 ] 複選框。 這個選項會加密並儲存您的金鑰值。 請確定至少有一個機碼值組設定為祕密。 否則,不會成功建立連線。
在 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