Account created on 16 April 2007, over 18 years ago
#

Merge Requests

More

Recent comments

🇩🇪Germany breidert

I think we should either make the icon look nice OR put the MR on hold.

🇩🇪Germany breidert

I tested with a fresh installation of Drupal CMS:

mkdir my-drupal-site && cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev start
ddev composer create-project drupal/cms

Launch the website and setup without any additional functionality.

Add ai and a provider:

ddev composer require drupal/ai
ddev composer require drupal/ai_provider_openai
ddev drush en ai_provider_openai

Configure chat assistant and place block in content section with styling setting 'Toolbar'

When you visit the page, the chat shows nicely in the toolbar:

The only difference I can see, is that the chat is initially vertically centered. I am not sure if this is correct. In the design it is aligned on top.

Here is a screen recording: https://www.drupal.org/files/issues/2025-11-21/Home-Drupal-CMS-2025-11-21.mp4

Now, when I apply the MR from the issue, I see the AI button has changed to an icon (like canvas). AFAIK, the icon is too big. Personally, I like the button more than the icon.

Here is a recording with the MR: https://www.drupal.org/files/issues/2025-11-21/Home-Drupal-CMS-2025-11-21%20%281%29.mp4

🇩🇪Germany breidert

This is a good idea. The list of "Official AI Recipes" should not live in the dashboard module, it should live in the AI module itself.

A similar mechanism should be established for "Official AI Modules".

However, I suggest to tackle this mechanism a bit later, because we want to get to speed first. Once we have the dashboard with "Official AI Recipes" running and we have a plan how to select and show "Official AI Modules", we can refactor it and for example place the functionality or yaml files in the AI module.

🇩🇪Germany breidert

Maybe expand is also it's own issue.

🇩🇪Germany breidert

Styling like this should probably be in it's own issue:

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

The dashboard will be created in this contrib module: https://www.drupal.org/project/ai_dashboard

🇩🇪Germany breidert

The related issue was updated, we are progressing, checkout the latest comment 📌 [Metag] UX concept for AI Dashboard / Status Page / Kickstarter Active .

🇩🇪Germany breidert

We are reaching a first version of AI overview page. This is what it looks like:

Figma link

🇩🇪Germany breidert

The Figma wireframe is discussed in this related issue 📌 [Metag] UX concept for AI Dashboard / Status Page / Kickstarter Active .

🇩🇪Germany breidert

This does not affect the related issue. It is rather a requirement for AI recipes, that they must include useful error handling for missing models / operations.

If this can be verified before, the recipe can be de-activated (greyed out). Otherwise a sensible error message should be shown if the user tries to install a recipe.

The same mechanism should be implemented on the recipe page withing Drupal CMS.

🇩🇪Germany breidert

Steps 1-2 are sort of required, because without AI key and providers you cannot use it. The others are optional. So it is a mixutre, I see it more as a recommeded first steps. Also, the completeness it not determinstic (the circles on the right). One enabled and configured provider could also be a full circle.

🇩🇪Germany breidert

@pdjohson - I created the content for you: https://docs.google.com/document/d/179hlPrX-wBjvfORlPlMwW_iXd-V3zMCBKwz2.... Feel free to use as is, or adapt to your liking.

🇩🇪Germany breidert

Wow it came our really nice, here is a sneak preview.

Feedback is welcome.

🇩🇪Germany breidert

What does this issue do?

🇩🇪Germany breidert

Maintainers have agreed on the new process

🇩🇪Germany breidert

Hello @mxr576 - you are right, we need a better solution, the menu can contain all kinds of links (not only to nodes).

🇩🇪Germany breidert

UX / Concept is created in this related issue 📌 [Metag] UX concept for AI Dashboard / Status Page / Kickstarter Active . Setting to postponed, until we have clear concept.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

For reference, this is what the UI of the MR looks like:

🇩🇪Germany breidert

Let's take a proper round of UX, then we implement the best solution.

🇩🇪Germany breidert

