O LangStudio oferece nós de workflow pré-construídos para controle de fluxo, LLMs, agentes, recuperação de dados, análise de documentos, reconhecimento de fala e scripts Python.
Controle de fluxo
Start
Um application flow pode ter apenas um nó Start.
O nó Start marca o início da execução e declara os parâmetros de entrada do application flow.
-
Em fluxos conversacionais, o sistema fornece dois campos padrão: histórico da conversa e entrada do usuário. Adicione variáveis personalizadas conforme necessário. Para aceitar arquivos enviados pelo usuário, defina uma variável de entrada com o tipo de arquivo. Para mais detalhes, consulte Entrada e saída do tipo arquivo.

-
Ao executar o application flow, configure os parâmetros de entrada da sessão atual no painel de conversa.

Conditional branch
Este nó implementa a lógica if-else para controle de fluxo. Ele avalia condições e direciona a execução para a primeira branch correspondente. Caso nenhuma condição seja verdadeira, a else branch é executada. Combine este nó com o nó Variable aggregate para unificar os resultados de diferentes branches.
-
Configuração

-
Entrada
Ao configurar as condições das branches, observe o seguinte:
Cada branch representa um caminho de execução. A última branch é a else branch, executada quando nenhuma outra condição corresponde; ela não pode ser editada.
Uma branch pode conter múltiplas condições, combináveis por meio de lógica AND/OR.
Verifique as saídas dos nós anteriores, os operadores (como
=,≠,is emptyedoes not include) e os valores para garantir que as condições sejam precisas e válidas.
-
Saída
Este nó não gera saída.
-
Exemplo de uso
Ao conectar o nó Conditional branch a nós subsequentes, cada branch possui uma porta de conexão correspondente. Se a condição de uma branch for atendida, o sistema executa os nós subsequentes dessa branch e ignora as demais. Utilize um nó Variable aggregate para coletar os resultados de execução da branch ativa.

Variable aggregate
Este nó unifica os resultados de saída de diferentes branches em variáveis consolidadas. Quando um nó Conditional branch ou Intent recognition é executado, apenas uma branch roda. Este nó permite que os nós subsequentes referenciem uma única variável agregada, independentemente da branch executada, evitando lógica redundante.
-
Configuração

-
Entrada
Ao configurar grupos de variáveis, considere os pontos abaixo:
Os nós anteriores geralmente são múltiplas branches de execução geradas por um nó Conditional branch ou Intent recognition.
As variáveis dentro do mesmo grupo devem ser do mesmo tipo. O primeiro valor não vazio torna-se a saída desse grupo.
Como apenas uma branch anterior é executada, cada grupo terá no máximo um valor não vazio. O nó Variable aggregate extrai esse valor para uso pelos nós subsequentes.
Se cada branch tiver múltiplas saídas a serem coletadas, adicione vários grupos para extrair cada valor de saída correspondente.
-
Saída
As variáveis de saída do nó dependem dos grupos configurados. Se houver vários grupos, o nó gera um par chave-valor para cada grupo, onde a chave é o nome do grupo e o valor é a primeira variável não vazia desse grupo.
-
Exemplo de uso
Consulte o caso de uso do nó Conditional branch.
Loop
O nó Loop executa tarefas repetitivas em que cada iteração depende do resultado anterior. O loop continua até que uma condição de saída seja atendida ou o número máximo de iterações seja alcançado. Dentro do nó Loop, configure um subfluxo que o sistema executa repetidamente com base na variável de loop.
-
Configuração

-
Entrada
Variáveis de loop: Transferem dados entre iterações. Seus valores finais permanecem disponíveis para os nós subsequentes após a conclusão do loop. Configure múltiplas variáveis de loop cujos valores podem ser inseridos manualmente ou selecionados a partir das saídas de nós anteriores.
Condição de saída do loop: Configure uma condição de saída baseada nas variáveis de loop. O loop termina quando uma variável especificada atende à condição predefinida.
Número máximo de iterações: Limita a quantidade máxima de execuções do loop para evitar loops infinitos.
-
Saída
A saída do nó corresponde ao valor das variáveis de loop após a última iteração. As variáveis de loop só podem ser atualizadas por um nó Variable Assigner. Sem esse nó, a saída do loop permanecerá idêntica à sua entrada inicial, independentemente do número de iterações.
-
Nós relacionados
Os nós relacionados ao loop só podem ser usados dentro de um loop. Adicione os seguintes nós relacionados clicando em no ícone + à direita de um nó dentro do loop:
-
Break Loop
Encerra o loop imediatamente. Geralmente é precedido por um nó Conditional branch.
-
Variable Assigner
Atribui a saída dos nós dentro do loop às variáveis de loop, avançando o estado do loop.

