Share via


Azure AI Studio 中流程的 Python 工具

重要

本文所述的部分功能可能僅適用於預覽版。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

提示流程 Python 工具提供自訂的程式碼片段做為獨立式可執行節點。 您可以快速建立 Python 工具、編輯程式碼及驗證結果。

使用 Python 工具進行建置

  1. Azure AI Studio 中建立或開啟流程。 如需詳細資訊,請參閱建立流程

  2. 選取 [+ Python] 將 Python 工具新增至您的流程。

    顯示已將 Python 工具新增至 Azure AI Studio 中流程的螢幕擷取畫面。

  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 值可協助工具正確顯示類型。

名稱 類型​​ 描述 必要
代碼 字串 Python 程式碼片段。 Yes
輸入 - 工具函式參數及其指派的清單。 -

輸出

輸出是 Python 工具函式的 return 值。 例如,假設有下列 Python 工具函式:

from promptflow import tool

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

如果輸入訊息為 "world",則輸出為 hello world

類型

類型 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 裝飾項目應僅在程式碼片段內套用一次。
  • 必須在 Inputs 區段中指派 Python 工具函式參數。
  • Python 工具函式應具有 return 陳述式和值,其為工具的輸出。

下列 Python 程式碼是最佳做法的範例:

from promptflow import tool

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

在 Python 工具中取用自訂連線

如果您要開發的 Python 工具需要使用驗證呼叫外部服務,您可以在提示流程中使用自訂連線。 其可讓您安全地儲存存取金鑰,然後在 Python 程式碼中加以擷取。

建立自訂連線

建立自訂連線,以儲存您所有的大型語言模型 API 金鑰或其他必要認證。

  1. 移至專案設定。 然後選取 [新增連線]

  2. 選取 [自訂] 服務。 您可以定義連線名稱。 您可以藉由選取 [新增機碼值組],新增多個機碼值組以儲存您的認證和金鑰。

    注意

    請確定至少有一個機碼值組設定為祕密。 否則,將無法成功建立連線。 若要將一個機碼值組設定為祕密,請選取 [為祕密] 來加密及儲存金鑰值。

    顯示在 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

下一步