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.
Advertencia
El flujo de mensajes en Microsoft Foundry y Azure Machine Learning se retirarán el 20 de abril de 2027. Ya no se recomienda el flujo de mensajes para el nuevo desarrollo. 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 flujo de mensajes ya no reciben actualizaciones, incluidas las actualizaciones de seguridad y paquetes. Esto se aplica a las imágenes en tiempo de ejecución del flujo de mensajes, como promptflow-runtime, promptflow-runtime-stabley promptflow-python.
Después del 20 de abril de 2027, el flujo de mensajes, 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 de flujo de mensajes relacionadas, ya no se admitirán ni estarán disponibles.
Si la aplicación depende de las implementaciones de flujo de mensajes o imágenes en tiempo de ejecución, planee mover esas cargas de trabajo a alternativas admitidas, 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 Python permite crear fragmentos de código personalizados como nodos ejecutables autocontenido en el flujo de solicitud. Puede crear fácilmente herramientas de Python, editar código y comprobar los resultados.
Entradas
| Name | Tipo | Descripción | Obligatorio |
|---|---|---|---|
| Código | string | fragmento de código de Python | Sí |
| Entradas | - | Lista de parámetros de función de herramienta y sus asignaciones | - |
Types
| 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 |
| list | param: list o param: List[T] | Tipo de lista |
| object | param: dict o 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 elegir la conexión.
- Durante la ejecución, el flujo de solicitud intenta encontrar la conexión con el mismo nombre del valor del parámetro pasado.
Note
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 el valor devuelto de la función de herramienta Python.
Escritura con la herramienta de Python
Use las instrucciones siguientes al escribir con la herramienta Python.
Directrices
Python código de herramienta debe constar de código completo Python, incluidas las importaciones de módulo necesarias.
Python código de herramienta 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@tooldecorador solo una vez dentro del fragmento de código.En el ejemplo siguiente se define la herramienta Python
my_python_tool, que está decorada con@tool.Python parámetros de función de herramienta se deben asignar en la sección
Inputs.En el ejemplo siguiente se define la entrada
messagey seworldle asigna .Una función de herramienta Python debe tener un valor devuelto.
En el ejemplo siguiente se 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
| Name | Tipo | Valor de ejemplo en YAML de flujo | Valor pasado a la función |
|---|---|---|---|
| message | string | world |
world |
| my_conn | CustomConnection |
my_conn |
CustomConnection objeto |
El flujo del símbolo del sistema intenta encontrar la conexión denominada my_conn durante la ejecución.
Salidas
"hello world"
Llamada a un modelo de razonamiento desde la herramienta Python
Si necesita llamar a modelos de razonamiento que el nodo LLM no admite, puede usar la herramienta Python para llamar a los modelos directamente. En el ejemplo siguiente se muestra cómo llamar a un modelo de razonamiento desde la herramienta Python.
from promptflow import tool
from promptflow.connections import AzureOpenAIConnection
from openai import AzureOpenAI
@tool
def my_python_tool(
OpenAIConnection: AzureOpenAIConnection,
scope_reply: str
):
model_name = "o3-mini"
deployment = "o3-mini"
print(OpenAIConnection['api_base'])
endpoint = OpenAIConnection['api_base'] #"https://<your endpoint>.openai.azure.com/"
model_name = "o3-mini" #your model name
deployment = "o3-mini" #your deployment name
subscription_key = OpenAIConnection['api_key']
api_version = "2024-12-01-preview" #Supply an API version that supports reasoning models.
client = AzureOpenAI(
api_version=api_version,
azure_endpoint=endpoint,
api_key=subscription_key,
)
response = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": "I am going to Paris, what should I see?",
}
],
max_completion_tokens=100000,
model=deployment
)
return response.choices[0].message.content
Conexión personalizada en la herramienta de 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 todas las claves 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, seleccione 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 las claves seleccionando Agregar pares clave-valor.
Note
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 Python, importe la biblioteca de conexiones personalizada
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 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