-
Direct output
O nó Direct output configura o conteúdo de resposta direta usando um modelo de saída. Ele suporta a referência a saídas de nós anteriores com a sintaxe {{node.variable}} e saída em streaming.
Exemplo: Adicione um nó Direct output antes de um nó LLM para enviar uma mensagem inicial ao usuário, como "Pensando...", enquanto a tarefa principal é processada.


Batch processing
O nó Batch processing processa dados de lista em paralelo. Ele aplica o mesmo subfluxo a cada elemento da lista, o que melhora significativamente a eficiência. Para tarefas iterativas em que cada etapa depende da anterior, utilize o nó Loop.
Input
Lista de entrada: A lista de dados a ser processada. O nó envia cada elemento ao subfluxo para execução como um item independente.
Campo de saída: Selecione uma variável de saída de um nó dentro do subfluxo para servir como resultado da tarefa de cada item.
Contagem paralela: Opcional. Controla o número de tarefas executadas simultaneamente. O padrão é 4, com um intervalo válido de 1 a 10.
Output
result: Uma lista contendo os resultados de saída de todas as tarefas em lote, na mesma ordem da lista de entrada. Ela agrega os valores reais de saída do "Campo de saída" especificado na entrada.
Related nodes
Batch Start
O nó Batch Start é o ponto de entrada para o subfluxo de processamento em lote. Ele fornece as seguintes variáveis de saída para referência pelos nós subsequentes no subfluxo:
item: O item de dados atualmente em processamento, correspondente a um elemento da lista de entrada.
index: O índice do item de dados atual na lista de entrada (começando em 0).
Batch Break
O nó Batch Break encerra prematuramente o processamento do item de dados atual quando uma condição específica é atendida.
Nota: O nó Batch Break encerra apenas a iteração atual e não afeta o processamento de outros itens de dados.
Exemplo de uso
Análise de documentos em lote e processamento inteligente
Cenário: Uma empresa precisa analisar vários arquivos de documentos em lote, chamar um LLM para processamento de conteúdo nos documentos analisados com sucesso e pular automaticamente aqueles cuja análise falhar.
Configuração do nó Batch processing:
|
Parâmetro |
Valor |
Descrição |
|
Lista de entrada |
|
Referencia a saída da lista de arquivos do nó Start anterior. |
|
Campo de saída |
|
Selecione o campo de saída do nó LLM como a saída do nó Batch processing. |
|
Contagem paralela |
|
Processa 4 arquivos simultaneamente. |

Exemplo de saída:
{
"result": [
"This document is the user manual for product XX, which includes product feature introductions, installation steps...",
"This is a software service procurement contract with a term of 12 months...",
null,
"Value-added tax ordinary invoice, dated January 15, 2026..."
]
}
Nota: Um valor null na saída indica que a análise do arquivo falhou e o nó Batch Break pulou o processamento subsequente.
Observações
Ordem garantida dos resultados: A ordem da lista de saída é consistente com a ordem da lista de entrada.
Flexibilidade do subfluxo: Dentro do subfluxo, diferentes itens de dados podem acionar diferentes caminhos de execução.
Tratamento de valores nulos: Se o fluxo de execução de um item for encerrado prematuramente ou sua saída estiver vazia, a posição correspondente na lista de saída será nula.
End
O nó End marca a conclusão de um application flow e define seus parâmetros de saída. Um application flow pode ter apenas um nó End.
-
Configuração de parâmetros de saída
A saída do application flow pode referenciar as saídas de qualquer nó anterior. Por exemplo, no exemplo abaixo, a saída 'answer' do application flow usa a saída do nó LLM, enquanto 'search_results' usa a saída do nó de busca.
NotaUm fluxo conversacional possui um campo de saída padrão 'Chat', que serve como a saída conversacional do application flow.
Um application flow deve incluir os nós Start e End. Apenas os nós conectados entre eles são executados; nós isolados são ignorados.
Capacidades de IA
LLM
O nó LLM é um componente central de um application flow que chama um large language model para tarefas de linguagem natural, como geração de texto, respostas a perguntas e processamento de entradas complexas. Ele oferece opções de configuração para ajustar parâmetros do modelo, gerencie o histórico de conversas e personalizar prompts.
-
Casos de uso
Geração de texto: Gera conteúdo textual com base em tópicos e palavras-chave.
Classificação de conteúdo: Classifica automaticamente tipos de e-mail (por exemplo, consulta, reclamação ou spam).
Tradução de texto: Traduz texto para um idioma especificado.
RAG: Responde a perguntas dos usuários combinando conhecimento recuperado com o raciocínio do modelo.
-
Configuração

