Herramienta Python
La herramienta de Python le permite ofrecer fragmentos de código personalizados como nodos ejecutables independientes en el flujo de solicitud. Puede crear fácilmente herramientas de Python, editar código y comprobar los resultados.
Entradas
Nombre | Escribir | Descripción | Obligatorio |
---|---|---|---|
Código | cadena | Fragmento de código Python | Sí |
Entradas | - | Lista de parámetros de función de herramienta y sus asignaciones | - |
Tipos
Tipo | Ejemplo de Python | Descripción |
---|---|---|
int | param: int | Tipo entero |
bool | param: bool | Tipo booleano |
cadena | param: str | Tipo de cadena |
doble | param: float | Tipo double |
list | param: list or param: List[T] | Tipo de lista |
object | param: dict or param: Dict[K, V] | Tipo de objeto |
Connection | param: CustomConnection | El tipo de conexión se controla especialmente |
Los parámetros con la Connection
anotación de tipo se tratan como entradas de conexión, lo que significa:
- La extensión de flujo del símbolo del sistema muestra un selector para seleccionar la conexión.
- Durante el tiempo de ejecución, el flujo de solicitud intenta encontrar la conexión con el mismo nombre del valor del parámetro pasado.
Nota:
La Union[...]
anotación de tipo solo se admite para el tipo de conexión, por ejemplo, param: Union[CustomConnection, OpenAIConnection]
.
Salidas
Las salidas son la devolución de la función de herramienta de Python.
Escritura con la herramienta Python
Use las instrucciones siguientes para escribir con la herramienta Python.
Directrices
El código de herramienta de Python debe constar de código python completo, incluidas las importaciones de módulo necesarias.
El código de la herramienta de Python debe contener una función decorada con
@tool
(función de herramienta), que actúa como punto de entrada para su ejecución. Aplique el@tool
decorador solo una vez dentro del fragmento de código.En el ejemplo de la sección siguiente se define la herramienta
my_python_tool
python , que está decorada con@tool
.Los parámetros de función de la herramienta Python deben asignarse en la sección
Inputs
.En el ejemplo de la sección siguiente se define la entrada
message
y seworld
le asigna .Una función de herramienta de Python tiene una devolución.
El ejemplo de la sección siguiente devuelve una cadena concatenada.
Código
En el fragmento de código siguiente se muestra la estructura básica de una función de herramienta. Prompt flow lee la función y extrae entradas de parámetros de función y anotaciones 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
Nombre | Tipo | Valor de ejemplo en YAML de flujo | Valor pasado a la función |
---|---|---|---|
message | string | world |
world |
my_conn | CustomConnection |
my_conn |
Objecto CustomConnection |
El flujo del símbolo del sistema intenta encontrar la conexión denominada my_conn
durante el tiempo de ejecución.
Salidas
"hello world"
Conexión personalizada en la herramienta Python
Si va a desarrollar una herramienta de Python que requiere llamar a servicios externos con autenticación, use la conexión personalizada en el flujo de solicitud. Puede usarlo para almacenar de forma segura la clave de acceso y, a continuación, recuperarla en el código de Python.
Creación de una conexión personalizada
Cree una conexión personalizada que almacene toda la clave de API del modelo de lenguaje grande u otras credenciales necesarias.
Vaya al flujo del símbolo del sistema en el área de trabajo y, a continuación, vaya a la pestaña Conexiones .
Seleccione Crear>personalizado.
En el panel derecho, puede definir el nombre de la conexión. Puede agregar varios pares clave-valor para almacenar las credenciales y claves seleccionando Agregar pares clave-valor.
Nota:
Para establecer un par clave-valor como secreto, active la casilla Is secret (Es secreto ). Esta opción cifra y almacena el valor de la clave. Asegúrese de que al menos un par clave-valor esté establecido como secreto. De lo contrario, la conexión no se crea correctamente.
Uso de una conexión personalizada en Python
Para usar una conexión personalizada en el código de Python:
En la sección de código del nodo de Python, importe la biblioteca de conexiones personalizada
from promptflow.connections import CustomConnection
. Defina un parámetro de entrada del tipoCustomConnection
en la función de herramienta.Analice la entrada en la sección de entrada y, a continuación, seleccione la conexión personalizada de destino en la lista desplegable Valor .
Por ejemplo:
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