Ferramenta Python

A ferramenta Python permite que você ofereça trechos de código personalizados como nós executáveis autônomos 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 Trecho de código Python Sim
Entradas - Lista de parâmetros de função da ferramenta e suas atribuições -

Tipos

Type Exemplo de Python Description
número inteiro Param: Int Tipo de inteiro
booleano Param: Bool Tipo booleano
string Param: STR Tipo de cadeia
duplo Param: Flutuador Tipo duplo
list param: list ou param: List[T] Tipo de lista
objeto param: dict ou param: Dict[K, V] Object type
Ligaçã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 a partir do valor do parâmetro passado.

Nota

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ódulos necessárias.

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

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

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

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

  • 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 trecho 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 da amostra no fluxo YAML Valor passado para a função
mensagem string world world
my_conn CustomConnection my_conn CustomConnection objeto

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 todo o seu modelo de idioma grande, chave de API ou outras credenciais necessárias.

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

  2. Selecione Criar>personalizado.

    Captura de ecrã que mostra fluxos no separador Ligações realçando o botão Personalizar no menu pendente.

  3. No painel direito, você pode definir seu nome de 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 chave-valor.

Nota

Para definir um par chave-valor como secreto, marque a caixa de seleção é secreto. 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 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ó Python, importe a biblioteca from promptflow.connections import CustomConnectionde conexões personalizada. Defina um parâmetro de entrada do tipo CustomConnection na função da ferramenta.

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

  2. Analise a entrada na 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