Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varning
Prompt-flödet i Microsoft Foundry och Azure Machine Learning kommer att dras tillbaka den 20 april 2027. Prompt flow rekommenderas inte längre för ny utveckling. Migrera befintliga promptflödesprogram och distributioner till Microsoft Agent Framework före den 20 april 2027.
Avbildningar av promptflödescontainer tar inte längre emot uppdateringar, inklusive säkerhets- och paketuppdateringar. Detta gäller för runtime-avbildningar för promptflöde, inklusive promptflow-runtime, promptflow-runtime-stableoch promptflow-python.
Efter den 20 april 2027 kommer Prompt-flödet, inklusive webbredigeringsupplevelsen i Microsoft Foundry och Azure Machine Learning, VS Code-tilläggen och relaterade containeravbildningar för promptflöde, inte längre att stödjas eller vara tillgängliga.
Om programmet är beroende av distributioner av promptflöden eller körningsavbildningar planerar du att flytta dessa arbetsbelastningar till alternativ som stöds, till exempel Microsoft Agent Framework före slutdatumet. Migreringsvägledning finns i guiden För snabbflödesmigrering och kodexempel för migrering.
Med verktyget Python kan du skapa anpassade kodfragment som fristående körbara noder i promptflödet. Du kan enkelt skapa Python verktyg, redigera kod och verifiera resultat.
Indata
| Name | Type | Beskrivning | Obligatoriskt |
|---|---|---|---|
| Kod | string | Python kodfragment | Ja |
| Indata | - | Lista över verktygsfunktionsparametrar och deras tilldelningar | - |
Types
| Type | Python-exempel | Beskrivning |
|---|---|---|
| int | param: int | Heltalstyp |
| bool | param: bool | Boolesk typ |
| string | param: str | Strängtyp |
| dubbel | param: float | Dubbeltyp |
| list | param: list eller param: List[T] | Listtyp |
| object | param: dict eller param: Dict[K, V] | Objekttyp |
| Connection | param: CustomConnection | Anslutningstypen hanteras särskilt |
Parametrar med typanteckningen Connection behandlas som anslutningsindata, vilket innebär:
- Tillägg för promptflöde visar en väljare för att välja anslutningen.
- Under körningen försöker promptflödet hitta anslutningen med samma namn från parametervärdet som skickades in.
Note
Typanteckningen Union[...] stöds endast för anslutningstypen, till exempel param: Union[CustomConnection, OpenAIConnection].
Utdata
Utdata är returvärdet för Python verktygsfunktionen.
Skriva med verktyget Python
Använd följande riktlinjer när du skriver med verktyget Python.
Riktlinjer
Python verktygskod bör bestå av fullständig Python kod, inklusive alla nödvändiga modulimporter.
Python verktygskod måste innehålla en funktion som är dekorerad med
@tool(verktygsfunktion), som fungerar som startpunkt för körning. Använd dekoratören@toolbara en gång i kodfragmentet.Följande exempel definierar verktyget Python
my_python_tool, som är dekorerat med@tool.Python verktygsfunktionsparametrar måste tilldelas i avsnittet
Inputs.Följande exempel definierar indata
messageoch tilldelar denworld.En Python verktygsfunktion måste ha ett returvärde.
Följande exempel returnerar en sammanfogad sträng.
Kod
Följande kodfragment visar den grundläggande strukturen för en verktygsfunktion. Prompt flow läser funktionen och extraherar indata från funktionsparametrar och skriver anteckningar.
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
Indata
| Name | Type | Exempelvärde i flödes-YAML | Värde som skickas till funktionen |
|---|---|---|---|
| message | string | world |
world |
| my_conn | CustomConnection |
my_conn |
CustomConnection Objekt |
Prompt flow försöker hitta anslutningen med namnet my_conn under körningen.
Utdata
"hello world"
Anropa en resonemangsmodell från verktyget Python
Om du behöver anropa resonemangsmodeller som LLM-noden inte stöder kan du använda verktyget Python för att anropa modellerna direkt. I följande exempel visas hur du anropar en resonemangsmodell från verktyget Python.
from promptflow import tool
from promptflow.connections import AzureOpenAIConnection
from openai import AzureOpenAI
@tool
def my_python_tool(
OpenAIConnection: AzureOpenAIConnection,
scope_reply: str
):
model_name = "o3-mini"
deployment = "o3-mini"
print(OpenAIConnection['api_base'])
endpoint = OpenAIConnection['api_base'] #"https://<your endpoint>.openai.azure.com/"
model_name = "o3-mini" #your model name
deployment = "o3-mini" #your deployment name
subscription_key = OpenAIConnection['api_key']
api_version = "2024-12-01-preview" #Supply an API version that supports reasoning models.
client = AzureOpenAI(
api_version=api_version,
azure_endpoint=endpoint,
api_key=subscription_key,
)
response = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": "I am going to Paris, what should I see?",
}
],
max_completion_tokens=100000,
model=deployment
)
return response.choices[0].message.content
Anpassad anslutning i verktyget Python
Om du utvecklar ett Python verktyg som kräver att externa tjänster anropas med autentisering använder du den anpassade anslutningen i promptflödet. Du kan använda den för att lagra åtkomstnyckeln på ett säkert sätt och sedan hämta den i din Python kod.
Skapa en anpassad anslutning
Skapa en anpassad anslutning som lagrar alla dina API-nycklar för stora språkmodeller eller andra nödvändiga autentiseringsuppgifter.
Gå till kommandotolkens flöde på arbetsytan och välj sedan fliken Anslutningar .
Välj Skapa>anpassad.
I den högra rutan kan du definiera ditt anslutningsnamn. Du kan lägga till flera nyckel/värde-par för att lagra dina autentiseringsuppgifter och nycklar genom att välja Lägg till nyckel/värde-par.
Note
Om du vill ange ett nyckel/värde-par som hemlighet markerar du kryssrutan är hemlig . Det här alternativet krypterar och lagrar ditt nyckelvärde. Kontrollera att minst ett nyckel/värde-par har angetts som hemlighet. Annars skapas inte anslutningen.
Använda en anpassad anslutning i Python
Så här använder du en anpassad anslutning i din Python-kod:
I kodavsnittet i noden Python importerar du det anpassade anslutningsbiblioteket
from promptflow.connections import CustomConnection. Definiera en indataparameter av typenCustomConnectioni verktygsfunktionen.Parsa indata till indataavsnittet och välj sedan din anpassade målanslutning i listrutan Värde .
Ett exempel:
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