Azure AI Foundry 入口網站中流程的 Python 工具
重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
提示流程 Python 工具提供自訂的程式碼片段做為獨立式可執行節點。 您可以快速建立 Python 工具、編輯程式碼及驗證結果。
使用 Python 工具進行建置
選取 [+ 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
值可協助工具正確顯示類型。
名稱 | 類型 | 描述 | 必要 |
---|---|---|---|
代碼 | 字串 | 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 金鑰或其他必要認證。
移至 專案的 [管理中心 ] 頁面。
在 [中樞] 或 [專案] 標題下,選取 [已連線的資源]。
選取 + 新增連接。
選取 [自訂] 服務。 您可以定義連線名稱。 您可以藉由選取 [新增機碼值組],新增多個機碼值組以儲存您的認證和金鑰。
注意
請確定至少有一個機碼值組設定為祕密。 否則,將無法成功建立連線。 若要將一個機碼值組設定為祕密,請選取 [為祕密] 來加密及儲存金鑰值。
在 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