Compartilhar via


Ferramenta do Python

A ferramenta Python permite que você ofereça snippets de código personalizados como nós executáveis independentes no fluxo de prompt. Você pode facilmente criar ferramentas Python, editar código e verificar resultados.

Entradas

Nome Tipo Descrição Obrigatório
Código string Snippet de código Python Yes
Entradas - Lista de parâmetros de função de ferramenta e suas atribuições -

Tipos

Tipo Exemplo de Python Descrição
INT param: int Tipo inteiro
bool param: bool Tipos boolianos
string param: str Tipo de cadeia de caracteres
double param: float Tipo double
lista param: list ou param: List[T] Tipo de lista
objeto param: dict ou param: Dict[K, V] Tipo de objeto
Conexão 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 selecionar a conexão.
  • Durante o tempo de execução, o fluxo de prompt tenta encontrar a conexão com o mesmo nome do valor do parâmetro passado.

Observação

A Union[...] anotação de tipo é suportada apenas para o tipo de conexão, por exemplo, param: Union[CustomConnection, OpenAIConnection].

Saídas

As saídas são o retorno da função da ferramenta Python.

Escreva com a ferramenta Python

Use as diretrizes a seguir para escrever com a ferramenta Python.

Diretrizes

  • O código da ferramenta Python deve consistir em código Python completo, incluindo quaisquer importações de módulo necessárias.

  • O código da ferramenta Python deve conter uma função decorada com @tool (função tool), que serve como ponto de entrada para execução. Aplique o @tool decorador apenas uma vez no snippet.

    O exemplo na próxima seção define a ferramenta my_python_toolPython , que é decorada com @tool.

  • Os parâmetros de função da ferramenta Python devem ser atribuídos na seção Inputs.

    O exemplo na próxima seção define a entrada message e a worldatribui .

  • Uma função de ferramenta Python tem um retorno.

    O exemplo na próxima seção retorna uma cadeia de caracteres concatenada.

Código

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

Entradas

Nome Tipo Valor de exemplo no fluxo YAML Valor passado para a função
message string world world
my_conn CustomConnection my_conn Objeto CustomConnection

O fluxo de prompt tenta localizar a conexão nomeada my_conn durante o tempo de execução.

Saídas

"hello world"

Conexão personalizada na ferramenta Python

Se você estiver desenvolvendo uma ferramenta Python que exija a chamada de serviços externos com autenticação, use a conexão personalizada no fluxo de prompt. Você pode usá-lo para armazenar com segurança a chave de acesso e, em seguida, recuperá-la em seu código Python.

Criar uma conexão personalizada

Crie uma conexão personalizada que armazene todas as suas chaves de API do LLM ou outras credenciais requeridas.

  1. Vá para o fluxo de prompt em seu workspace e, em seguida, vá para a guia Conexões .

  2. Selecione Criar>personalizado.

    Captura de tela que mostra fluxos na guia Conexões destacando o botão Personalizado no menu suspenso.

  3. No painel direito, você pode definir o nome da sua conexão. Você pode adicionar vários pares chave-valor para armazenar suas credenciais e chaves selecionando Adicionar pares chave-valor.

    Captura de tela que mostra a adição de um ponto de conexão personalizado e o botão Adicionar pares de chave-valor.

Observação

Para definir um par de valores-chave como secreto, marque a caixa de seleção é secreto. Essa opção criptografa e armazena o valor da 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 em Python

Para usar uma conexão personalizada em seu código Python:

  1. Na seção de código no nó do Python, importe a biblioteca de conexões personalizada from promptflow.connections import CustomConnection. Defina um parâmetro de entrada do tipo CustomConnection na função de ferramenta.

    Captura de tela que mostra o nó da cadeia de pesquisa de documentos destacando a conexão personalizada.

  2. Analise a entrada para a seção de entrada e selecione sua conexão personalizada de destino na lista suspensa Valor.

    Captura de tela que mostra o nó da cadeia destacando a conexão.

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