Agregación de variables y nodos de asignación de variables en el flujo de trabajo de Dify
Tutoriales prácticos sobre IAActualizado hace 9 meses Círculo de intercambio de inteligencia artificial 33K 00
agregación de variables
defina
Agregue variables de múltiples ramas en una sola variable para una configuración uniforme de los nodos descendentes.
El nodo de Agregación de Variables (antes nodo de Asignación de Variables) es un nodo clave en el flujo de trabajo que se encarga de consolidar las salidas de diferentes ramas, asegurando que los resultados se referencian y se accede a ellos a través de una única variable unificada independientemente de la rama que se ejecute. Esto es muy útil en el caso de múltiples ramas, donde variables con el mismo rol en diferentes ramas pueden ser mapeadas a una única variable de salida, evitando definiciones duplicadas en nodos aguas abajo.
toma
La agregación de variables simplifica la gestión del flujo de datos al permitir que varias salidas, como la clasificación de problemas o la bifurcación condicional, se agreguen en una única salida para su uso y manipulación por los nodos posteriores del proceso.
Agregación múltiple tras la clasificación del problema
Sin añadir la agregación de variables, los nodos LLM descendentes y de respuesta directa deben definirse repetidamente para las ramas de clasificación 1 y clasificación 2 después de que se hayan recuperado de diferentes bases de conocimiento.
- Clasificación de problemas (agregación sin variables)
La agregación de variables permite agregar la salida de dos nodos de recuperación de conocimientos en una sola variable.
- Agregación múltiple tras la clasificación del problema
Agregación múltiple tras bifurcación condicional IF/ELSE
- Agregación múltiple tras la clasificación del problema
Requisitos de formato
El agregador de variables admite la agregación de múltiples tipos de datos, incluidas las cadenas (String
), cifras (Number
), la documentación (File
) objeto (Object
) y matrices (Array
)
Los agregadores de variables sólo pueden agregar variables del mismo tipo de datos. Si la primera variable que se añade al nodo de agregación de variables está en el formato de datos de la variable Si el formato de datos de la primera variable añadida a una variable dentro de un nodo de agregación de variables es String
La variable que se puede añadir se filtra automáticamente para las conexiones posteriores al String
Tipo.
agrupación de agregados
Con la agrupación agregada activada, el agregador de variables puede agregar múltiples grupos de variables, con el mismo tipo de datos requerido para la agregación dentro de cada grupo.
asignación variable
defina
El nodo Asignación de variables se utiliza para realizar asignaciones de variables a variables con permisos de escritura, y se admiten las siguientes variables con permisos de escritura:
Uso: El nodo Asignación de variables permite asignar una variable dentro de un flujo de trabajo a una variable de sesión para su almacenamiento temporal y que pueda ser referenciada continuamente en diálogos posteriores.

Ejemplos de escenarios
Puede establecer el proceso de diálogo delContexto, archivos cargados en el cuadro de diálogo, preferencias introducidas por el usuarioetc., se escriben en las variables de sesión a través del nodo de asignación de variables y se utilizan como información de referencia para los diálogos posteriores.
Escena 1
Determina automáticamente la extracción y el almacenamiento de información en el diálogo El LLM puede registrar información importante introducida por el usuario dentro de la sesión a través de un conjunto de variables de sesión y hacer que el LLM personalice las respuestas en conversaciones posteriores basándose en la información histórica almacenada en las variables de sesión.
Ejemplo: Tras iniciar un diálogo, LLM determina automáticamente si la entrada del usuario contiene datos, preferencias o historial que sea necesario recordar. En caso afirmativo, LLM extrae y almacena esta información antes de utilizarla como contexto para la respuesta. Si no hay nueva información que almacenar, LLM responderá a la pregunta directamente utilizando su propio conocimiento de memoria relevante.

Proceso de configuración:
- Establecer variables de sesión En primer lugar, configure una matriz de variables de sesión
memories
de tipo array[object], se utiliza para almacenar los datos, preferencias e historial del usuario. - Memoria juiciosa y extractiva ::
- Añade un nodo de juicio condicional que utiliza LLM para determinar si la entrada del usuario contiene nueva información que necesita ser recordada.
- Si hay información nueva, sube por la rama y utiliza el nodo LLM para extraer esa información.
- Si no hay información nueva, baje por la rama y responda directamente utilizando la memoria existente.
- Asignación/escritura variable ::
- En la rama superior, la nueva información extraída se añade (append) mediante el nodo de asignación de variables a la rama
memories
en la matriz. - Utilice la función escape para convertir las cadenas de texto emitidas por LLM a un formato adecuado para su almacenamiento en array[object].
- En la rama superior, la nueva información extraída se añade (append) mediante el nodo de asignación de variables a la rama
- Lectura y uso de variables ::
- En el nodo LLM posterior, el
memories
El contenido del array se convierte en una cadena y se inserta en los Prompts de LLM como contexto. - LLM utiliza esta información histórica para generar respuestas personalizadas.
- En el nodo LLM posterior, el
El código del nodo de la figura es el siguiente:
- Escape de una cadena a un objeto
Copia
import json
defmain(arg1:str) ->object:
try:
# Parse the input JSON string
input_data = json.loads(arg1)
# Extract the memory object
memory = input_data.get("memory", {})
# Construct the return object
result ={
"facts": memory.get("facts", []),
"preferences": memory.get("preferences", []),
"memories": memory.get("memories", [])
}
return{
"mem": result
}
except json.JSONDecodeError:
return{
"result":"Error: Invalid JSON string"
}
exceptExceptionas e:
return{
"result":f"Error: {str(e)}"
}
- Escapar objeto a cadena
Copia
import json
defmain(arg1:list) ->str:
try:
# Assume arg1[0] is the dictionary we need to process
context = arg1[0]if arg1 else{}
# Construct the memory object
memory ={"memory": context}
# Convert the object to a JSON string
json_str = json.dumps(memory, ensure_ascii=False, indent=2)
# Wrap the JSON string in <answer> tags
result =f"<answer>{json_str}</answer>"
return{
"result": result
}
exceptExceptionas e:
return{
"result":f"<answer>Error: {str(e)}</answer>"
}
Escena 2
Registrar la información de preferencia inicial del usuario que recuerda la preferencia de idioma introducida por el usuario en la sesión y responde sistemáticamente en ese tipo de idioma en los diálogos posteriores.
Ejemplo: El usuario inicia un diálogo antes de que language
Si se especifica "Chino" en la casilla de entrada, el idioma se escribirá en la variable de sesión, y el LLM se referirá a la información de la variable de sesión cuando responda en los siguientes diálogos, y continuará respondiendo en "Chino" en los siguientes diálogos.

