Saltearse al contenido

Python Code

Python Code te permite escribir unas líneas de código Python para hacer con tus datos justo lo que necesitas: calcular importes, limpiar y reorganizar información, combinar campos o aplicar reglas propias de tu negocio. El componente recibe los datos del paso anterior, ejecuta tu código de forma aislada y entrega lo que tu código devuelva.

También puede trabajar como herramienta de un agente: el agente lo llama cuando lo necesita y le pasa los valores que haya decidido.

Cuándo usarlo

  • Calcular totales, descuentos o impuestos a partir de los datos de un pedido.
  • Reorganizar la información que devuelve un servicio para que encaje con el siguiente paso.
  • Aplicar reglas propias, como clasificar clientes según su volumen de compra.
  • Darle a un agente una operación concreta que debe hacer siempre igual.

Configuración

CampoQué hace
Input DataLos datos con los que trabaja tu código. Conéctalo a la salida del componente anterior. Admite mensajes, datos y archivos.
Python CodeEl código que se ejecuta. Los datos de entrada están disponibles en data y el resultado es lo que indiques con return. Si no escribes return, el componente no entrega nada.

Lo que tu código tiene a mano

  • data: los datos de entrada. Un registro llega como un conjunto de campos, por ejemplo data["importe"]; una lista llega como una lista de registros.
  • env: las variables del entorno asignado al flujo, por ejemplo env.get("MONEDA"). Si el flujo no tiene entorno, está vacío.
  • components: lo que han devuelto otros componentes del flujo en esta ejecución, cuando el componente trabaja como paso del flujo.
  • args: los valores que envía el agente cuando el componente trabaja como herramienta.
  • tools y models: las herramientas y los modelos que conectes al componente (ver las opciones avanzadas). Con return tools o return models ves cuáles tienes disponibles y cómo llamarlos.
  • print(): lo que escribas con print() aparece en el registro de la ejecución, pero no forma parte del resultado.

Un ejemplo sencillo que calcula el total de un pedido:

total = data["cantidad"] * data["precio"]
return {"pedido": data["pedido"], "total": round(total, 2)}

Opciones avanzadas

CampoQué hace
PackagesMódulos adicionales que necesita tu código, uno por línea. La primera vez que se usan puede tardar unos segundos más.
Volume DirectoryNombre de una carpeta de tu almacenamiento donde el código puede guardar archivos que se conservan entre ejecuciones. En el código, la ruta de esa carpeta está en volume. Déjalo vacío si no necesitas guardar archivos.
Python VersionVersión del lenguaje con la que se ejecuta tu código. Por defecto, 3.13.
Enable Tools InputAñade la entrada Tools para conectar herramientas y llamarlas desde el código con tools["nombre"](...). Desactivado por defecto.
Enable Models InputAñade la entrada Model para conectar modelos de IA y llamarlos desde el código con models["nombre"]("tu pregunta"). Desactivado por defecto.

Uso como herramienta

Estos campos se aplican cuando conectas la salida Tool a un agente.

CampoQué hace
Tool NameNombre con el que el agente ve la herramienta. Por defecto, py_tool.
Tool DescriptionExplica al agente para qué sirve la herramienta y cuándo usarla.
Tool Input SchemaLos valores que el agente debe enviar al llamar a la herramienta. Llegan a tu código en args.

Resultado

  • Processed Data: lo que devuelve tu código. Un conjunto de campos se convierte en un registro, una lista en una lista de registros (cada conjunto de campos como un registro, cualquier otro valor como un registro con él en el campo text), y un texto o un número en un registro con ese valor en el campo text.
  • Tool: el componente como herramienta para un agente. Al conectar una de las dos salidas, la otra se oculta.

Para aplicar el código a cada elemento de una lista por separado, usa Batch Mode.

Ejemplo

Recibes pedidos de tu tienda con cantidad y precio unitario, y tu hoja de facturación necesita el total con impuestos. Conectas los pedidos a Python Code y escribes un código que multiplica la cantidad por el precio, suma el 21 % y devuelve el número de pedido con su total. La salida Processed Data va directamente al componente que escribe en la hoja.

Buenas prácticas

  • Termina siempre con return. Para ver cómo llegan tus datos, empieza con return data y ejecuta el componente.
  • Guarda las claves y direcciones de servicios en el entorno del flujo y léelas con env, en lugar de escribirlas en el código.
  • Si una tarea ya la hace otro componente, como filtrar o unir datos, usa ese componente: el flujo será más fácil de entender.

Componentes relacionados