Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met het Python-hulpprogramma kunt u aangepaste codefragmenten maken als zelfstandige uitvoerbare knooppunten in de promptstroom. U kunt eenvoudig Python-hulpprogramma's maken, code bewerken en resultaten controleren.
Inputs
| Name | Type | Description | Required |
|---|---|---|---|
| Code | string | Python-codefragment | Yes |
| Inputs | - | Lijst met hulpprogrammafunctieparameters en de bijbehorende toewijzingen | - |
Types
| Type | Python example | Description |
|---|---|---|
| int | param: int | Integer type |
| bool | param: bool | Boolean type |
| string | param: str | String type |
| double | param: float | Double type |
| list | param: lijst of param: Lijst[T] | List type |
| object | param: dict of param: Dict[K, V] | Object type |
| Connection | param: CustomConnection | Verbindingstype wordt speciaal verwerkt |
Parameters met de Connection typeaantekening worden behandeld als verbindingsinvoer, wat betekent:
- De promptstroomextensie toont een selector om de verbinding te kiezen.
- Tijdens de uitvoering probeert de promptstroom de verbinding met dezelfde naam te vinden van de parameterwaarde die is doorgegeven.
Note
The Union[...] type annotation is supported only for the connection type, for example, param: Union[CustomConnection, OpenAIConnection].
Outputs
De uitvoer is de retourwaarde van de Python-hulpprogrammafunctie.
Schrijven met het Python-hulpprogramma
Gebruik de volgende richtlijnen bij het schrijven met het Python-hulpprogramma.
Guidelines
Python-hulpprogrammacode moet bestaan uit volledige Python-code, inclusief eventuele benodigde moduleimport.
Python-hulpprogrammacode moet een functie bevatten die is ingericht met
@tool(toolfunctie), die fungeert als het toegangspunt voor uitvoering. Pas de@tooldecorator slechts eenmaal toe in het fragment.In het volgende voorbeeld wordt het Python-hulpprogramma
my_python_toolgedefinieerd, dat is ingericht met@tool.Parameters voor de Python-hulpprogrammafunctie moeten worden toegewezen in de
Inputssectie.In het volgende voorbeeld wordt de invoer
messagegedefinieerd en toegewezenworld.Een Python-hulpprogrammafunctie moet een retourwaarde hebben.
In het volgende voorbeeld wordt een samengevoegde tekenreeks geretourneerd.
Code
In het volgende fragment ziet u de basisstructuur van een hulpprogrammafunctie. De promptstroom leest de functie en extraheert invoer uit functieparameters en typ aantekeningen.
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
Inputs
| Name | Type | Voorbeeldwaarde in stroom-YAML | Waarde doorgegeven aan functie |
|---|---|---|---|
| message | string | world |
world |
| my_conn | CustomConnection |
my_conn |
CustomConnection object |
De promptstroom probeert de verbinding te vinden die is benoemd my_conn tijdens de uitvoering.
Outputs
"hello world"
Een redeneringsmodel aanroepen vanuit het Python-hulpprogramma
Als u redeneringsmodellen wilt aanroepen die niet door het LLM-knooppunt worden ondersteund, kunt u het Python-hulpprogramma gebruiken om de modellen rechtstreeks aan te roepen. In het volgende voorbeeld ziet u hoe u een redeneringsmodel aanroept vanuit het Python-hulpprogramma.
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
Aangepaste verbinding in het Python-hulpprogramma
Als u een Python-hulpprogramma ontwikkelt waarvoor externe services met verificatie moeten worden aangeroepen, gebruikt u de aangepaste verbinding in de promptstroom. U kunt deze gebruiken om de toegangssleutel veilig op te slaan en deze vervolgens op te halen in uw Python-code.
Een aangepaste verbinding maken
Maak een aangepaste verbinding waarmee al uw API-sleutels voor het grote taalmodel of andere vereiste referenties worden opgeslagen.
Go to prompt flow in your workspace, and then select the Connections tab.
Select Create>Custom.
In het rechterdeelvenster kunt u de naam van uw verbinding definiëren. U kunt meerdere sleutel-waardeparen toevoegen om uw referenties en sleutels op te slaan door sleutel-waardeparen toevoegen te selecteren.
Note
To set one key-value pair as secret, select the is secret checkbox. Met deze optie wordt uw sleutelwaarde versleuteld en opgeslagen. Zorg ervoor dat ten minste één sleutel-waardepaar is ingesteld als geheim. Anders wordt de verbinding niet gemaakt.
Een aangepaste verbinding gebruiken in Python
Een aangepaste verbinding gebruiken in uw Python-code:
Importeer in de codesectie van uw Python-knooppunt de aangepaste verbindingsbibliotheek
from promptflow.connections import CustomConnection. Definieer een invoerparameter van het typeCustomConnectionin de functie van het hulpprogramma.Parse the input to the input section, and then select your target custom connection in the Value dropdown.
For example:
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