Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

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

2024-06-20 5.7 K

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

Copy

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

Copy

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.

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Digite as palavras-chave.Acessibilidade à pesquisa do BingFerramentas de IA, encontre rapidamente as ferramentas de IA neste site.

voltar ao topo