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_tool
Python , 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.
Vá para o fluxo de prompt em seu espaço de trabalho e, em seguida, vá para a guia Conexões.
Selecione Criar>personalizado.
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.
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:
Na seção de código no nó Python, importe a biblioteca
from promptflow.connections import CustomConnection
de conexões personalizada. Defina um parâmetro de entrada do tipoCustomConnection
na função da ferramenta.Analise a entrada na seção de entrada e selecione sua conexão personalizada de destino na lista suspensa 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