Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

Nós de agregação de variáveis e atribuição de variáveis no fluxo de trabalho da Dify

agregação de variáveis

definir

Agregue variáveis de várias ramificações em uma única variável para configuração uniforme dos nós downstream.

O nó Agregação de variáveis (anteriormente chamado de nó Atribuição de variáveis) é um nó-chave no fluxo de trabalho responsável por consolidar as saídas de diferentes ramificações, garantindo que os resultados sejam referenciados e acessados por meio de uma única variável unificada, independentemente da ramificação executada. Isso é muito útil no caso de várias ramificações, em que as variáveis com a mesma função em diferentes ramificações podem ser mapeadas para uma única variável de saída, evitando definições duplicadas em nós downstream.

tomar

A agregação de variáveis simplifica o gerenciamento do fluxo de dados, permitindo que várias saídas, como a classificação de problemas ou a ramificação condicional, sejam agregadas em uma única saída para uso e manipulação por nós a jusante do processo.


Agregação múltipla após a classificação do problema

Sem adicionar a agregação de variáveis, o LLM downstream e os nós de resposta direta precisam ser definidos repetidamente para os ramos de classificação 1 e classificação 2 depois de terem sido recuperados de diferentes bases de conhecimento.

Dify工作流中的变量聚合节点-1
Classificação de problemas (agregação sem variáveis)

 

A adição de agregação de variáveis permite agregar a saída de dois nós de recuperação de conhecimento em uma única variável.

Dify工作流中的变量聚合节点-1
Agregação múltipla após a classificação do problema

 

Agregação múltipla após ramificação condicional IF/ELSE

Dify工作流中的变量聚合节点-1
Agregação múltipla após a classificação do problema

 

Requisitos de formatação

O Agregador de variáveis suporta a agregação de vários tipos de dados, incluindo cadeias de caracteres (String), figuras (Number), documentação (File) objeto (Object) e matrizes (Array)

Os agregadores de variáveis só podem agregar variáveis do mesmo tipo de dados. Se a primeira variável a ser adicionada ao nó de agregação de variáveis estiver no formato de dados da variável Se o formato de dados da primeira variável adicionada ao nó de agregação de variáveis for StringA variável que pode ser adicionada é filtrada automaticamente para conexões subsequentes com o String Tipo.

agrupamento agregado

Com o agrupamento de agregados ativado, o agregador de variáveis pode agregar vários grupos de variáveis, com o mesmo tipo de dados necessário para a agregação em cada grupo.

 

atribuição de variáveis

definir

O nó Atribuição de variável é usado para fazer atribuições de variáveis a variáveis graváveis, e as seguintes variáveis graváveis são suportadas:

Uso: o nó Atribuição de variável permite atribuir uma variável em um fluxo de trabalho a uma variável de sessão para armazenamento temporário e pode ser continuamente referenciada em diálogos subsequentes.

Dify工作流中的变量聚合和变量赋值节点-1

Cenários de amostra

Você pode definir o processo de diálogo doContexto, arquivos carregados na caixa de diálogo, preferências inseridas pelo usuárioetc., são gravados nas variáveis de sessão por meio do nó de atribuição de variáveis e usados como informações de referência para diálogos subsequentes.

Cena 1

Determina automaticamente a extração e o armazenamento de informações no diálogo O LLM pode registrar informações importantes inseridas pelo usuário na sessão por meio de uma matriz de variáveis de sessão e fazer com que o LLM personalize as respostas em conversas subsequentes com base nas informações históricas armazenadas nas variáveis de sessão.

Exemplo: após iniciar um diálogo, o LLM determina automaticamente se a entrada do usuário contém fatos, preferências ou histórico que precisam ser lembrados. Em caso afirmativo, o LLM extrai e armazena essas informações antes de usá-las como contexto para a resposta. Se não houver novas informações a serem armazenadas, o LLM responderá à pergunta diretamente usando seu próprio conhecimento de memória relevante.

Dify工作流中的变量聚合和变量赋值节点-1

Processo de configuração:

  1. Definição de variáveis de sessão Primeiro, configure uma matriz de variáveis de sessão memoriesdo tipo array[object], é usado para armazenar os fatos, as preferências e o histórico do usuário.
  2. Memória extrativa e de julgamento ::
    • Adicione um nó de julgamento condicional que use o LLM para determinar se a entrada do usuário contém novas informações que precisam ser lembradas.
    • Se houver novas informações, suba na ramificação e use o nó LLM para extrair essas informações.
    • Se não houver novas informações, vá até o ramo e responda diretamente usando a memória existente.
  3. Atribuição/escrita variável ::
    • Na ramificação superior, as novas informações extraídas são anexadas (append) usando o nó de atribuição de variável para o memories na matriz.
    • Use a função de escape para converter as cadeias de texto geradas pelo LLM em um formato adequado para armazenamento na matriz[objeto].
  4. Leitura e uso de variáveis ::
    • No nó LLM subsequente, o memories O conteúdo da matriz é convertido em uma cadeia de caracteres e inserido nos Prompts do LLM como contexto.
    • O LLM usa essas informações históricas para gerar respostas personalizadas.

