First content was created: https://www.drupal.org/project/ai_recipe_content_classification â
Content styling was updated on AI Image Classification project page â .
Design of project page will happen in child issue #3549923: Create design of Image Classification Product Page â
The bulk operation will be handled in a child issue #3549922: Create bulk operation for image classification â .
Recipe was updated, it now has descriptions for the new fields.
Recipe project â page was updated. Design and layout is needed.
This works nicely and was tested here đą [Meta] AI Image Classification Active
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
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.
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
Implementation idea: Create a custom field using https://www.drupal.org/project/custom_field â with two values and an automator to populate this field.
breidert â created an issue. See original summary â .
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.
breidert â created an issue.
breidert â created an issue.
breidert â created an issue. See original summary â .
Design work is done in this issue: [Meta] - UX / Design Conversational Interface đ [Meta] - UX / Design Conversational Interface Active
Commenting on here as requested in the slack message.
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.
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.
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 ...
kristen pol â credited breidert â .
valthebald â credited breidert â .
breidert â created an issue.
Sounds interesting
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.
kristen pol â credited breidert â .
valthebald â credited breidert â .
First draft is in this Google-Doc.
breidert â created an issue.
kristen pol â credited 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:
Add skill tags for issue discovery
Add skill tags for issue discovery
valthebald â credited breidert â .
This looks awesome
For reference: Drupal CMS SEO Tools
If we want to pick up the idea with the focus keyword, it would fit nicely as a new field called field_seo_focus_keyword
and use it when generating content for field_seo_title
and field_seo_description
.
We are currently doing an AI SEO project with one of our clients. On their side there is an experienced SEO specialist. From his side the main SEO works arises around the "focus keyword".
Currently we are thinking around the lines of adding a field to all content types called "Focus keyword". This will be used in various use cases such as generating title texts, preview texts (meta tags, cards, introductions, etc.), and content. It will also be used for internal linking to make sure the link texts use the focus keyword of the link target pages.
We are currently exploring what more we can do to make an SEO specialists day to day job working with content creators more efficient.
I think conceptually the issue could be split in SEO analysis (figure out what is going on) and SEO content creation (create or optimize content that ranks).
Once we have first versions, I will share the results with you.
Since guardrails can appear in many places such as automators, agents, tools, content suggestions, CKEditor, etc. we need a list of configuration UIs where the functionality can be added. Best would be with screenshots as we might need UX work to create a pleasant configuration experience.
We need something like this for Drupal AI as well.
@kristen - should be not add the above as issue template?
I mean here: https://www.drupal.org/node/add/project-issue/ai â
Instead of the existing default template:
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<h4 id="summary-steps-reproduce">Steps to reproduce (required for bugs, but not feature requests)</h4>
Please provide information like AI modules enabled, which AI provider, browser, etc.
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
<h3>Optional: Other details as applicable (e.g., User interface changes, API changes, Data model changes)</h3>
I did an in depth review of the proposed documentation change.
I really like the quality and the clarify of the new "Issue guidelines". However, I find them a bit long and fear contributors might not read them. But after spending some time thinking about it, I could not suggest improvements or come up with a better way to document issues.
I only suggested some small text changes for which I felt they made the text more neutral. I left the suggestions as comments in the MR.
However, when my suggestions are accepted or declined the issue can be set to RTBC from my point of view.
@lussoluca after speeking with @marcus_johansson we prefer the addon version. Please close the .ddev MR.
I tested commands the MR, and it works after fixing one small error (I left a comment in the MR).
mkdir ai-dev && cd ai-dev
ddev config --project-type=drupal11 --docroot=web --php-version=8.3 --corepack-enable
ddev add-on get lussoluca/ddev-drupal-suite
ddev drupal-init 11.2.2
ddev drupal-get-module ai 1.2.x
ddev drupal-get-recipe ai_dev_recipe 1.0.x
The recipe applies nicely. I like how you are asked during installation to enter your keys for Anthropic and OpenAI.
The current working version of the high-level roadmap is here.
breidert â created an issue.
When navigating to https://new.drupal.org/ai/survey I see the survey is not using the full available width.
The survey is responsive, if possible change to use the full width.
valthebald â credited breidert â .
kristen pol â credited breidert â .
kristen pol â credited breidert â .
I like it, but I might be biased :-)
Looks good Kristen
@kristen I would suggest the following:
Bug
Title
Clear, concise summary of the problem (e.g., "Crash on login when username is blank")
Description
- Whatâs happening vs. whatâs expected?
- Include any error messages, stack traces, or logs.
- If itâs a regression, mention when it last worked.
- Describe expected behavior
Steps to Reproduce in Drupal AI DDEV environment
1. Go to â...â
2. Click on â...â
3. See error
Environment
- Drupal version:
- Drupal AI version:
- Browser (if relevant):
- Any relevant config or flags
Todos
- Fix the bug
- Provide testing instructions in Drupal AI DDEV environment
Requirements / Acceptance Criteria
- When I follow the testing instructions I can verify the feature works
URLs (if applicable)
- Link to the affected page (can be relative)
Screenshots (if applicable)
- Provide a screenshot showing the issue
Feature
Title
Short summary of the feature (e.g., "Add dark mode toggle in settings")
Description
- What is the feature?
- What problem does it solve or what value does it add?
User Story / Use Case
As a [type of user], I want to [goal] so that [benefit].
Todos
- Create concept
- Implement
- Provide testing instructions in Drupal AI DDEV environment
- Provide documentation
Requirements / Acceptance Criteria
- When I read the documentation I understand how the feature is supposed to work
- When I follow the testing instructions I can verify the feature works
Design / UI Notes
- Link to mockups, wireframes, or design files if available
Dependencies or Related Work
- Mention any backend work, third-party libraries, or affected components
URLs (if applicable)
- Link to spec, design, or existing feature area
Screenshots (if applicable)
- Add mockups, visual references, or examples
Task
Task Requirements
Title
Describe the task clearly (e.g., "Provide documentation for new contributors")
Description
- What needs to be done and why
- Not necessarily user-facing
Checklist / Subtasks
- Break down into actionable steps if helpful
Context / Background
- Link to related tickets, technical docs, Slack threads, etc.
Todos
- Describe what needs to be done
Requirements / Acceptance Criteria
- Describe what does âfinishedâ looks like
Effort Estimation based on current information
Re-Build Logging (Buckets 1-3 above): 10-15 days
The majority of the work goes into the re-creation of the AI logging sub-module, and updating the Extended Logger â module.
Creating sensible management views (like number of tokens spent, or number of AI calls) does not take so much time. Most of the work for this would be to define what views make sense.
Creating a log export function does not take much time.
Create OTEL integration: 5-10 days
The creation of a new sub-module called AI Oberservability is not very difficult. The majority of the work flows into mapping AI event data to OTEL's traces, spans, attrributes, and events in a meaningful way. The module Opentelemetry â also needs to be upgraded.
Delivery
It is planned that EPAM delivers above functionality with their own team. Communication with the core maintainers Marcus and Artem will be via a dedicated channel in Slack (#ai-obersability).
First the new logging will be developed, then the OTEL integration.
> The About you should be the first step
Not sure, usually you do it the other way around. Personal stuff at the end. I think if people filled out the complete survey, they would like to get the results. Therefore, they would also fill out the about you section on the last page.
breidert â created an issue.
@pdjohnson - please add the survey to DO/ai in a sensible place with supporting text.
On the page this HTML code has to be placed
<iframe src="//www.1xinternet.com/en/webform/custom_drupal_ai_features/share/iframe-resizer/4.2.10" title="Drupal AI Features Survey | 1xINTERNET" class="webform-share-iframe" frameborder="0" allow="geolocation; microphone; camera" allowtransparency="true" allowfullscreen="true" style="width:1px;min-width:100%"></iframe>
<script src="//cdn.jsdelivr.net/gh/davidjbradshaw/iframe-resizer@4.2.10/js/iframeResizer.min.js"></script>
<script>iFrameResize({}, '.webform-share-iframe');</script>
General questions about AI usage in organizations were added with the option to specify.
- Are you using AI in your daily work?
- Is your organization using AI already?
Additional information from weekly meeting:
The UI/UX has to make it simple to create and manage guardrails. However, since there are many things to configure, this could become complex.
Guardrails can be general and apply to general functionality such as AI Translation or Content Suggestions, where you might just need to block things like PII data or flag things like <script>
tags.
Guardrails can also be very specific and be tied to a single agent or a tool.
A specific example of a guardrail for a single agent might be something like:
âCheck that the text in the image only includes cooking instructionsânothing else.â
Youâd only want that guardrail running for the agent that generates food recipesânot every AI process.
A UI/UX should work for all use cases.
AI bots are becoming a real issue. Many of our clients face massive bot hits and we have to spend a lot of energy on traffic shaping on the CDN/WAF level.
Note that CDN providers such as Cloudflare make it really easy (or even default settings) to block AI scrapers:
- https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-s...
- https://www.fastly.com/blog/take-back-control-make-ai-bots-play-by-your-...
- ...
I think the traffic part is not what we can influence, that happens before traffic hits Drupal websites.
But what we can do is provide functionality to make sure the AI(s) we use (in our agentic systems) can be restricted to deliver ethical results.
IMO the way to go is to provide string guardrail functionality with sensible defaults. There is already an issue for guardrails ⨠Create the concept of Guardrail agents Active , and we are currently looking for contributors that are willing to take this on.
marcus_johansson â credited breidert â .
@matthews - in the end we need providers listed for the different model types on /admin/config/ai/settings
(Image Classification, Image to Video, Speech to Text, etc.).
breidert â created an issue.
@darren oh
On Drupal.org you can add general projects. Here is the documentation for general projects â .
These can contain arbitrary code as for example DDEV installation scripts.
They are also used for recipes (for example this one â which we contributed earlier this year).
- Updated Brand guide agent
- Remove Idea generator
- Remvoed Control Center Agent
Survey overview was updated
Introduction text was update from
Thank you for participating in this survey! The Drupal AI initiative is working hard to integrate powerful AI capabilities into Drupal including advancements in agentic capabilities and Model Context Protocol (MCP) support.
In parallel with these core development efforts, we are also building production-ready features that can be used immediately on Drupal websites. To ensure we prioritize the development of the most valuable "ready-to-use" functionalities, we need your insights.
This survey presents various AI functionalities we intend to build that are focused on immediate application. We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.
The survey should take approximately 10-15 minutes to complete. Your responses will be kept confidential and used solely for product development purposes.
to
Thank you for taking the time to complete this survey.
The Drupal AI Initiative is working to deliver a range of new ready-to-use AI capabilities for Drupal. These will help you gain immediate value from AI, with minimal technical barriers to adoption.
We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.
The survey should take around 10-15 minutes to complete. All responses are confidential and will be used solely to guide product development.