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

# EU AI Act compliance

> Configure your PAL and conversations to comply with the EU AI Act's rules on biometric emotion recognition and AI disclosure.

The EU AI Act places two direct obligations on real-time conversational AI:

* **Biometric emotion recognition** is prohibited in workplace and education contexts — a system may not infer emotion from what it sees and hears (facial expression, tone of voice). Emotion the LLM infers from what a user *says* is not covered by the ban.
* **AI disclosure** is required — participants must be clearly told they are interacting with an AI, at the latest at the first interaction.

Tavus surfaces two building blocks so you can meet both obligations without changing PAL prompts or client code:

1. A conversation-level `policy` parameter you set to `eu` for European participants.
2. PAL-level fields (`emotion_recognition`, `disclosure_type`, `verbal_disclosure`, `visual_disclosure`) that either follow `policy` automatically or can be pinned to a specific behavior.

## The `policy` parameter

Set on [`POST /v2/conversations`](/api-reference/conversations/create-conversation):

```json theme={null}
{
  "face_id": "r90bbd427f71",
  "pal_id": "pcb7a34da5fe",
  "policy": "eu"
}
```

When `policy` is `eu`, every PAL layer set to `auto` (the default for the fields below) switches to its EU-safe behavior for the duration of that conversation. Layers with an explicit setting are honored as-is — `policy` never overrides an explicit choice.

You choose the value per conversation. Tavus does not geolocate the caller; passing the correct value is the customer's responsibility.

## Biometric emotion recognition

Configured on the [perception layer](/sections/conversational-video-interface/pal/perception) via `emotion_recognition`:

| Value            | Behavior                                                                                                                  |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `full`           | Raven-1 attaches biometric emotion analysis.                                                                              |
| `limited`        | Raven-1 does not attach any biometric-derived emotion. Other cues (spoken content, objects, activity) still flow through. |
| `auto` (default) | Follows `policy` — `limited` when `policy` is `eu`, otherwise `full`.                                                     |

<Note>
  `emotion_recognition` only touches biometric signals. The LLM can still reason about emotion from what the user *says*, which the ban does not restrict.
</Note>

### Google Meet / Zoom PALs

Google Meet / Zoom PALs join calendar-invited meetings, where the meeting organizer is not necessarily an EU participant. If your Google Meet / Zoom PAL is used strictly outside EU workplace and education contexts, you can pin it to `full`:

```json theme={null}
{
  "layers": {
    "perception": {
      "perception_model": "raven-1",
      "emotion_recognition": "full"
    }
  }
}
```

## Informed AI disclosure

Configured at the top level of the PAL:

* `disclosure_type` — `always`, `auto` (default), or `off`.
* `verbal_disclosure` — sentence the PAL speaks before its greeting. When empty, falls back to Tavus's default: **"Just a note, I am an AI system, not a person."**
* `visual_disclosure` — on-screen banner shown while the verbal disclosure plays. When empty, falls back to Tavus's default: **"You are interacting with an AI system."**

| `disclosure_type` | Behavior                                                                                           |
| ----------------- | -------------------------------------------------------------------------------------------------- |
| `always`          | Always speak `verbal_disclosure` before the greeting and show `visual_disclosure` on screen.       |
| `auto` (default)  | Apply the disclosure only when `policy` is `eu`.                                                   |
| `off`             | Never deliver a disclosure. Use this only when you are legally certain disclosure is not required. |

Example PAL that discloses automatically for EU conversations:

```json theme={null}
{
  "pal_name": "Acme EU Agent",
  "system_prompt": "You are a helpful support agent for Acme.",
  "pipeline_mode": "full",
  "default_face_id": "r90bbd427f71",
  "disclosure_type": "auto"
}
```

## End-to-end example

Create the PAL once with `auto` defaults, then flip compliance on per conversation by passing `policy: "eu"`:

```json Create PAL theme={null}
POST /v2/pals
{
  "pal_name": "Support Agent",
  "system_prompt": "You are a helpful support agent.",
  "pipeline_mode": "full",
  "default_face_id": "r90bbd427f71",
  "disclosure_type": "auto",
  "layers": {
    "perception": {
      "perception_model": "raven-1",
      "emotion_recognition": "auto"
    }
  }
}
```

```json Create EU-safe conversation theme={null}
POST /v2/conversations
{
  "pal_id": "pcb7a34da5fe",
  "face_id": "r90bbd427f71",
  "policy": "eu"
}
```

## Related

* [Perception layer](/sections/conversational-video-interface/pal/perception) — full reference for `emotion_recognition` and Raven-1 audio and visual analysis.