Proceso de configuración:
Establecer variables de sesión En primer lugar, establece una variable de sesión language
añada un nodo de juicio condicional al principio del flujo de la sesión para juzgar el language
Si el valor de la variable es nulo.
Escritura/asignación de variables : Al comienzo de la primera ronda de diálogo, si language
Si el valor de la variable es nulo, se utiliza el nodo LLM para extraer el idioma introducido por el usuario y, a continuación, se utiliza el nodo de asignación de variables para escribir el tipo de idioma en la variable de sesión language
Medio.
Lectura variable : En las siguientes rondas del diálogo language
ya almacena la preferencia de idioma del usuario. En diálogos posteriores, el nodo LLM responde con el tipo de idioma preferido por el usuario haciendo referencia a la variable de idioma.
Escena 3
Lista de comprobación auxiliar Comprobación La lista de comprobación es un conjunto de variables que pueden utilizarse para registrar las entradas del usuario dentro de una sesión mediante variables de sesión, actualizar el contenido de la lista de comprobación y comprobar si faltan elementos en diálogos posteriores.
Ejemplo: Después de iniciar un diálogo, LLM pedirá al usuario que introduzca los elementos de la Lista de Comprobación en el cuadro de diálogo, una vez que el usuario mencione los elementos de la Lista de Comprobación, ésta se actualizará y se almacenará en la variable de sesión. lLM recordará al usuario que siga añadiendo los elementos que faltan después de cada ronda de diálogo.

Proceso de configuración:
- Establecimiento de variables de sesión: En primer lugar, establezca una variable de sesión
ai_checklist
se hace referencia a la variable dentro del LLM como contexto a examinar. - Asignación/escritura variable: En cada ronda de diálogo, comprueba dentro del nodo LLM el
ai_checklist
y compararla con la entrada del usuario, si el usuario proporciona nueva información, actualiza la Lista de Comprobación y escribe la salida en el nodo de asignación de variables delai_checklist
Dentro. - Variables a leer: Leer cada ronda de diálogo
ai_cheklist
valores de la lista de comprobación y compara la entrada del usuario hasta completar todas las listas de comprobación.
Asignación de nodos mediante variables
Haga clic a la derecha del nodo +
No., seleccione "Asignación de variables" que configura las variables que deben asignarse a la variable de origen. El nodo Asignación de variables permite asignar valores a múltiples variables al mismo tiempo.

Variables de ajuste
Variables: Selecciona la variable a la que hay que asignar un valor.
Variables de ajuste: Selecciona la variable que se va a asignar, es decir, especifica la variable fuente que se va a convertir.
La lógica de asignación de variables en la figura anterior: se tiene en cuenta la preferencia de idioma rellenada por el usuario en la página inicial. Start/language
Asignación de variables a variables de sesión a nivel de sistema language
Dentro.
Especifica el modo de escritura de la variable
El tipo de datos de la variable de destino afectará al modo de escritura de la variable. A continuación se indican los modos de escritura entre distintas variables:
- El tipo de datos de la variable de destino es
String
.
- sobrescribir La variable de origen se sobrescribe directamente en la variable de destino.
- borrar A continuación se enumeran las variables seleccionadas.
- establecer Si desea especificar un valor manualmente, no es necesario establecer la variable de origen.
- El tipo de datos de la variable de destino es
Number
.
- sobrescribir La variable de origen se sobrescribe directamente en la variable de destino.
- borrar A continuación se enumeran las variables seleccionadas.
- establecer Si desea especificar un valor manualmente, no es necesario establecer la variable de origen.
- procesamiento digital La variable objetivo se somete a un
加减乘除
plataforma
- El tipo de datos de la variable de destino es
Object
.
- sobrescribir El contenido de la variable de origen se sobrescribe directamente en la variable de destino.
- borrar A continuación se enumeran las variables seleccionadas.
- establecer Si desea especificar un valor manualmente, no es necesario establecer la variable de origen.
- El tipo de datos de la variable de destino es
Array
.
- sobrescribir El contenido de la variable de origen se sobrescribe directamente en la variable de destino.
- borrar A continuación se enumeran las variables seleccionadas.
- un título póstumo adicional añade un nuevo elemento a la variable de matriz del objetivo
- extensiones Si quieres añadir un nuevo array a la variable array del objetivo, es decir, añadir más de un elemento a la vez, puedes hacerlo.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Puestos relacionados
Sin comentarios...