-
Entrada
-
Configurações do modelo: Suporta modelos implantados do ModelGallery, serviços de modelo personalizados e modelos de provedores como Dashscope e DeepSeek. Para melhor desempenho, escolha um modelo de alta capacidade. Configure os seguintes parâmetros do modelo:
Temperature: Um valor geralmente entre 0 e 1 que controla a aleatoriedade da saída. Valores próximos de 0 produzem saídas mais determinísticas, enquanto valores próximos de 1 geram resultados mais diversos.
Top P: Limiar de amostragem de núcleo. O modelo amostra a partir do menor conjunto de tokens cuja probabilidade cumulativa excede o limiar P, influenciando a diversidade da saída.
Top K: Limita os tokens candidatos aos K mais prováveis. Isso reduz a aleatoriedade e torna a saída mais focada, restringindo a criatividade de forma mais direta que o Top P.
Presence penalty: Reduz a repetição das mesmas entidades ou informações. Penaliza tokens já presentes no texto gerado. Valores mais altos reduzem a repetição de forma mais agressiva.
Frequency penalty: Penaliza tokens com base em sua frequência no texto gerado, reduzindo palavras ou frases excessivamente frequentes. Valores mais altos incentivam maior diversidade lexical.
Max tokens: Comprimento máximo de saída (em tokens) por execução. Valores menores podem truncar a saída, enquanto valores maiores permitem respostas mais longas.
Seed: Quando especificado, o modelo tenta amostragem determinística. Solicitações repetidas com a mesma seed e parâmetros devem produzir o mesmo resultado, mas o determinismo completo não é garantido. Consulte o parâmetro de resposta system_fingerprint para monitorar alterações.
Stop sequences: Até quatro sequências que instruem o modelo a parar de gerar mais saídas. Quando o modelo encontra uma dessas sequências, ele interrompe a geração de tokens. O texto retornado não inclui a sequência de parada.
Histórico de conversas: Se ativado, o histórico de chat do application flow é inserido automaticamente no prompt.
Variáveis de entrada: As variáveis podem referenciar as saídas de todos os nós anteriores.
Prompt: Um prompt contém o conteúdo personalizado para System (SYSTEM), User (USER) ou Assistant (ASSISTANT). O prompt é um modelo Jinja2 onde você pode referenciar variáveis de entrada usando chaves duplas
{{}}.
-
-
Saída
O nó tem como padrão a saída String, mas suporta json. O tipo json suporta variáveis de saída personalizadas, e o modelo gera a saída com base nos nomes das variáveis.
-
Casos de uso
Intent recognition
O nó Intent recognition destina-se principalmente ao controle de fluxo. Ele usa um large language model para analisar a intenção do usuário e direciona a execução para a branch correspondente com base no resultado. Suporta configuração de múltiplas intenções e histórico de conversas.
-
Configuração