O código do nó de código na figura é o seguinte:

  1. Escape de uma string em um objeto

Cópia

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)}"
}
  1. Escape de objeto para string

Cópia

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>"
}

Cena 2

Registre as informações de preferência inicial do usuário que lembra a preferência de idioma inserida pelo usuário na sessão e responde consistentemente nesse tipo de idioma em diálogos subsequentes.

Exemplo: O usuário inicia um diálogo antes do language Se "Chinês" for especificado na caixa de entrada, o idioma será gravado na variável de sessão, e o LLM fará referência às informações da variável de sessão ao responder nos diálogos seguintes e continuará a responder em "Chinês" nos diálogos seguintes.

Dify工作流中的变量聚合和变量赋值节点-1

Processo de configuração:

Definição de variáveis de sessão Primeiro, defina uma variável de sessão languageSe o fluxo de sessão for muito alto, adicione um nó de julgamento condicional no início do fluxo de sessão para julgar o language Se o valor da variável é nulo.

Gravação/atribuição de variável No início da primeira rodada de diálogo, se language Se o valor da variável for nulo, o nó LLM será usado para extrair o idioma inserido pelo usuário e, em seguida, o nó de atribuição de variável será usado para gravar o tipo de idioma na variável de sessão language Médio.

Leitura de variáveis Em rodadas subsequentes do diálogo language já armazena a preferência de idioma do usuário. Em diálogos subsequentes, o nó do LLM responde com o tipo de idioma preferido do usuário, fazendo referência à variável de idioma.

Cena 3

Lista de verificação auxiliar Verificação A Checklist é um conjunto de variáveis que pode ser usado para registrar as entradas do usuário em uma sessão por meio de variáveis de sessão, atualizar o conteúdo da Checklist e verificar se há itens ausentes em diálogos subsequentes.

Exemplo: depois de iniciar um diálogo, o LLM solicitará ao usuário que insira os itens da lista de verificação na caixa de diálogo. Quando o usuário mencionar os itens da lista de verificação, ela será atualizada e armazenada na variável de sessão.

Dify工作流中的变量聚合和变量赋值节点-1

Processo de configuração:

  • Definição de variáveis de sessão: Primeiro, defina uma variável de sessão ai_checklista variável é referenciada no LLM como o contexto a ser examinado.
  • Atribuição/escrita variável: Em cada rodada de diálogo, no nó do LLM, verifique o ai_checklist e compará-lo com a entrada do usuário; se o usuário fornecer novas informações, atualize a lista de verificação e grave a saída no arquivo ai_checklist No interior.
  • Leitura variável: Cada rodada de diálogo diz ai_cheklist valores e comparar a entrada do usuário até que todas as listas de verificação sejam concluídas.

Atribuição de nós usando variáveis

Clique no lado direito do nó  No., selecione "Atribuição de variável" que configura as variáveis que precisam ser atribuídas com a variável de origem. O nó Atribuição de variável suporta a atribuição de valores a várias variáveis ao mesmo tempo.

Dify工作流中的变量聚合和变量赋值节点-1

Configuração de variáveis

Variáveis: Seleciona a variável à qual deve ser atribuído um valor.

Variáveis de configuração: Seleciona a variável a ser atribuída, ou seja, especifica a variável de origem a ser convertida.

A lógica de atribuição de variáveis na figura acima: a preferência de idioma preenchida pelo usuário na página inicial é levada em consideração. Start/language Atribuição de variáveis a variáveis de sessão em nível de sistema language No interior.

Especificar o modo de gravação da variável

O tipo de dados da variável de destino afetará o modo de gravação da variável. Veja a seguir os modos de gravação entre diferentes variáveis:

  1. O tipo de dados da variável de destino é String.
  • sobrescrever A variável de origem é sobrescrita diretamente na variável de destino.
  • claro A seguir, uma lista das variáveis que você selecionou.
  • configurar Se você quiser especificar um valor manualmente, não precisará definir a variável de origem.
  1. O tipo de dados da variável de destino é Number.
  • sobrescrever A variável de origem é sobrescrita diretamente na variável de destino.
  • claro A seguir, uma lista das variáveis que você selecionou.
  • configurar Se você quiser especificar um valor manualmente, não precisará definir a variável de origem.
  • processamento digital A variável-alvo é submetida a um加减乘除equipamento
  1. O tipo de dados da variável de destino é Object.
  • sobrescrever O conteúdo da variável de origem é sobrescrito diretamente na variável de destino.
  • claro A seguir, uma lista das variáveis que você selecionou.
  • configurar Se você quiser especificar um valor manualmente, não precisará definir a variável de origem.
  1. O tipo de dados da variável de destino é Array.
  • sobrescrever O conteúdo da variável de origem é sobrescrito diretamente na variável de destino.
  • claro A seguir, uma lista das variáveis que você selecionou.
  • um título póstumo adicional adiciona um novo elemento à variável de matriz do destino
  • extensões Se quiser adicionar uma nova matriz à variável de matriz do destino, ou seja, adicionar mais de um elemento por vez, você pode fazer isso.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Nós de agregação de variáveis e atribuição de variáveis no fluxo de trabalho da Dify
pt_BRPortuguês do Brasil