
# Champs IA

Sept types de champs calculent leur valeur avec un LLM à partir d'un ou plusieurs `sourceFields`. Tous partagent les [propriétés de base des champs](/fr/docs/tables-overview#proprietes-de-base-des-champs) et un ensemble commun de contrôles IA.

| Type            | Produit                                                      |
| --------------- | ------------------------------------------------------------ |
| `ai-generate`   | Texte généré en forme libre à partir d'un modèle d'invite.   |
| `ai-summary`    | Un résumé des champs sources.                                |
| `ai-categorize` | Une catégorie unique choisie dans une liste prédéfinie.      |
| `ai-extract`    | Données structurées conformes à un JSON Schema.              |
| `ai-sentiment`  | Analyse de sentiment du texte source.                        |
| `ai-tag`        | Plusieurs étiquettes choisies dans une liste d'autorisation. |
| `ai-translate`  | Une traduction d'un champ source vers une langue cible.      |

## Propriétés IA communes

La plupart des champs IA acceptent ces propriétés partagées (en plus de leurs propriétés spécifiques au type) :

| Propriété      | Description                                                                                                                                                     |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sourceFields` | **Requis.** Noms des champs utilisés comme contexte d'entrée. Au moins un (exactement un pour `ai-translate`).                                                  |
| `prompt`       | Invite personnalisée pour guider l'IA. `ai-generate` utilise un modèle `{{fieldName}}` ; les autres se rabattent sur une valeur par défaut sensée lorsqu'omise. |
| `systemPrompt` | Invite système définissant la persona et le contexte de l'IA.                                                                                                   |
| `model`        | Remplacement du modèle IA (par ex. `gpt-4o`, `claude-sonnet`). Chaîne non vide.                                                                                 |
| `temperature`  | Créativité de la sortie, de `0` à `1`.                                                                                                                          |

## `ai-generate`

Génère du texte en forme libre à partir d'un modèle d'invite.

| Propriété | Description                                                                                              |
| --------- | -------------------------------------------------------------------------------------------------------- |
| `prompt`  | Modèle d'invite avec substitution de variables `{{fieldName}}`. _(Recommandé pour les champs generate.)_ |

```yaml
- id: 1
  name: marketing_copy
  type: ai-generate
  sourceFields: [product_name, features]
  prompt: 'Write a compelling 2-paragraph marketing description for {{product_name}}. Key features: {{features}}.'
```

## `ai-summary`

Résume les champs sources. Utilise une invite « Summarize the following » par défaut lorsque `prompt` est omis.

```yaml
- { id: 2, name: ticket_summary, type: ai-summary, sourceFields: [body, thread] }
```

## `ai-categorize`

Classe la source dans exactement l'une d'une liste fixe de catégories.

| Propriété    | Description                                                                                      |
| ------------ | ------------------------------------------------------------------------------------------------ |
| `categories` | **Requis.** Catégories prédéfinies parmi lesquelles l'IA doit choisir. Minimum 2, sans doublons. |

```yaml
- {
    id: 3,
    name: ticket_category,
    type: ai-categorize,
    sourceFields: [subject, body],
    categories: [billing, technical, account, general],
  }
```

## `ai-extract`

Extrait des données structurées décrites par un JSON Schema. Prend en charge les objets et tableaux imbriqués.

| Propriété | Description                                                                 |
| --------- | --------------------------------------------------------------------------- |
| `schema`  | **Requis.** Objet JSON Schema décrivant la structure des données extraites. |

```yaml
- id: 4
  name: invoice_data
  type: ai-extract
  sourceFields: [raw_text]
  schema:
    type: object
    properties:
      vendor_name: { type: string, description: Name of the vendor }
      total_amount: { type: number, description: Total amount due }
```

## `ai-sentiment`

Analyse le sentiment du texte source. `prompt` peut ajuster la focalisation (par ex. urgence, satisfaction).

```yaml
- { id: 5, name: review_sentiment, type: ai-sentiment, sourceFields: [review_text] }
```

## `ai-tag`

Attribue plusieurs étiquettes à partir d'une liste d'autorisation prédéfinie.

| Propriété | Description                                                                          |
| --------- | ------------------------------------------------------------------------------------ |
| `tags`    | **Requis.** Étiquettes autorisées que l'IA peut attribuer. Minimum 2, sans doublons. |
| `maxTags` | Nombre maximal d'étiquettes à attribuer (entier positif). Aucune limite lorsqu'omis. |

```yaml
- {
    id: 6,
    name: article_tags,
    type: ai-tag,
    sourceFields: [title, body],
    tags: [technology, business, science, health, politics],
    maxTags: 3,
  }
```

## `ai-translate`

Traduit un champ source vers une langue cible.

| Propriété        | Description                                                                                                      |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| `sourceFields`   | **Requis.** Exactement **un** nom de champ.                                                                      |
| `targetLanguage` | **Requis.** Code de langue ISO 639-1, éventuellement suffixé par une région (par ex. `fr`, `es`, `ja`, `zh-CN`). |
| `prompt`         | Invite personnalisée pour contrôler le ton, le registre et le style de la traduction.                            |

```yaml
- {
    id: 7,
    name: description_fr,
    type: ai-translate,
    sourceFields: [description],
    targetLanguage: fr,
  }
```

:::callout
**Routage des fournisseurs IA.** Les champs IA passent par le résolveur de précédence de fournisseurs de Sovrium (contrôlé par variables d'environnement, local-first par défaut). La propriété optionnelle `model` remplace le modèle par défaut pour ce champ. Le rôle de connexion conditionne toujours l'exécution partout où la table est exposée via le serveur MCP.
:::
