Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Warning
O desenvolvimento de recursos do Prompt Flow terminou em 20 de abril de 2026. O recurso será totalmente desativado em 20 de abril de 2027. Na data de desativação, o Fluxo de Prompt entra no modo somente leitura. Seus fluxos existentes continuarão a operar até essa data.
Recommended action: Migrar suas cargas de trabalho de Fluxo de Prompt para Microsoft Agent Framework antes de 20 de abril de 2027.
A ferramenta Python permite que você crie snippets de código personalizados como nós executáveis autocontidos no fluxo de prompt. Você pode criar facilmente Python ferramentas, editar código e verificar os resultados.
Inputs
| Name | Tipo | Description | Required |
|---|---|---|---|
| Code | cadeia | snippet de código Python | Yes |
| Inputs | - | Lista de parâmetros de função de ferramenta e suas atribuições | - |
Types
| Tipo | Python example | Description |
|---|---|---|
| int | param: int | Integer type |
| bool | param: bool | Boolean type |
| cadeia | param: str | String type |
| double | param: float | Double type |
| list | param: lista or param: List[T] | List type |
| objeto | param: dict or param: Dict[K, V] | Object type |
| Connection | param: CustomConnection | O tipo de conexão é tratado especialmente |
Os parâmetros com a anotação de tipo são tratados como entradas de conexão, o Connection que significa:
- A extensão de fluxo de prompt mostra um seletor para escolher a conexão.
- Durante a execução, o fluxo de prompt tenta localizar a conexão com o mesmo nome do valor do parâmetro passado.
Note
A Union[...] anotação de tipo tem suporte apenas para o tipo de conexão, por exemplo, param: Union[CustomConnection, OpenAIConnection].
Outputs
As saídas são o valor retornado da função de ferramenta Python.
Gravar com a ferramenta Python
Use as diretrizes a seguir ao escrever com a ferramenta Python.
Guidelines
Python código da ferramenta deve consistir em código de Python completo, incluindo as importações de módulo necessárias.
Python código da ferramenta deve conter uma função decorada com
@tool(função de ferramenta), que serve como o ponto de entrada para execução. Aplique o@tooldecorador apenas uma vez dentro do snippet.O exemplo a seguir define a ferramenta Python
my_python_tool, que é decorada com@tool.Python parâmetros de função de ferramenta devem ser atribuídos na seção
Inputs.O exemplo a seguir define a entrada
messagee aworldatribui.Uma função de ferramenta de Python deve ter um valor retornado.
O exemplo a seguir retorna uma cadeia de caracteres concatenada.
Code
O snippet a seguir mostra a estrutura básica de uma função de ferramenta. O fluxo de prompt lê a função e extrai entradas de parâmetros de função e anotações de tipo.
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 | Tipo | Valor de exemplo no YAML de fluxo | Valor passado para a função |
|---|---|---|---|
| mensagem | cadeia | world |
world |
| my_conn | CustomConnection |
my_conn |
CustomConnection Objeto |
O fluxo de prompt tenta localizar a conexão nomeada my_conn durante a execução.
Outputs
"hello world"
Chamar um modelo de raciocínio da ferramenta Python
Se você precisar chamar modelos de raciocínio aos quais o nó LLM não dá suporte, use a ferramenta Python para chamar os modelos diretamente. O exemplo a seguir mostra como chamar um modelo de raciocínio da ferramenta 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
Conexão personalizada na ferramenta Python
Se você estiver desenvolvendo uma ferramenta de Python que requer chamar serviços externos com autenticação, use a conexão personalizada no fluxo de prompt. Você pode usá-la para armazenar com segurança a chave de acesso e recuperá-la em seu código Python.
Criar uma conexão personalizada
Crie uma conexão personalizada que armazene todas as chaves de API do modelo de idioma grande ou outras credenciais necessárias.
Vá para o fluxo de prompt no workspace e selecione a guia Conexões .
Selecione Criar>Personalizado.
No painel direito, você pode definir o nome da conexão. Você pode adicionar vários pares chave-valor para armazenar suas credenciais e chaves selecionando Adicionar pares chave-valor.
Note
Para definir um par chave-valor como segredo, marque a caixa de seleção is secret . Essa opção criptografa e armazena seu valor de chave. Verifique se pelo menos um par chave-valor está definido como segredo. Caso contrário, a conexão não será criada com êxito.
Usar uma conexão personalizada no Python
Para usar uma conexão personalizada em seu código de Python:
Na seção de código no nó Python, importe a biblioteca de conexões personalizada
from promptflow.connections import CustomConnection. Defina um parâmetro de entrada do tipoCustomConnectionna função de ferramenta.Analise a entrada para a seção de entrada e selecione sua conexão personalizada de destino na lista suspensa Valor .
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