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只在代碼段內套用裝飾專案一次。

    下一節中的範例會定義以 裝飾的 @toolPython 工具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 金鑰或其他必要認證。

  1. 移至工作區中的提示流程,然後移至 [連線] 索引卷標。

  2. 選取 [建立>自定義]。

    顯示 [連線] 索引標籤上流程的螢幕快照,其中醒目提示下拉功能表中的 [自定義] 按鈕。

  3. 在右窗格中,您可以定義連線名稱。 您可以藉由選取 [新增機碼值組],新增多個機碼值組以儲存您的認證和金鑰。

    顯示新增自訂連接點和 [新增機碼/值組] 按鈕的螢幕快照。

注意

若要將一個機碼/值組設定為秘密,請選取 [ 是秘密 ] 複選框。 這個選項會加密並儲存您的金鑰值。 請確定至少有一個機碼值組設定為祕密。 否則,不會成功建立連線。

在 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