Isso pode ser feito no Dify Os fluxos de trabalho de IA foram lançados na versão 0.6.9 como ferramentas reutilizáveis (para uso no agente ou no fluxo de trabalho). Isso permite a integração com novos agentes e outros fluxos de trabalho, eliminando assim a duplicação de esforços. Dois novos nós de fluxo de trabalho e um nó aprimorado foram adicionados:
Iteração:Certifique-se de que a entrada seja uma matriz. O nó de iteração processará cada item da matriz, um por vez, até que todos os itens tenham sido processados. Por exemplo, se você precisar de um artigo longo, basta inserir alguns títulos. Isso gerará um artigo que contém um parágrafo para cada título, eliminando a necessidade de um agendamento complexo de prompts.
Extrator de parâmetros:A extração de parâmetros estruturados da linguagem natural usando modelos de linguagem grande (LLM) simplifica o processo de uso de ferramentas em fluxos de trabalho e de solicitações HTTP.
Agregador de variáveis:O atribuidor de variáveis aprimorado oferece suporte a uma seleção de variáveis mais flexível. Além disso, a experiência do usuário é aprimorada pela conectividade aprimorada dos nós.
O fluxo de trabalho na Dify é dividido em fluxo de bate-papo e fluxo de trabalho:Fluxo de bate-papoAplicativos de conversação para cenários baseados em diálogo, incluindo atendimento ao cliente, pesquisa semântica e lógica de várias etapas na criação de respostas.Fluxo de trabalhoAutomação: orientado para cenários de automação e lote, adequado para aplicativos como tradução de alta qualidade, análise de dados, geração de conteúdo, automação de e-mail e muito mais.
Portal do Chatflow
Portal de fluxo de trabalho
I. Fluxo de trabalho de tradução em três etapas
1. nó inicial
A definição de variáveis de entrada no nó Start suporta quatro tipos: texto, parágrafo, opções suspensas e números. Isso é mostrado abaixo:
No Chatflow, o nó inicial fornecerá variáveis internas do sistema: sys.query e sys.files. O sys.query é usado para a entrada de perguntas do usuário em aplicativos baseados em diálogo, e o sys.files é usado para carregar um arquivo em um diálogo, por exemplo, carregar uma imagem para entender o significado, que precisa ser usado com o modelo de compreensão de imagem ou ferramentas para entrada de imagem.
2. nó LLM (Reconhecimento de nomes próprios)
O SISTEMA fornece orientações de alto nível para o diálogo, como segue:
Identifique os termos técnicos inseridos pelo usuário. Mostre a correspondência dos termos técnicos antes e depois da tradução no formato {XXX} -> {XXX}.
{{#1711067409646.input_text#}}
Transformador
Token -> Token
Zero Shot -> Zero Shot
Poucos Tiros -> Poucos Tiros
<Nomes
No nó LLM, os prompts de entrada do modelo podem ser personalizados. Se você selecionar o modelo Chat, poderá personalizar os prompts SYSTEM/USER/ASSISTANT. Isso é mostrado abaixo:
número de série | conta para | nota | |
---|---|---|---|
1 | SYSTEM (palavra-chave) | Fornecimento de orientação de alto nível para o diálogo | pista |
2 | USUÁRIO | Fornecer comandos, consultas ou qualquer entrada baseada em texto para o modelo | Problemas do usuário |
3 | ASSISTENTE | Modelar respostas com base nas mensagens do usuário | Respostas dos ajudantes |
3. nó LLM2 (tradução direta)
O SISTEMA fornece orientações de alto nível para o diálogo, como segue:
Você é um tradutor profissional com proficiência em inglês, especialmente na conversão de artigos acadêmicos especializados em artigos científicos populares fáceis de entender. Por favor, ajude-me a traduzir a seguinte passagem chinesa para o inglês em um estilo semelhante ao de um artigo científico popular em inglês.
<Restrições
Favor traduzir diretamente do conteúdo em chinês, mantendo o formato original sem omitir nenhuma informação.
{{#1711067409646.input_text#}}
<Tradução direta
4. LLM3 (apontando problemas com a tradução direta)
O SISTEMA fornece orientações de alto nível para o diálogo, como segue:
Identifique problemas específicos com a tradução direta com base em seus resultados. É necessário fornecer descrições precisas, evitando ambiguidade e sem adicionar conteúdo ou formatação não incluídos no original. As especificidades incluem, mas não se limitam a:
Não está de acordo com a expressão em inglês, indique claramente onde ela é inadequada A estrutura da frase é estranha, indique o local exato, não é necessário fornecer sugestões de alterações, nós as ajustaremos na tradução livre subsequente A expressão é ambígua e difícil de entender, se possível, tente explicá-la
{{#1711067578643.text#}}
{{#1711067409646.input_text#}}
{{#1711067409646.input_text#}
5. LLM4 (tradução do italiano - segunda tradução)
O SISTEMA fornece orientações de alto nível para o diálogo, como segue:
Com base nos resultados da tradução direta inicial e nos problemas identificados posteriormente, realizaremos uma retradução com o objetivo de transmitir com mais precisão o significado do texto original. Nesse processo, nos esforçaremos para garantir que o conteúdo seja fiel ao significado original e mais alinhado com a expressão em inglês, facilitando a compreensão. Durante esse processo, manteremos o formato original inalterado.
<tradução direta
{{#1711067578643.text#}}
{{#1711067817657.text#}}
{{#1711067817657.text#
6. nó final
Definição de nomes de variáveis de saídasegunda_tradução
.
7. publicar o fluxo de trabalho como uma ferramenta
Publique o fluxo de trabalho como uma ferramenta para poder usá-lo no Agent, conforme mostrado abaixo:
Clique para acessar a página Tools (Ferramentas), conforme mostrado abaixo:
8. modelo Jinja
Ao escrever o Prompt, encontrei suporte para modelos Jinja. Consulte [3][4] para obter detalhes.
II. Uso do fluxo de trabalho no fluxo de trabalho
III. Uso do fluxo de trabalho em agentes
Essencialmente, tratar o fluxo de trabalho como uma ferramenta, ampliando assim os recursos do agente, é semelhante a outras ferramentas, como pesquisa na Internet, computação científica, etc.
IV. Teste individual do fluxo de trabalho de tradução em três etapas
A entrada é mostrada abaixo:
O Transformer é a base do Big Language Model.
A saída é mostrada abaixo:
O Transformer serve como base para modelos de linguagem em grande escala.
A página de detalhes é mostrada abaixo:
A página de rastreamento é mostrada abaixo:
1. iniciar
(1) Entrada
{
"input_text": "O transformador é a base do modelo de linguagem grande." ,
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
(2) Saída
{
"input_text": "O transformador é a base do modelo de linguagem grande." ,
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
2) LLM
(1) Processamento de dados
{
"model_mode": "chat",
"prompts": [
{
"role": "system", "text":" Identifique os termos técnicos inseridos pelo usuário.
"text":" Identifique os termos técnicos inseridos pelo usuário. Mostre a correspondência dos termos técnicos antes e depois da tradução no formato {XXX} -> {XXX}. \n \nO transformador é a base do Big Language Model. \n\nTransformer -> Transformer\nToken -> Token\nZero Shot -> Zero Shot \nFew Shot -> Few Shot\n",.
"files": []
}
]
}
(2) Saída
{
"text": "Transformer -> Transformer",
"usage": {
"prompt_tokens": 107,
"prompt_unit_price": "0,01",
"prompt_price_unit": "0,001",
"prompt_price": "0.0010700", "completion_tokens".
"completion_price_unit": "0.001",
"completion_price": "0.0000900", "total_tokens".
"currency": "USD", "latency": 1,01
"latency" (latência): 1.0182260260044131
}
}
3. LLM 2
(1) Processamento de dados
{
"model_mode": "chat",
"prompts": [
{
"role": "system", "text":" Você é um tradutor profissional com proficiência em inglês.
"text":" Você é um tradutor profissional com proficiência em inglês, especialmente na conversão de artigos acadêmicos especializados em artigos científicos populares fáceis de entender. Por favor, ajude-me a traduzir a seguinte passagem chinesa para o inglês em um estilo semelhante ao de um artigo científico popular em inglês. \n \nPor favor, traduza diretamente do conteúdo em chinês, mantendo o formato original sem omitir nenhuma informação. \n \nO Transformer é a base do Big Language Model. \n ",.
"files": []
}
]
}
(2) Saída
{
"text": "O Transformer é a base de grandes modelos de linguagem.", "usage": {
"usage": {
"prompt_price_unit": "0,001",
"prompt_price": "0.0001760", "completion_tokens".
"completion_price": "0.0000200", "total_tokens".
"currency": "USD", "latency": 0,5,5
"latency" (latência): 0.516718350991141
}
}
4. LLM 3
(1) Processamento de dados
{
"model_mode": "chat",
"prompts": [
{
"role": "system", "text":"\n Indique sua presença específica com base nos resultados da tradução direta.
"text":"\n Indique os problemas específicos com base nos resultados da tradução direta. É necessário fornecer descrições precisas, evitando ambiguidade e sem adicionar conteúdo ou formatação não incluídos no texto original. Os problemas específicos incluem, mas não se limitam a:\nIncompatível com a expressão em inglês, especifique onde ela é inadequadaA estrutura da frase é estranha, indique o local específico, sem a necessidade de fornecer sugestões de alteração, que serão ajustadas na tradução livre subsequenteA expressão é ambígua e difícil de entender, se possível, tente explicá-la\n\nO Transformer é a base de grandes modelos de linguagem.\n\nO Transformer é a base de grandes modelos de linguagem. \n".
"files": []
}
]
}
(2) Saída
{
"text": "A estrutura da frase é estranha e não está de acordo com a expressão em inglês." ,
"usage": {
"prompt_tokens": 217,
"prompt_unit_price": "0.001",
"prompt_price_unit": "0,001",
"prompt_price": "0.0002170", "completion_tokens".
"completion_price": "0.0000440", "total_tokens".
"total_tokens": 239, "total_price".
"latency": 0,8566757979860995
}
}
5. LLM 4
(1) Processamento de dados
{
"model_mode": "chat",
"prompts": [
{
"role": "system", "text":"Vamos traduzir novamente os resultados com base na tradução direta inicial e nos problemas identificados posteriormente.
"text":"Com base nos resultados da tradução direta inicial e nos problemas subsequentes identificados, realizaremos uma retradução com o objetivo de transmitir com mais precisão o significado do texto original. Nesse processo, buscaremos garantir que o conteúdo seja fiel ao significado original e mais alinhado com a expressão em inglês, facilitando a compreensão. Nesse processo, manteremos o formato original inalterado. \n \nO Transformer é a base de grandes modelos de idiomas.\n \nA estrutura da frase é estranha e não está de acordo com as expressões em inglês. \n ",
"files": []
}
]
}
(2) Saída
{
"text": "O Transformer serve como a base para modelos de linguagem em larga escala.", "usage": {
"usage": {
"prompt_tokens": 187, "prompt_unit_price": { "prompt_unit_price": {
"prompt_price_unit": "0,001",
"prompt_price": "0.0018700", "completion_tokens".
"completion_price_unit": "0.001",
"completion_price": "0.0003600", "total_tokens": "0.03", "completion_price_unit": "0.001",
"currency": "USD", "latency": 1,36
"latency" (latência): 1.3619857440062333
}
}
6. Conclusão
(1) Entrada
{
"second_translation": "O Transformer serve como base para modelos de linguagem em larga escala."
}
(2) Saída
{
"second_translation": "O Transformer serve como base para modelos de linguagem em larga escala."
}
V. Teste do fluxo de trabalho de tradução em três etapas no Agent
Ao iniciar a ferramenta:
Ao fechar a ferramenta:
VI. Questões relacionadas
1) Quando o fluxo de trabalho é acionado no agente?
Como acontece com as ferramentas, acionadas pela descrição da ferramenta. A implementação exata só fica clara quando se examina o código-fonte.
bibliografia
[1] Fluxo de trabalho: https://docs.dify.ai/v/zh-hans/guides/workflow
[2] Ensino prático da Dify para o ecossistema WeChat: https://docs.dify.ai/v/zh-hans/learn-more/use-cases/dify-on-wechat
[3] Documentação oficial do Jinja: https://jinja.palletsprojects.com/en/3.0.x/
[4] Modelo Jinja: https://jinja.palletsprojects.com/en/3.1.x/templates/