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": {"Schools": 2, "Internet": 1, "Logistics": 1, "Hardware": 1, "Educational Institutions": 1, "Traditional Retail": 1, "Traditional Media": 1, "Manufacturing": 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": {"school": 2, "internet": 1, "logistics": 1, "hardware": 1, "educational institutions": 1, "traditional retail": 1, "traditional media": 1, "manufacturing": 1}} Escreva um trecho de código para a função Pytho ao lado, que aceita entrada json, junta todos os valores-chave de data_result em uma string, com ";" separando cada chave, e os atribui à variável exl_ key. result, accept json input, splice all key values of data_result into a string, separate each key with ";", assign to variable exl_ key, splice all value values of data_result into a string, separate each value with ";", assign to variable exl_value, return 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 retorno
retorna um resultado do tipo dicionário (dict).
importar json
def main(data: dict) -> dict.
dados = json.loads(dados)
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 {chave: valor, chave: valor}
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 entrada de texto
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 entrada de texto
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.