-
Entrada
Entrada do usuário: Selecione a entrada do usuário a ser usada para reconhecimento de intenção.
Configuração de múltiplas intenções: Configure as intenções conforme necessário, garantindo que a descrição de cada intenção seja clara e que não haja sobreposição semântica entre elas. A última intenção assume o padrão "Other", correspondida quando nenhuma outra intenção se aplica; ela não pode ser editada.
Configurações do modelo: Configure o large language model para reconhecimento de intenção. Para melhor desempenho, escolha um modelo mais capaz, como qwen-max.
Histórico de conversas: Quando ativado, o large language model insere automaticamente o histórico de chat do application flow no prompt durante o raciocínio.
Prompt adicional: Este conteúdo é anexado ao prompt do sistema para ajudar o modelo a realizar o reconhecimento de intenção com mais precisão.
-
Saída
Este nó não gera saída.
-
Exemplo de uso
Ao conectar o nó Intent recognition a nós subsequentes, cada branch de intenção possui uma porta de conexão correspondente no nó. Quando uma intenção é reconhecida, os nós subsequentes conectados a essa branch são executados, enquanto os nós de outras branches são ignorados. Em seguida, use um nó Variable aggregate para coletar os resultados de execução de cada branch.

Agent
O nó Agent permite que um large language model (LLM) planeje, selecione ferramentas e aja autonomamente. Ele suporta estratégias de raciocínio e capacidades de uso de ferramentas. Ao integrar estratégias como FunctionCalling e ReAct, ele permite que o LLM chame autonomamente ferramentas compatíveis com o Model Context Protocol (MCP) em tempo de execução para realizar raciocínio em múltiplas etapas.
Node parameters
-
Estratégia do agente: Selecione a estratégia de raciocínio do agente desejada. Atualmente, as estratégias FunctionCalling e ReAct são suportadas.
FunctionCalling
Este recurso permite a interação entre um Large Language Model (LLM) e ferramentas externas com base na definição estruturada de
tool call(no formato json) da api OpenAI Chat. O LLM analisa as instruções em linguagem natural do usuário para identificar automaticamente a intenção, selecionar a ferramenta apropriada e extrair parâmetros. O sistema então chama a ferramenta correspondente e retorna o resultado ao modelo para realizar raciocínios adicionais e gerar a resposta final.Casos de uso e vantagens:
Chamadas estruturadas, forte compatibilidade: Usa dados estruturados para definir claramente nomes de ferramentas e parâmetros de chamada, tornando-o compatível com todos os modelos que suportam chamadas de ferramentas.
Desempenho estável: Adequado para tarefas com objetivos claros e etapas bem definidas, como verificar o clima, buscar informações ou consultar dados.
ReAct
ReAct (Reasoning + Acting) é uma estratégia de raciocínio flexível que usa prompts para guiar um modelo a gerar explicitamente Pensamentos e Ações, criando um ciclo fechado para raciocínio em múltiplas etapas e chamadas de ferramentas. Essa estratégia geralmente usa linguagem natural para descrever o processo de chamada. Ela aciona a execução de ferramentas de backend ao gerar textos como "Action=xxx, Action Input=xxx" e injeta os resultados de volta na cadeia de raciocínio do modelo. Este método não requer
tool_callsno nível da api, o que o torna adequado para modelos e frameworks mais genéricos.Casos de uso e vantagens:
Capacidade de raciocínio aprimorada: Guia o modelo a pensar passo a passo, com cada etapa expressando explicitamente a lógica de raciocínio.
Estratégia transparente: Ideal para aplicações de agente que exigem forte depuração e interpretabilidade.
Não requer suporte a Tool Calling: Pode ser usado mesmo com modelos que não suportam saída estruturada.
Configurações do modelo: A estratégia FunctionCalling requer um modelo que suporte nativamente chamadas de ferramentas. A estratégia ReAct não tem essa limitação, mas recomendamos escolher um modelo com fortes capacidades de raciocínio.
Histórico de conversas: Ativar o histórico de conversas fornece memória contextual ao agente. O sistema inclui automaticamente mensagens anteriores no prompt, permitindo que o agente compreenda e referencie partes anteriores da conversa. Por exemplo, um agente com histórico de conversas ativado pode resolver pronomes (como "ele" ou "isso") sem exigir que o usuário repita informações.
Planejamento de tarefas: Quando ativado, o sistema adiciona automaticamente a ferramenta integrada
write_todosàs ferramentas disponíveis do agente. Para perguntas complexas do usuário, o agente chama automaticamente a ferramentawrite_todospara planejar a tarefa e executá-la passo a passo, atualizando dinamicamente o plano com base nas informações mais recentes.Ferramentas MCP e ferramentas: Suporta a configuração de ferramentas MCP e não-MCP. Para mais informações, consulte Configurar ferramentas para um Agent.
-
Configuração de Prompt
Variáveis de Entrada: Para referenciar uma variável de um nó anterior de um application flow em um prompt, defina uma variável de entrada correspondente no nó atual e configure seu valor como uma referência à variável do nó anterior. Em seguida, na seção Prompt abaixo, use a sintaxe de modelo Jinja2, indicada por chaves duplas (
{{}}), para referenciar essas variáveis de entrada definidas e permitir a passagem dinâmica de dados.Prompt do sistema: Especifica os objetivos da tarefa e o contexto do agente, fornecendo ao modelo o cenário necessário para guiar a geração de respostas. É opcional para a estratégia ReAct.
Prompt do usuário: Recebe a entrada ou consulta do usuário, servindo como base para a geração de respostas do modelo.
-
Contagem de loops: Define o número máximo de ciclos de execução para o agente, variando de 1 a 99. O agente repete a tarefa para gerar uma resposta até que uma das seguintes condições seja atendida:
O LLM determina que reuniu informações suficientes chamando ferramentas para gerar um resultado completo.
A contagem máxima de loops definida é atingida.
Definir uma contagem de loops razoável ajuda a equilibrar a completude da resposta com a eficiência da execução. Se o Planejamento de tarefas estiver ativado, recomendamos usar a contagem máxima de loops padrão para garantir que o modelo possa executar totalmente todas as etapas conforme planejado.
-
Variáveis de saída:
intermediate_steps: Uma string contendo as etapas intermediárias da execução do agente.
text: Uma string contendo a saída final do agente.
Traces and logs
Após clicar em Run no canto superior direito da página do application flow, visualize o trace ou log abaixo do resultado da execução na caixa de diálogo exibida.
Visualizar saída intermediária: Clique em no ícone de status de execução no canto superior direito do nó Agent no workflow. Na gaveta abaixo, encontre
intermediate_stepsna Saída para visualizar o processo de raciocínio do agente.Visualizar trace: Visualize as informações de trace da execução atual para entender a entrada e saída do agente para cada solicitação ao modelo (incluindo chamadas de ferramentas e parâmetros de solicitação), custos de tokens e consumo de tempo.
Visualizar log: Se um application flow encontrar um erro, visualize o log da execução atual para obter mais detalhes sobre o processo de execução do nó.
Além disso, clique em no ícone à direita do botão Run no canto superior direito da página do application flow para visualizar o Run History. Selecione um registro de execução específico para visualizar seu trace ou log.
Document parsing
Suporta o uso do analisador inteligente de documentos integrado ao sistema e os serviços de análise de documentos da AI Search Open Platform.
Analisador integrado: Extrai conteúdo estruturado e metadados de documentos, suportando vários formatos principais, incluindo PDF, DOCX, PPTX, TXT, HTML, CSV, XLSX, XLS, JSONL e MD.
AI Search Open Platform: Realiza análise estruturada de documentos de alta precisão, suportando a extração de informações hierárquicas lógicas, como títulos e parágrafos, além de conteúdo como texto, tabelas e imagens. Isso melhora a eficácia e a precisão da extração de documentos. É necessário configurar primeiro uma conexão de serviço de modelo da AI Search Open Platform. Os formatos de arquivo suportados incluem PDF, DOCX, PPTX, TXT e HTML.
Esta ferramenta suporta cenários de RAG, resumo e respostas a perguntas. A interface de configuração é a seguinte: 
Arquivo de documento: O arquivo de documento a ser analisado. Selecione um campo do tipo arquivo de um nó anterior.
Configurações do modelo: (Opcional) Selecione uma conexão de serviço de modelo da AI Search Open Platform criada no LangStudio. Se não configurado, o sistema usa o método básico de análise integrado por padrão.
-
Saída:
file_id: O identificador único do arquivo de entrada.
content: O conteúdo de texto estruturado analisado, incluindo informações hierárquicas como títulos e parágrafos.
status: O status da análise, que pode ser SUCCESS ou FAIL.
-
metadata: Os metadados do documento e detalhes da análise.
file_name: O nome do arquivo.
file_type: O tipo do arquivo.
source_uri: O URI original do arquivo.
download_url: A url para download do arquivo.
analysis_method: O método de análise utilizado. "opensearch" indica análise estruturada usando a AI Search Open Platform, enquanto "builtin" indica o uso do método básico de análise integrado.
Exemplo de uso downstream: Nos nós subsequentes, referencie os campos de resultado do nó de análise de documentos conforme necessário. Para usar os resultados da análise de documentos em um nó LLM, inclua o conteúdo analisado no prompt do usuário conforme mostrado abaixo:

