Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Warning
O fluxo de prompts no Microsoft Foundry e no Azure Machine Learning será retirado a 20 de abril de 2027. O fluxo rápido já não é recomendado para novos desenvolvimentos. Migre as aplicações e implementações existentes de fluxo de prompts para o Microsoft Agent Framework antes de 20 de abril de 2027.
As imagens de contentores de fluxo de prompt já não recebem atualizações, incluindo atualizações de segurança e de pacotes. Isto aplica-se a imagens de runtime de fluxo de prompts, incluindo promptflow-runtime, promptflow-runtime-stable, e promptflow-python.
Após 20 de abril de 2027, o fluxo de prompts, incluindo a experiência de autoria web no Microsoft Foundry e Azure Machine Learning, as extensões VS Code e imagens de contentores de fluxo de prompts relacionadas, deixarão de ser suportados nem disponíveis.
Se a sua aplicação depende de implementações de fluxo de prompts ou imagens em tempo de execução, planeie transferir essas cargas de trabalho para alternativas suportadas como Microsoft Agent Framework antes da data de reforma. Para orientações sobre migração, consulte o guia de migração de fluxo de prompts e exemplos de código de migração.
A ferramenta Python permite-lhe criar excertos de código personalizados como nós executáveis autónomos em fluxo de prompts. Pode facilmente criar ferramentas em Python, editar código e verificar resultados.
Entradas
| Name | Tipo | Description | Obrigatório |
|---|---|---|---|
| Código | cadeia (de caracteres) | Excerto de código Python | Sim |
| Entradas | - | Lista de parâmetros da função da ferramenta e as suas atribuições | - |
Types
| Tipo | Exemplo de Python | Description |
|---|---|---|
| int | Param: Int | Tipo inteiro |
| bool | param: bool | Tipo booleano |
| cadeia (de caracteres) | Param: STR | Tipo de string |
| duplo | param: flutuar | Tipo duplo |
| lista | param: list ou param: List[T] | Tipo de lista |
| objecto | param: dict ou param: Dict[K, V] | Tipo de objeto |
| Conexão | param: CustomConnection | O tipo de ligação é tratado especialmente |
Os parâmetros com a Connection anotação de tipo são tratados como entradas de ligação, o que significa:
- A extensão de fluxo de prompts mostra um seletor para escolher a ligação.
- Durante a execução, o fluxo de prompts tenta encontrar a ligação com o mesmo nome a partir do valor do parâmetro passado.
Note
A Union[...] anotação de tipo é suportada apenas para o tipo de ligação, por exemplo, param: Union[CustomConnection, OpenAIConnection].
Saídas
As saídas são o valor de retorno da função da ferramenta Python.
Escreve com a ferramenta Python
Use as seguintes orientações ao escrever com a ferramenta Python.
Guidelines
O código da ferramenta Python deve consistir em código Python completo, incluindo quaisquer importações necessárias de módulos.
Python código da ferramenta deve conter uma função decorada com
@tool(função da ferramenta), que serve como ponto de entrada para a execução. Aplique o@tooldecorador apenas uma vez no pedaço.O exemplo seguinte define a ferramenta Python
my_python_tool, que é decorada com@tool.Python parâmetros da função ferramenta devem ser atribuídos na secção
Inputs.O exemplo seguinte define a entrada
messagee atribui-lheworld.Uma função de ferramenta Python deve ter um valor de retorno.
A amostra seguinte devolve uma cadeia concatenada.
Código
O excerto seguinte mostra a estrutura básica de uma função de ferramenta. O fluxo de prompts lê a função e extrai entradas dos parâmetros da função e das anotações de tipos.
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
Entradas
| Name | Tipo | Valor amostral em fluxo YAML | Valor passado à função |
|---|---|---|---|
| mensagem | cadeia (de caracteres) | world |
world |
| my_conn | CustomConnection |
my_conn |
CustomConnection Objeto |
O fluxo de prompts tenta encontrar a ligação nomeada my_conn durante a execução.
Saídas
"hello world"
Chame um modelo de raciocínio a partir da ferramenta Python
Se precisares de chamar modelos de raciocínio que o nó LLM não suporta, podes usar a ferramenta Python para chamar os modelos diretamente. O exemplo seguinte mostra como chamar um modelo de raciocínio a partir 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
Ligação personalizada na ferramenta Python
Se estás a desenvolver uma ferramenta Python que exige chamar serviços externos com autenticação, usa a ligação personalizada em fluxo de prompts. Podes usá-lo para armazenar a chave de acesso de forma segura e depois recuperá-la no teu código Python.
Criar uma ligação personalizada
Crie uma ligação personalizada que armazene todas as chaves de API do seu grande modelo de linguagem ou outras credenciais necessárias.
Vai ao fluxo de prompts no teu espaço de trabalho e depois seleciona o separador Conexões .
Selecione Criar>Personalizado.
No painel direito, podes definir o nome da tua ligação. Pode adicionar múltiplos pares chave-valor para armazenar as suas credenciais e chaves selecionando Adicionar pares chave-valor.
Note
Para definir um par chave-valor como secreto, selecione a caixa de verificação is secret . Esta opção encripta e armazena o valor da sua chave. Certifique-se de que pelo menos um par chave-valor está definido como secreto. Caso contrário, a ligação não é criada com sucesso.
Usa uma ligação personalizada em Python
Para usar uma ligação personalizada no seu código Python:
Na secção de código do seu nó Python, importe a biblioteca de ligação personalizada
from promptflow.connections import CustomConnection. Defina um parâmetro de entrada do tipoCustomConnectionna função ferramenta.Analisa a entrada na secção de entrada e depois seleciona a tua ligação personalizada de alvo no menu suspenso Valor .
Por exemplo:
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