Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Solo se aplica a:portal Foundry (clásico). Este artículo no está disponible para el nuevo portal de Foundry.
Obtenga más información sobre el nuevo portal.
Nota
Los vínculos de este artículo pueden abrir contenido en la nueva documentación de Microsoft Foundry en lugar de la documentación de Foundry (clásico) que está viendo ahora.
Advertencia
Prompt flow en Microsoft Foundry y Azure Machine Learning se retirará el 20 de abril de 2027. Prompt flow ya no se recomienda para nuevos desarrollos. Migre las aplicaciones e implementaciones existentes de Prompt flow a Microsoft Agent Framework antes del 20 de abril de 2027.
Las imágenes de contenedor de Prompt flow ya no reciben actualizaciones, incluidas las actualizaciones de seguridad y de paquetes. Esto se aplica a las imágenes de entorno de ejecución de Prompt flow, incluidas promptflow-runtime, promptflow-runtime-stable y promptflow-python.
Después del 20 de abril de 2027, Prompt flow, incluida la experiencia de creación web en Microsoft Foundry y Azure Machine Learning, las extensiones de VS Code y las imágenes de contenedor relacionadas de Prompt flow, dejará de ser compatible y de estar disponible.
Si su aplicación depende de implementaciones de Prompt flow o de imágenes en tiempo de ejecución, planifique trasladar esas cargas de trabajo a alternativas compatibles, como Microsoft Agent Framework, antes de la fecha de retirada. Para obtener instrucciones sobre la migración, consulte la guía de migración de flujo de mensajes y ejemplos de código de migración.
La herramienta de flujo de mensajes Python proporciona fragmentos de código personalizados como nodos ejecutables independientes. Puede crear rápidamente herramientas de Python, editar código y comprobar los resultados.
Requisitos previos
Importante
En este artículo se proporciona soporte heredado para proyectos basados en concentradores. No funcionará para proyectos de Foundry. Vea ¿Cómo sé qué tipo de proyecto tengo?
SDK nota de compatibilidad: Los ejemplos de código requieren una versión específica del SDK de Microsoft Foundry. Si encuentra problemas de compatibilidad, considere migrar de un proyecto basado en hub a un proyecto Foundry.
- Una cuenta de Azure con una suscripción activa. Si no tiene una, cree una cuenta de free Azure, que incluye una suscripción de evaluación gratuita.
- Si no tiene uno, cree un proyecto basado en hub.
Compilación con la herramienta Python
Cree o abra un flujo en Microsoft Foundry. Para obtener más información, consulte Creación de un flujo.
Seleccione + Python para agregar la herramienta de Python al flujo.
Escriba valores para los parámetros de entrada de la herramienta Python que se describen en la tabla Inputs. Por ejemplo, en el cuadro de texto de entrada Code escriba el código Python siguiente:
from promptflow import tool @tool def my_python_tool(message: str) -> str: return 'hello ' + messagePara obtener más información, consulte Python requisitos de entrada de código.
Agregue más herramientas a tu flujo de trabajo, según sea necesario. O bien, seleccione Ejecutar para ejecutar el flujo.
Las salidas se describen en la tabla Salidas. En función del ejemplo de código Python anterior, si el mensaje de entrada es "mundo", la salida es
hello world.
Entradas
La lista de entradas cambia en función de los argumentos de la función de herramienta, después de guardar el código. Agregar tipo a argumentos y return valores ayuda a la herramienta a mostrar los tipos correctamente.
| Nombre | Tipo | Descripción | Obligatorio |
|---|---|---|---|
| Código | string | Fragmento de código Python. | Sí |
| Entradas | - | Lista de los parámetros de la función de herramienta y sus asignaciones. | - |
Salidas
La salida es el valor return de la función de herramienta Python. Por ejemplo, considere la siguiente función de herramienta Python:
from promptflow import tool
@tool
def my_python_tool(message: str) -> str:
return 'hello ' + message
Si el mensaje de entrada es "world", la salida es hello world.
Tipos
| Tipo | ejemplo de Python | Descripción |
|---|---|---|
| int | param: int | Tipo entero |
| bool | param: bool | Tipo booleano |
| string | parámetro: str | Tipo de cadena |
| double | param: flotante | Tipo doble |
| lista | param: list or param: List[T] | Tipo de lista |
| objeto | param: dict o param: Dict[K, V] | Tipo de objeto |
| Conexión | param: CustomConnection | El tipo de conexión se maneja de manera especial. |
Tratar los parámetros con anotación de tipo Connection como entradas de conexión. Este tratamiento 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 avisos intenta encontrar la conexión con el mismo nombre a partir del valor del parámetro que pasa.
Nota
La Union[...] anotación de tipo solo admite el tipo de conexión. Un ejemplo es param: Union[CustomConnection, OpenAIConnection].
requisitos de entrada de código de Python
En esta sección se describen los requisitos para la entrada de código Python para la herramienta Python.
- El código de herramienta Python debe constar de código Python completo, incluidas las importaciones de módulo necesarias.
- El código de herramienta de Python debe contener una función decorada con
@tool(función de herramienta), que actúa como punto de entrada para la ejecución. Aplique el@tooldecorador solo una vez dentro del fragmento de código. - Asigne los parámetros de función de la herramienta Python en la sección
Inputs. - La función de Python debe tener una declaración de retorno y un valor, que es la salida de la herramienta.
El código de Python siguiente es un ejemplo de procedimientos recomendados:
from promptflow import tool
@tool
def my_python_tool(message: str) -> str:
return 'hello ' + message
Consumo de una conexión personalizada en la herramienta Python
Si está desarrollando una herramienta de Python que requiere llamar a servicios externos con autenticación, utilice una conexión personalizada en un flujo de comandos. Con esta conexión, puede 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 todas las claves de API de su modelo de lenguaje extenso u otras credenciales necesarias.
Importante
En este artículo se proporciona soporte heredado para proyectos basados en concentradores. No funcionará para proyectos de Foundry. Vea ¿Cómo sé qué tipo de proyecto tengo?
SDK nota de compatibilidad: Los ejemplos de código requieren una versión específica del SDK de Microsoft Foundry. Si encuentra problemas de compatibilidad, considere migrar de un proyecto basado en hub a un proyecto Foundry.
- Una cuenta de Azure con una suscripción activa. Si no tiene una, cree una cuenta de free Azure, que incluye una suscripción de evaluación gratuita.
- Si no tiene uno, cree un proyecto basado en hub.
Vaya a la página Centro de administración del proyecto.
En el encabezado Hub o Project, seleccione Recursos conectados.
Seleccione + Nueva conexión.
Seleccione Servicio personalizado . Puede definir el nombre de la conexión. Seleccione Agregar pares clave-valor para agregar varios pares clave-valor para almacenar las credenciales y las claves.
Nota
Asegúrese de que al menos un par clave-valor esté establecido como secreto. De lo contrario, la conexión no se crea correctamente. Para establecer un par clave-valor como secreto, seleccione secreto para cifrar y almacenar el valor de clave.
Consumo de una conexión personalizada en Python
Para consumir una conexión personalizada en tu código en Python:
- En la sección de código del nodo de Python, importe la biblioteca de conexiones personalizada mediante
from promptflow.connections import CustomConnection. Defina un parámetro de entrada del tipoCustomConnectionen la función de herramienta. - Analice la entrada en la sección de entrada. A continuación, seleccione la conexión personalizada de destino en la lista desplegable de valores.
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