Speech recognition
Use o nó Speech recognition para converter arquivos de áudio ou vídeo em texto. Ele suporta múltiplos formatos de áudio e reconhecimento de idiomas.
Input
Configurações do modelo: Configure o modelo de reconhecimento de fala. O serviço de reconhecimento de fala fornecido pelo Alibaba Cloud Model Studio é atualmente suportado. Recomendamos usar
paraformer-v2para melhor desempenho de reconhecimento e suporte multilíngue.Arquivo de áudio/vídeo: Selecione o arquivo de áudio ou vídeo a ser reconhecido. Para formatos suportados, consulte Entrada e saída do tipo arquivo.
Idioma de Reconhecimento: Especifique o idioma para reconhecimento de áudio. Os idiomas suportados são Chinês, Inglês, Japonês, Cantonês, Coreano, Alemão, Francês, Russo ou detecção automática. Nota: Este recurso é suportado apenas pelo modelo
paraformer-v2. Outros modelos usam detecção automática de idioma por padrão.
Output
file_id: O identificador único do arquivo de entrada.
status: O status do reconhecimento. Os valores possíveis são
SUCCESSouFAIL.content: O conteúdo de texto transcrito.
segments: Uma lista de informações de fragmentos de sentenças, incluindo timestamps, fragmentos de texto e outros detalhes.
-
metadata: Os metadados do arquivo, incluindo:
file_name: O nome do arquivo.
file_type: O tipo do arquivo.
source_uri: O URI do arquivo.
download_url: A url de download do arquivo.
Recuperação de dados
Para configurar os seguintes nós, consulte Nó de recuperação de dados:
Recuperação de base de conhecimento
Alibaba Cloud IQS - busca web
SerpAPI - busca genérica
Solicitação HTTP
Processamento de dados
Desenvolvimento Python (Python)
Os application flows suportam nós com código Python personalizado para processamento complexo de dados. Esses nós suportam entrada e saída em streaming. A página de configuração é a seguinte:

