Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module automatically generates a public-facing page detailing all AI features used on your website. It explains what each AI does with user input, whether personal data is involved, and what the results mean, helping you comply with AI regulations. It dynamically lists the AI features currently active and configured on your site, ensuring accuracy.

Publishes one page that lists every AI feature on the site, what it does with a visitor's input, and what its result means. The page is written for a visitor, not for a developer.

Why

The EU AI Act asks you to tell people when they deal with an AI system. A page that somebody writes by hand goes stale the moment an editor changes a model or moves a block. This module builds the page from the site itself, so the model it names and the places it lists are the ones the site really uses today.

Every feature answers the same set of questions, so a visitor can compare them:

  • What does it do
  • What does it send to a model
  • Is personal data involved
  • How long is anything kept
  • Does a person still decide
  • Which provider and model

How it works

Every AI feature is one plugin. A plugin carries the text for a visitor in its attribute, and it may replace any value with a live one that it reads from the site. A feature only appears when its module is enabled and its block is really placed, so the page never promises something the site does not offer.

A module that ships an AI feature can declare its own plugin. Nothing has to change in this module for that feature to appear.

What it ships

Plugin Describes Reads live ai_search_block AI Search Block The model of the placed block, and whether the search log is on ai_talk_with_node AI talk with Node The model of the placed block ai_chatbot The chat and Deep Chat blocks of the ai_chatbot submodule of AI The model and the history setting of the assistant, and the name of every bot

Requirements

  • Drupal 10.4+ / 11.x / 12.x
  • AI ^1

How to use

  1. Install the module.
  2. Give the roles that read the page the View the AI compliance report permission.
  3. Open the page. It sits at /ai-compliance-report until you change the path.

Settings

Go to Configuration, AI, AI compliance.

Setting Description Path Where the page lives. Title The heading of the page. Text above the list Rich text, shown before the first feature. Show the model Whether the provider and the model are named on the page.

What you are responsible for

The list of features is built from the site. It cannot know who runs the site, how a person reaches you, or what you assessed. Eleven further fields carry that, and every one of them explains which law it comes from and whether it applies to you.

Every answer is stored whether or not you publish it, so filling the form in is worth doing on its own. A separate checkbox per field decides what a visitor sees. Nothing is required, so a site can fill this in over time.

Field Where it comes from Organization responsible GDPR Article 13(1)(a), AI Act Article 3(4) and 26 Contact point for AI questions GDPR Article 13(1)(a) and (b) Report a problem with an AI answer AI Act Article 26(5), and Article 73 for the provider Ask for a human review GDPR Article 22(3), AI Act Articles 14, 26(2) and 86 Complaint route and supervisory authority AI Act Article 85, GDPR Article 77 Privacy policy GDPR Articles 13 and 14 Is what a visitor types used to train models GDPR Articles 5(1)(b) and 13(1)(c), AI Act Article 50(1) Where the model runs GDPR Article 13(1)(f), Articles 44 to 49 Known limitations AI Act Articles 13 and 50(5) Risk classification AI Act Article 6 with Annex III, Article 5 Last reviewed on GDPR Article 5(2), AI Act Article 26(5)

These notes say where an obligation comes from. They are not legal advice, and several of the fields are good practice rather than a duty that falls on every site.

Describing your own feature

Add a class under src/Plugin/AiImplementation in your own module:

#[AiImplementation(
  id: 'mymodule_summary',
  label: new TranslatableMarkup('Page summaries'),
  purpose: new TranslatableMarkup('Shortens a long page into a few sentences.'),
  impact: new TranslatableMarkup('A summary written by a model. Read the page for the full text.'),
  where: new TranslatableMarkup('At the top of a long page.'),
  input_data: new TranslatableMarkup('The text of the page.'),
  personal_data: new TranslatableMarkup('None.'),
  retention: new TranslatableMarkup('The summary is stored with the page.'),
  human_decision: new TranslatableMarkup('An editor approves every summary.'),
  weight: 10,
)]
class SummaryImplementation extends AiImplementationBase {
}

Override isActive() to hide the entry while the feature is switched off. Override model() to name the model the site uses today.

Changing the list

Hook Use it to hook_ai_compliance_report_alter() Add, drop, correct or reorder the entries of one page. hook_ai_implementation_alter() Remove or rename a plugin for the whole site.

The event AiInformationAlterEvent does the same as the first hook in an object oriented style, and it runs before it. See ai_compliance_report.api.php.

What this module is not

It reports what the site is set up to do. It does not check the claims, it does not log what a model receives, and it is not legal advice. Read the entries before you publish the page, and correct anything that does not match how you run the site.

Related

Activity

Tracked releases
2
Tracked since
Aug 2026
Latest release
4 days ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0 Stable Aug 19, 2026
1.0.x-dev Dev Aug 19, 2026