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_tool
Python , 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 aworld
atribui .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.
Vá para o fluxo de prompt em seu workspace e, em seguida, vá para a guia Conexões .
Selecione Criar>personalizado.
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.
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:
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 tipoCustomConnection
na 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.
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