Basta preencher o código Python. Entradas e saídas são analisadas automaticamente a partir do código. Observe o seguinte:
-
A função de entrada deve ser decorada com
@toolpara ser carregada como um nó.NotaPara habilitar entrada em streaming para um nó Python, configure
@tool(properties={"streaming_pass_through": True}). Caso contrário, as entradas para o nó Python, como as de um LLM, serão texto de saída completo em vez de um stream. A função suporta os seguintes tipos de entrada/saída: int, float, bool, str, dict, TypedDict, dataclass (apenas saída), list e File.
-
Os parâmetros da função de entrada são analisados dinamicamente como as entradas do nó. A saída é colocada em um dicionário
outpute pode ser referenciada por outros nós.ImportanteA análise automática de parâmetros de entrada e saída para um nó Python depende do runtime. Se o runtime não for iniciado, não será possível configurar as informações de entrada e saída do nó.
-
Se seu código Python exigir dependências, selecione Install Dependencies no canto superior direito do canvas e insira os pacotes necessários. O arquivo
requirements.txté salvo com o application flow. As dependências são instaladas quando você inicia o runtime ou implanta o serviço.

Caso de uso 1: Insira o seguinte código na área de código. O código é mapeado para as entradas e saídas do nó:
from langstudio.core import tool
from dataclasses import dataclass
@dataclass
class Result:
output1: str
output2: int
@tool
def invoke(foo: str, bar: int) -> Result:
return Result(
output1="hello" + foo,
output2=bar + 10
)