The MR fixes the typo

🇩🇪Germany breidert

I tested the functionality in detail and it works great !

However, I found a small error:

The content sections in /llms.txt correctly show the links as Markdown links (.md appended to the URL). However, the menu links do not show Markdown links (.md missing in the URL)

Testing steps:

  1. Setup Drupal CMS without any additional settings
  2. Require recipe: $ ddev composer require drupal/ai_recipe_llm_optimized_content
  3. Apply recipe: $ ddev drush recipe ../recipes/ai_recipe_llm_optimized_content
  4. Checkout settings and /llms.txt
  5. Add new page and add to menu and observe the change in /llms.txt
  6. Add blog post content type to Drupal CMS via project browser (/admin/modules/browse/recipes)
  7. Add LLMs.txt content section called 'Blog' with some description
  8. Create blog post, and add to content section 'Blog'
  9. Observe that /llms.txt now contains a new section with the blog
  10. Enable footer section and observe footer links in /llms.txt

After completing the steps /llms.txt looks like this:

# Demo Website

Cool website slogan

## Main menu

- [Blog](https://drupal-cms.ddev.site/blog)
- [Demo Page](https://drupal-cms.ddev.site/demo-page)
- [Home](https://drupal-cms.ddev.site/)

## Blog

Blog articles.

- [A celebration of Drupal and open-source contributions](https://drupal-cms.ddev.site/blog/2025-01/celebration-drupal-and-open-source-contributions.md)
    
    The Drupal project continues to serve as a model for open-source collaboration, powered by a global community of contributors. With more than 100,000 contributors from around the globe, the project highlights the transformative impact of open-source on the digital landscape.
- [Cool Blog post](https://drupal-cms.ddev.site/blog/2025-10/cool-blog-post.md)
    
    Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.


## Footer menu
- [Privacy policy](https://drupal-cms.ddev.site/privacy-policy)
🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

The bulk operation will be handled in a child issue #3549922: Create bulk operation for image classification .

🇩🇪Germany breidert

Recipe was updated, it now has descriptions for the new fields.

🇩🇪Germany breidert

Recipe project page was updated. Design and layout is needed.

🇩🇪Germany breidert

This works nicely and was tested here 🌱 [Meta] AI Image Classification Active

🇩🇪Germany breidert

It works as expected

When you apply the recipe you get the following functionality automatically configured:

* Media type image has AI alt text configured using "Field widget actions"
* Media type image has the additional fields "Image Description" and "Image Tags" which are automatically filled out using AI automators

Steps for testing:

mkdir my-drupal-site && cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev start
ddev composer create-project "drupal/recommended-project:^11"
ddev composer require drush/drush
ddev drush site:install --account-name=admin --account-pass=admin -y
ddev launch
ddev composer require 'drupal/ai:^1.2@RC'
ddev composer require drupal/token
ddev composer require 'drupal/ai_provider_openai:^1.1'
git clone git@git.drupal.org:project/ai_recipe_image_classification.git recipes/
ddev drush en ai token ai_provider_openai

Setup OpenAI via UI and leave default settings.

ddev drush recipe ../recipes/ai_recipe_image_classification

ddev drush recipe ../recipes/ai_recipe_image_classification
8/8 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓]
Applied AI Image Classification recipe recipe.
                                                                                                                        
[OK] AI Image Classification recipe applied successfully 
🇩🇪Germany breidert

I tested but get an error.

Steps to reproduce:

mkdir my-drupal-site && cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev start
ddev composer create-project "drupal/recommended-project:^11"
ddev composer require drush/drush
ddev drush site:install --account-name=admin --account-pass=admin -y
ddev launch
ddev composer require drupal/ai:"1.2.0-beta1"
ddev composer require drupal/token
git clone git@git.drupal.org:project/ai_recipe_image_classification.git recipes/
ddev drush en ai token
ddev composer require 'drupal/ai_provider_openai:^1.1'

Setup OpenAI via UI and configure GPT-4 for all default settings.

ddev drush recipe ../recipes/ai_recipe_image_classification

7/7 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓]
Applied AI Image Classification recipe recipe.
                  
[OK] AI Image Classification recipe applied successfully  

Upload and save image (manually enter alt text)

Error message:

Referrer	https://my-drupal-site.ddev.site/media/1/edit?destination=/admin/content/media
Message	Error invoking model response: Invalid content type. image_url is only supported by certain models.

No stack trace.

🇩🇪Germany breidert

Looks good !

🇩🇪Germany breidert

Features:

Limit llms.txt to default language (multilingual we do later): [# https://www.drupal.org/project/llm_support/issues/3548950]

Populate llms.txt with sensible default values:

  • Meta description of startpage with fallback to site slogan
  • Main Menu
  • View with included pages

Todo:

Create tokens, view, and field "Include in llms.txt" as base field

🇩🇪Germany breidert

Implementation idea: Create a custom field using https://www.drupal.org/project/custom_field with two values and an automator to populate this field.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

breidert created an issue.

🇩🇪Germany breidert

In the first iteration the recipe should only have a button to create an alt text.

However, it would be nice if it also came with a a views bulk operation, to generate multiple alt texts.

🇩🇪Germany breidert

Design work is done in this issue: [Meta] - UX / Design Conversational Interface 📌 [Meta] - UX / Design Conversational Interface Active

🇩🇪Germany breidert

Commenting on here as requested in the slack message.

🇩🇪Germany breidert

Based on the last conversation about chat placements and options we concluded the following for the "Fullscreen Icon of the chat":

Chats can be place via blocks. The chat placement block will have the following position settings:

  • Sticky: Right or Left
  • Inline
  • Sidebar: Expand or Fullscreen or None

When sidebar is selected the chat appears as in the screenshot. The screenshot shows the full screen setting, in which the chat opens on a modal. Note we still chose to name it "Fullscreen" because this is more common terminology. If "Expand" is chose an expander icon is show which simply increases and resets the width of the sidebar. Potentially both settings have more options like pixels or percent. We are also considering a setting to automatically set the chat to fullscreen, if the response has a certain length. This is useful if the response does not fit into the sidebar. However, this is not relevant to the wireframe. If "None" no icon is shown.

The screenshot is based on the L&F of the Figma wireframe available here.

🇩🇪Germany breidert

I was also thinking about the last part of the sentence ...can be created from ground up.

@thomas.Wardin - Do you have a better suggestion for the whole sentence?

Existing pages can be reused as templates, or dedicated templates can be created from the ground up.

🇩🇪Germany breidert

The text was changed from

Content templates module provides a user-friendly and flexible solution for creating and managing custom templates to control the layouts of content (nodes) and streamline editorial workflow. It allows site administrators and content editors to create visually appealing templates for different types of content tailored to specific target audiences. Templates can be easily created from existing nodes and can be customised later on. With a single click, new content is created from a template, and a reference to the template is retained for easy retrieval of all nodes created from specific templates.

to

Content templates module provides an intuitive and flexible way to create and manage custom templates based on existing content (nodes). Existing pages can be reused as templates, or dedicated templates can be created from the ground up. This enables site administrators and content editors to design templates for different use cases. Templates can be organized by topic, and new content can be generated from a template with a single click. Each new page keeps a reference to the template it was created from, making it easy to retrieve and manage all content associated with a specific template.

The relevant sentence that was confusing was changed to ... to create and manage custom templates based on existing content (nodes). Existing pages can be reused as templates, or dedicated templates can be created ...

🇩🇪Germany breidert

A first version of the report was created and is reviewed internally. Feedback from Paul, Baddý, and Dries was requested.

Design and layout of the report have started.

🇩🇪Germany breidert

I tested locally. Of course it would be better to disable the button, if no text is selected and show a tooltip. But I think it is good for now.

Before:

After:

🇩🇪Germany breidert

Add skill tags for issue discovery

Production build 0.71.5 2024