A tecnologia de inteligência artificial continua a evoluir, e os aplicativos de bate-papo estão se tornando mais ricos em recursos a cada dia. Recentemente, a plataforma Dify lançou uma atualização notável, seu aplicativo de bate-papo recém-lançado pode implementar diretamente a análise visual de dados no diálogo, proporcionando aos usuários uma experiência de comunicação mais intuitiva e eficiente. Embora o título do artigo mencione que a função é "tão eficaz quanto o ChatGPT", ainda há uma lacuna no aplicativo real, que se concentra mais na demonstração da tecnologia e na exploração da função. O artigo carece de explicações sobre o princípio. Leitura recomendada Os fluxos de trabalho da Dify e os assistentes inteligentes de IA reinventam o modelo de adoção de dados corporativos .
Solução de visualização de dados do ChatGPT
Em termos de visualização de dados, alguns dos principais produtos de IA, como o ChatGPT, têm sido ativamente explorados. Foi relatado que a solução de visualização de dados do ChatGPT também converte os comandos do usuário em código Python, que é executado em segundo plano e depois exibido em primeiro plano. No entanto, o gráfico de pizza gerado pelo ChatGPT tem problemas de compatibilidade na exibição em chinês.
Solução de visualização de dados da Dify para plataformas de baixo código
Dify A plataforma adota uma abordagem diferente, aproveitando sua natureza de baixo código, que permite aos usuários criar rapidamente aplicativos de bate-papo com recursos de visualização de dados sem escrever códigos complexos.
com base em ChatGPT A plataforma Dify oferece uma solução simples: ajustar o comando de código Pandas usado anteriormente para gerar diretamente o código Pyecharts, executar no ambiente sandbox em segundo plano e obter as imagens ou os arquivos HTML gerados. Essa é uma maneira relativamente simples de conseguir isso.
No entanto, este documento se concentrará na Dify, uma plataforma de design de carroceria inteligente de baixo código, para mostrar como é fácil visualizar dados, portanto, continuaremos a otimizar nossos designs de fluxo de trabalho anteriores para aproveitar ao máximo as ferramentas integradas da Dify.
A plataforma Dify tem ferramentas integradas de geração de gráficos que suportam gráficos de pizza, gráficos de barras, gráficos de linhas e outros tipos de gráficos. Os usuários podem entender intuitivamente os requisitos de parâmetros dessas três ferramentas de geração de gráficos, todos eles em formato de cadeia e no mesmo formato.
Otimização do fluxo de trabalho: conversão do formato de dados
Para combinar a saída do fluxo de trabalho com os requisitos de parâmetros da ferramenta de gráficos da Dify, o fluxo de trabalho precisa ser otimizado.
Os dados JSON a seguir são um exemplo da saída do fluxo de trabalho no tutorial anterior e estão em um formato que não pode ser usado diretamente na ferramenta de gráficos da Dify.
{"status": "success", "data_result": {"学校": 2, "互联网": 1, "物流": 1, "硬件": 1, "教育机构": 1, "传统零售": 1, "传统媒体": 1, "制造业": 1}}
Aqui você optou por usar o código Python para a conversão do formato de dados e, para isso, precisa adicionar um nó de execução de código ao fluxo de trabalho e preenchê-lo com o código Python apropriado.
Esse código Python pode ser gerado com a ajuda do Big Language Model, o gerador de código incorporado na plataforma Dify, que requer apenas uma descrição clara dos requisitos. Aqui está um exemplo dos prompts usados para gerar o código.
{"status": "success", "data_result": {"学校": 2, "互联网": 1, "物流": 1, "硬件": 1, "教育机构": 1, "传统零售": 1, "传统媒体": 1, "制造业": 1}} 边写一段Pytho函数代码,,接受json输入,将data_result的所有key值拼接为一个字符串,每个key之间用 ";" 分隔,赋值到变量exl_ key,将data_result的所有value值拼接为一个字符串,每个value之间用 ";" 分隔,赋值到变量exl_value,将exl_key exl_value返回
Há alguns problemas menores com o código gerado diretamente pelo gerador de código da Dify, por exemplo, o resultado de retorno contém apenas uma variável, enquanto a ferramenta de gráfico de pizza da Dify exige duas variáveis. Portanto, o código gerado precisa ser modificado para garantir que a variável return
retorna um resultado do tipo dicionário (dict).
import json
def main(data: dict) -> dict:
data = json.loads(data)
exl_key = ";".join(data["data_result"].keys())
exl_value = ";".join(map(str, data["data_result"].values()))
return {'exl_key': exl_key, 'exl_value': exl_value}
Há um possível problema com o código acima, se o formato de dados gerado pelo modelo grande não corresponder ao esperado {key: value, key: value}
a execução do código reportará um erro. Esse problema será explorado em um artigo posterior; este artigo se concentra primeiro na implementação da funcionalidade.
Além disso, o formato das variáveis de entrada recebidas pelo nó de execução de código também é propenso a erros. A entrada padrão é uma cadeia de caracteres, que requer o uso do parâmetro json
para realizar uma conversão de tipo forçada. Caso contrário, ocorrerá o seguinte erro.
Operação do fluxo de trabalho e apresentação de resultados
O fluxo de trabalho agora pode ser executado em sua totalidade para ver os resultados finais.
Nesse ponto, o fluxo de trabalho foi configurado com êxito para gerar resultados de gráficos de pizza com base nas necessidades de análise de dados do usuário.
Extensões de fluxo de trabalho: suporte para vários tipos de gráficos
No entanto, se o usuário precisar gerar gráficos de barras ou de linhas, o fluxo de trabalho atual precisará ser ampliado.
A ideia de otimização é: em primeiro lugar, um nó de "Extração de parâmetros" precisa ser adicionado para que o modelo grande possa identificar a necessidade de visualização de gráficos, como gráficos de pizza ou de barras, a partir de comandos do usuário. Em segundo lugar, um nó de "ramificação condicional" deve ser adicionado entre os nós de processamento de dados e de visualização de gráficos de pizza, de modo que diferentes caminhos de ramificação possam ser selecionados de acordo com os resultados da extração de parâmetros. O projeto final do fluxo de trabalho é mostrado na figura abaixo.
A seguir, descrevemos em detalhes como configurar o extrator de parâmetros. Como você pode ver na interface de configuração, ela contém os três aspectos principais a seguir:
- variável de entradaEspecifica que o modelo grande extrai parâmetros do texto do comando do usuário.
- parâmetro de extraçãoDefinem os parâmetros a serem extraídos, ou seja, se a instrução do usuário contém informações sobre o tipo de gráfico. Se forem extraídas informações relevantes, elas serão atribuídas a uma nova variável
exl_type
. - diretrizes:: Palavras-chave enviadas pelo extrator de parâmetros para o modelo grande. A tarefa de extração de parâmetros é relativamente simples para modelos grandes.
Dessa forma, os nós de "ramificação condicional" subsequentes serão modelados pelo modelo maior com base nos parâmetros extraídos. exl_type
O nó "Conditional Branch" parece complexo, mas o princípio é simples. O nó "Conditional Branching" (Ramificação condicional) parece complexo, mas o princípio é simples: de acordo com o tipo de saída do gráfico do modelo grande, selecione a ramificação correspondente para gerar o gráfico correspondente.
Em seguida, demonstramos como o fluxo de trabalho geral funciona. Os resultados mostram bons resultados, indicando que o fluxo de trabalho pode ser aplicado ao aplicativo Big Model Chat.
Publicação de fluxos de trabalho como ferramentas Dify e integração em aplicativos de agentes
Para integrar esse fluxo de trabalho ao Dify, primeiro você precisa publicá-lo como uma ferramenta integrada do Dify. Na interface do fluxo de trabalho, clique no botão Publicar no canto superior direito e selecione Publicar como ferramenta.
Observação: Esta é uma etapa crítica. Como regra geral, os fluxos de trabalho publicados como ferramentas devem ter seu formato de parâmetro definido como text-input
tipo. Somente então, em um aplicativo Dify Agent, o modelo grande chamará a ferramenta corretamente por meio de uma chamada de função. Caso contrário, o modelo grande ignorará a ferramenta. Portanto, é importante ajustar as variáveis de entrada do fluxo de trabalho, conforme mostrado na figura a seguir text-input
antes de publicá-lo como uma ferramenta.
Depois de concluir as etapas acima, você pode integrar o fluxo de trabalho de análise de dados na Dify como uma chamada de função. Em seguida, crie um aplicativo Agent na Dify. Se você não estiver familiarizado com o aplicativo Agent, pode seguir as etapas primeiro e, depois, entenderemos seu princípio e aplicação passo a passo. Depois disso, escreverei um artigo para comparar a diferença entre os diferentes tipos de aplicativos na Dify.
Em seguida, basta adicionar a ferramenta publicada ao aplicativo Agent. Nesse ponto, a configuração está concluída. Visualize e depure diretamente para ver o resultado final.
Por meio das etapas acima, a plataforma Dify integra com sucesso aplicativos de bate-papo com funções de visualização de dados, proporcionando aos usuários uma experiência interativa totalmente nova. Com os recursos de baixo código da Dify, os usuários podem criar rapidamente aplicativos avançados e inteligentes e aproveitar a conveniência da tecnologia de IA sem a necessidade de codificação profunda.