Caso de uso 2: Entrada e saída em streaming. Use um nó Python para aparar um stream de texto de um nó LLM ou agente que inclua processos de pensamento. Ao descartar o conteúdo dentro da seção <think>\n\n</think>, você obtém um stream de texto final do resultado. Veja um exemplo abaixo:
import re
from typing import Iterator
from langstudio.core import tool
@tool(properties={"streaming_pass_through": True})
def strip_think(
stream: Iterator[str],
) -> Iterator[str]: # The input is a streaming string iterator, and the output is a filtered streaming string iterator.
# Match the <think>\n...\n</think> structure and capture the text after the closing tag.
pattern = re.compile(r"<think>\n[\s\S]*\n</think>(.*)")
in_thinking = True # Flag to indicate if the current position is inside a <think> block.
think_buf = "" # Buffer to store unprocessed content.
for chunk in stream:
if in_thinking:
think_buf += chunk
m = pattern.search(think_buf) # Check if the buffer contains a complete thought block.
if m:
in_thinking = False
result_part = m.groups()[0]
if result_part:
yield result_part # If the result text exists, yield it immediately.
else:
yield chunk # After exiting the thought block, directly yield all subsequent chunks.
Transformação de modelo
A ferramenta Template transformation usa a sintaxe de modelo Jinja2 para permitir formatação flexível de texto e transformação de dados.
Input
O modo de transformação suporta Modo Jinja2 e Modo de referência de nó.
-
Modo Jinja2: Usa a sintaxe completa de modelo Jinja2 para personalizar o formato de saída. Este modo é adequado para saídas estruturadas complexas, lógica condicional e renderização de loops.
-
Variáveis de modelo: Defina as variáveis usadas no modelo.
ImportanteOs nomes das variáveis não podem ser nomes de métodos integrados do Python, como
items,keysouvalues. Use nomes de campos específicos, comoitem_listouproduct_list. -
Conteúdo do modelo: Uma string de modelo escrita na sintaxe Jinja2. Suporta a sintaxe completa, incluindo substituição de variáveis
{{ variable }}, loops{% for %}, declarações condicionais{% if %}e filtros{{ value | filter }}.ImportanteTodas as variáveis referenciadas no modelo devem estar definidas na lista de variáveis. Caso contrário, ocorrerá um erro.
-
-
Modo de referência de nó: Referencia diretamente a saída de nós anteriores e a concatena automaticamente em uma string. Este modo é adequado para cenários simples de combinação de texto.
Conteúdo do modelo: Selecione os campos de saída dos nós anteriores. O sistema os concatena automaticamente em ordem.
Output
output: O resultado em texto após a renderização do modelo. Nota: O comprimento do conteúdo do modelo de entrada e saída é limitado a 100.000 caracteres. Qualquer conteúdo que exceda esse limite será truncado.
Usage examples
Exemplo 1: Gerar um e-mail de confirmação de pedido
Configuração de variáveis:
|
Nome da variável |
Valor da variável |
|
customer_name |
|
|
order_id |
|
|
products |
|
|
total |
|
Conteúdo do modelo:
Dear {{ customer_name }}:
Your order {{ order_id }} has been confirmed. The details are as follows:
{% for product in products %}
- {{ product.name }}: ¥{{ product.price }}
{% endfor %}
Total: ¥{{ total }}
Thank you for your purchase!
Resultado da saída:
Dear John Doe:
Your order ORD-2025-001 has been confirmed. The details are as follows:
- Laptop: ¥8999
- Wireless Mouse: ¥199
Total: ¥9198
Thank you for your purchase!
Exemplo 2: Formatar resultados de recuperação de base de conhecimento
Configuração de variáveis:
|
Nome da variável |
Valor da variável |
|
chunks |
|
Conteúdo do modelo:
{% for chunk in chunks %}
### Relevance: {{ "%.2f" % chunk.score }}
#### {{ chunk.title }}
{{ chunk.content }}
---
{% endfor %}
Resultado da saída:
### Relevance: 0.95
#### Product Introduction
This is a detailed introduction to the product...
---
List operations
A ferramenta List operations permite realizar filtragem e ordenação flexíveis em vários tipos de dados de lista para processamento e seleção refinados de dados.
Input
Lista de entrada: Os dados de lista a serem processados. Suporta qualquer subtipo, como strings, números, booleanos, objetos de arquivo e dicionários.
-
Operações: Uma sequência de operações encadeadas executadas em ordem. Suporta dois tipos de operações: filtragem e ordenação.
-
Operação de filtro (filter): A operação de filtro fornece dinamicamente diferentes métodos de filtragem com base no tipo da lista de entrada. Nota: Todas as operações de filtro diferenciam maiúsculas de minúsculas.
Chave de filtro
Descrição
Escopo
Index
Filtra com base na posição do elemento na lista.
Aplica-se a todos os tipos de lista.
Element value
Filtra com base no valor do próprio elemento.
Aplica-se a todos os tipos de lista.
Custom attribute
Filtra com base em um atributo personalizado.
Aplica-se apenas a listas de dicionários.
File attribute
Filtra com base nos atributos de um arquivo.
Aplica-se apenas a listas de arquivos.
-
Operação de ordenação (sort): A operação de ordenação fornece diferentes métodos de classificação com base no tipo da lista de entrada.
Chave de ordenação
Descrição
Escopo
Element value
Ordena com base no valor do próprio elemento.
Aplica-se apenas a listas de strings, números ou booleanos.
Custom attribute
Ordena com base em um atributo personalizado.
Aplica-se apenas a listas de dicionários.
File attribute
Ordena com base nos atributos de um arquivo.
Aplica-se apenas a listas de arquivos. Os atributos disponíveis são os mesmos da operação de filtro.
-
Output
result: O resultado da lista processada.
first_item: O primeiro elemento da lista de resultados. Se a lista estiver vazia, o valor é
None.last_item: O último elemento da lista de resultados. Se a lista estiver vazia, o valor é
None.
Usage examples
Exemplo 1: Classificação de arquivos - Filtrar por arquivos de imagem, ordenar pelo comprimento do nome do arquivo e pegar os 3 primeiros
Cenário: Um usuário faz upload de uma lista mista de vários tipos de arquivos. Você precisa filtrar por arquivos de imagem, ordená-los pelo comprimento do nome do arquivo e manter apenas os 3 primeiros para processamento subsequente de reconhecimento de imagem.
Configuração da operação:
Operation 1 - Filter (by file category):
Filter key: item.category
Filter operator: equals
Filter value: image
Operation 2 - Sort (by file name length):
Sort key: item.file_name
Sort direction: asc
Operation 3 - Filter (take top 3):
Filter key: index
Filter operator: less than
Filter value: 3

