> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tela.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Módulo de IA e Classificação

> Escreva um prompt com modelo e Formato de Saída por etapa, e classifique ou pontue dados com perguntas tipadas

O **Módulo de IA** é a etapa que chama um modelo com um prompt, como um Canvas faz. A **Classificação** é uma etapa especializada que responde a um conjunto fixo de perguntas sobre os dados e devolve probabilidades em vez de texto livre. Os dois aparecem no grupo **Módulos** do seletor.

## Módulo de IA

No exemplo desta seção, **Extract Data** é um Módulo de IA que lê a Entrada `contract` e devolve campos estruturados, e **Draft Escalation Note** é um segundo Módulo de IA que escreve uma nota usando esses campos.

![Configuração de um Módulo de IA com o editor de prompt, o seletor de modelo e o Formato de Saída](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/workflow/ai-module.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=8c9bed9ab1bbcc651c54c507549e5391)

### Configurando a etapa

**1. Dê nome à etapa**

Clique no título do cartão e substitua *Etapa Sem Título*. É pelo nome que as etapas seguintes e o seu código vão se referir a esta saída, por exemplo `Extract Data`.

**2. Escreva o prompt**

Escreva a instrução como faria em um Canvas: o que ler, o que devolver, as regras a seguir. Digite `@` para inserir uma Entrada ou a saída de uma etapa anterior. O editor de prompt aceita texto e referências; veja [Editando prompts](https://docs.tela.com/pt/craft/editing-prompts.md) para dicas de escrita.

Para Extract Data:

```text theme={null}
Leia o contrato abaixo e extraia a contraparte, o valor total do contrato
como número (sem símbolo de moeda), as datas de início e fim (AAAA-MM-DD),
se existe cláusula de multa, e um resumo de duas frases.

@contract
```

**3. Escolha o modelo**

Escolha o modelo desta etapa. Cada Módulo de IA tem o próprio modelo e temperatura, então você pode usar um modelo forte para extração e um mais barato para a nota de escalonamento. As configurações são as mesmas de um Canvas; veja [Selecionando modelos](https://docs.tela.com/pt/craft/selecting-models.md).

**4. Defina o Formato de Saída**

Adicione atributos ao **Formato de Saída**, exatamente como em um Canvas: nome, tipo (texto, número, booleano, lista, objeto) e uma descrição opcional. Para Extract Data: `counterparty` (texto), `total_value` (número), `start_date` (texto), `end_date` (texto), `has_penalty_clause` (booleano), `summary` (texto).

Com um Formato de Saída, a etapa devolve um objeto e cada atributo passa a ser selecionável no menu `@` das etapas seguintes, usável em uma Condição e revisável em Testar e na Workstation. Sem ele, a etapa devolve texto puro.

> [!TIP]
>
> Dê um Formato de Saída a todo Módulo de IA cujo resultado importa. É ele que torna o valor usável pela próxima etapa (`Extract Data › total_value` em uma Condição) e que vira atributos revisáveis nos Casos de Teste. Um Workflow cujas etapas só devolvem texto não tem nada para revisar atributo por atributo.

Você pode copiar o esquema de uma etapa e colar em outra: o editor do Formato de Saída oferece **Copiar schema**, e a próxima etapa mostra **Colar formato de saída copiado da etapa N**. Isso mantém os nomes dos campos idênticos entre etapas que devem produzir a mesma estrutura, por exemplo cada página de um Mapear.

### Arquivos no prompt

Uma referência a arquivo no prompt é usada como **Parser** por padrão: o modelo recebe o texto extraído do arquivo. Troque o chip para **Multimodal** para anexar o arquivo em si. Isso importa para digitalizações, fotos e documentos cujo layout carrega significado. As regras estão em [Entradas e referências](https://docs.tela.com/pt/workflow/inputs-and-references.md#parser-multimodal-json-texto-ou-original).

### Citações

Quando a etapa tem um Formato de Saída, você pode ativar **Citações**. O modelo então devolve, junto de cada atributo, o trecho dos arquivos referenciados de onde o valor veio. Os resultados mostram as citações junto da saída. Citações só estão disponíveis para saída estruturada.

### O que a etapa devolve

* Com Formato de Saída: um objeto com os seus atributos, `{ "counterparty": "Acme Ltd", "total_value": 125000, ... }`.
* Sem ele: um texto.

Se o modelo não conseguiu respeitar o Formato de Saída, o resultado é marcado com uma incompatibilidade de formato de saída nos metadados da execução, e a etapa ainda assim termina. Confira a resposta bruta em **Depurar**.

> [!NOTE]
>
> Cada etapa de Módulo de IA pode guardar o resultado em **cache**: quando as mesmas entradas chegam de novo, o resultado salvo é reaproveitado em vez de chamar o modelo. Desabilite o cache em etapas que devem sempre rodar do zero, como as que leem dados em tempo real.

## Classificação

A **Classificação** responde a um conjunto de perguntas tipadas sobre um dado e devolve, para cada pergunta, uma resposta com probabilidades e uma confiança. Use quando você precisa de uma decisão que dá para medir e rotear, em vez de texto livre: "que tipo de contrato é este?", "quão arriscado ele é numa escala de 1 a 5?", "ele contém cláusula de não concorrência?".

No exemplo, uma Classificação **Assess Contract** fica depois de Extract Data e responde a duas perguntas: `contract_type` (uma escolha) e `risk_level` (uma pontuação). A Condição pode então rotear por `Assess Contract › answers › contract_type › choice`.

![Configuração da Classificação com o prompt e as Perguntas, com tipos Choice e Score](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/workflow/classifier.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=fcfde5725cce8d0b12acc2a1e26d90f6)

### Configurando a etapa

**1. Escreva o Prompt**

O **Prompt** é o contexto a avaliar: o texto, os campos extraídos ou o documento de que as perguntas tratam. Insira aqui os valores das etapas anteriores, por exemplo o resumo e as cláusulas devolvidos por Extract Data. A dica do campo diz para digitar `/` para inserir uma variável.

**2. Adicione perguntas**

Clique em **Adicionar pergunta**. Cada pergunta tem um **ID da pergunta** (usado como chave na saída, como `contract_type`), um **Tipo** e **Instruções** que explicam o que avaliar. As perguntas rodam de forma independente sobre o mesmo prompt, então a resposta de uma não influencia a outra.

**3. Defina os critérios de cada tipo**

* **Choice**: liste as **Opções**, cada uma com uma **Chave da opção** e uma **Descrição** de quando ela se aplica. Inclua todos os resultados válidos e adicione uma opção "outros" quando necessário. No mínimo duas opções.
* **Score**: liste os **Níveis ordenados**, do mais baixo ao mais alto, descrevendo cada ponto da escala. Entre dois e dez níveis. A resposta é uma pontuação ponderada pelas probabilidades dos níveis.
* **Boolean**: se quiser, descreva o que **Verdadeiro significa** e o que **Falso significa**. A resposta é a probabilidade de sim.

### O que a etapa devolve

A saída tem um objeto `answers` cujas chaves são os IDs das perguntas:

```json theme={null}
{
  "answers": {
    "contract_type": {
      "type": "choice",
      "choice": "services",
      "probabilities": { "services": 0.91, "supply": 0.07, "other": 0.02 },
      "confidence": 0.91
    },
    "risk_level": {
      "type": "score",
      "score": 2.3,
      "legend": { "1": "No unusual clauses", "2": "...", "3": "...", "4": "...", "5": "Multiple high-impact clauses" },
      "probabilities": { "1": 0.1, "2": 0.55, "3": 0.3, "4": 0.05, "5": 0 },
      "confidence": 0.55
    },
    "has_non_compete": {
      "type": "noul",
      "noul": 0.12
    }
  }
}
```

No menu `@` e em uma Condição você chega a um valor pelo caminho dele: `Assess Contract › answers › contract_type › choice`, ou `answers.risk_level.score` no modo código. Uma resposta Boolean é um número entre 0 e 1 em `noul`, então compare com um limite no [modo código](https://docs.tela.com/pt/workflow/conditions-and-branches.md#modo-codigo), por exemplo `input["Assess Contract"].answers.has_non_compete.noul > 0.5`, em vez de testar `é verdadeiro`. Os seletores não têm comparação numérica.

> [!NOTE]
>
> A Classificação roda no modelo de avaliação do próprio Tela, fixado por versão do módulo; não há seletor de modelo. Uma Classificação aceita até 100 perguntas.

## Escolhendo entre os dois

| Você precisa de | Use |
| - | - |
| Campos extraídos de um documento, um texto reescrito, uma nota gerada | **Módulo de IA** com Formato de Saída |
| Uma decisão entre opções fixas, uma pontuação numa escala ou um sim/não com uma confiança que dá para usar como limite | **Classificação** |
| Os dois: extrair primeiro, depois julgar os campos extraídos | **Módulo de IA** seguido de uma **Classificação** |

Próximo passo: rotear a execução com base nesses valores com uma [Condição](https://docs.tela.com/pt/workflow/conditions-and-branches.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.