Exemplo 2: Análise de dados - Filtrar usuários com alta pontuação e obter os 5 melhores
Cenário: De uma lista de avaliações de usuários, filtre aqueles com pontuação igual ou superior a 80, ordene-os por pontuação em ordem decrescente e pegue os 5 melhores.
Lista de entrada:
[
{"name": "Zhang San", "score": 95, "department": "Tech Dept"},
{"name": "Li Si", "score": 72, "department": "Marketing Dept"},
{"name": "Wang Wu", "score": 88, "department": "Tech Dept"},
{"name": "Zhao Liu", "score": 91, "department": "Product Dept"},
{"name": "Qian Qi", "score": 65, "department": "Marketing Dept"},
{"name": "Sun Ba", "score": 98, "department": "Tech Dept"}
]
Configuração da operação:
Operation 1 - Filter (high-scoring users):
Filter key: item.score
Filter operator: greater than or equal to
Filter value: 80
Operation 2 - Sort (by score descending):
Sort key: item.score
Sort direction: desc
Operation 3 - Filter (take top 5):
Filter key: index
Filter operator: less than
Filter value: 5

Resultado da saída:
[
{"name": "Sun Ba", "score": 98, "department": "Tech Dept"},
{"name": "Zhang San", "score": 95, "department": "Tech Dept"},
{"name": "Zhao Liu", "score": 91, "department": "Product Dept"},
{"name": "Wang Wu", "score": 88, "department": "Tech Dept"}
]
Observações:
Se a entrada da ferramenta referenciar uma variável de saída do tipo
listpersonalizada em um nó Python, defina um tipo de elemento claro para a lista no nó Python, comolist[str]. Isso garante uma correspondência de operadores mais precisa no nó List operations.