Talking Drupal #566 - DrupalEasy: Responsible Drupal AI

August 20, 2026

Today we are talking about Drupal, AI, and learning to use it responsibly with guest Mike Anello. We’ll also cover Entity Mesh as our module of the week.

Listen:

direct Link

Topics

  • Course overview
  • Fast moving modules
  • Inside vs outside AI
  • No code approach
  • Keeping curriculum current
  • Essentials vs add ons
  • Chat Claude Code setup
  • Inside vs Outside AI
  • Rules and Provider Calls
  • Guardrails in Drupal UI
  • Model QA and Testing
  • Local Models and Costs
  • Token Budgets and Logging
  • Course Use Cases Overview
  • RAG and Vector Basics
  • Class Schedule and Pricing
  • AI Predictions and Wrap
  • Brief description:
    • Have you ever wanted a way to analyze and visualize the ways in which the content on your Drupal site is interlinked? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Jan 2025 by Jorge Tutor (gedur) of Metadrop
    • Versions available: 2.1.0 and 2.0.3, both of which work with Drupal 11
  • Maintainership
    • Actively maintained, latest release last month, and a commit just yesterday
    • Security coverage
    • Test coverage
    • Documentation? Project page is pretty descriptive
    • Number of open issues: 13 open issues, 4 of which are bugs, but 2 of those were marked fixed in the past week
  • Usage stats:
    • 437 sites
  • Module features and usage
    • With Entity Mesh installed, the module will analyze the rendered output of your nodes using a chosen account, looking for links to other content
    • That means it will find not just links in entity relationship fields, but also links within formatted text, menus, and more
    • The results can be visualized in a D3.js 3D visualization, displayed as a table, or exported as a CSV
    • The report also exposes a set of Views-style filters, to help you narrow down to the specific set of information you want to understand
    • Entity Mesh analyzes the DOM of your rendered nodes, looking for links, iframes, and images. Internal paths are further analyzed and categorized, for example based on whether the specified path redirects, is broken, points to something that is access-denied, and so on
    • From a marketing perspective, that allows you to understand the paths available to navigate from a source page to a target page, the content linked to or from a specific page, and will also augment the content deletion confirmation form to advise the user of any existing links to the content being deleted
    • There are obvious SEO advantages to being able to find redirect chain, broken or access denied links, and there are GDPR compliance implications for being able to identify iframes that might load third-party cookies
    • The project page also mentions that this module could be very useful to run after a content migration, for QA
    • The actual analysis of your site content be triggered by drush, an admin form, or by cron, and you can set limits on the size of the batch to run, because of the weight it puts on your site by rendering every node it analyzes
    • The current versions Entity Mesh also depend on the Entity Registry and Entity Render Context modules, that have essentially the same maintainers, so if there’s only part of Entity Mesh that you really need, you could also give those a look
    • Back in episode #321 we covered Entity Usage, and there are some definite similarities, but also some differences. While they both provide reporting on content relationships, Entity Usage does so by examining structured field values at save time. So, the information gathered is different, and collects data that can be displayed in views or custom code.
Transcript

[00:00:00] John: This is Talking Drupal, a weekly chat about web design development from a group of people with one thing in common. We love Drupal. This is episode 566, DrupalEasy Responsible Drupal AI. On today's show, we're talking about Drupal, AI, and learning to use it responsibly with our guest, Mike Anello. We'll also cover Entity Mesh as our module of the week.

Welcome to Talking Drupal. Today our guest is Mike Anello. Mike, thanks for filling in for me last week. I appreciate that, and Martin, and, you know, just carrying the whole show on your back.

[00:00:42] Mike: Uh, you're welcome, and I'll leave it at that.

[00:00:45] John: There you go. Uh, for those of you that don't know, Mike Anello is the co-founder and lead instructor at DrupalEasy, a Florida-based Drupal training and consulting firm.

With over 20 years of Drupal experience, he has taught countless developers through DrupalEasy's courses and hosts the DrupalEasy Show and Tell podcast/video series. Mike maintains several contrib modules, including Smart Trim and Markdown Easy, and serves as treasurer of the DDEV Foundation. A frequent speaker at DrupalCon and regional camps, he's known for practical hands-on training on topics ranging from site building to the latest Drupal AI tooling.

As I said, Mike, welcome to the show, and as always, thanks for joining us.

[00:01:33] Mike: Thanks for having me back again. I appreciate that.

[00:01:36] John: I have so many questions. Like, um, did, did the DDEV Foundation give you that T-shirt for your, for your volunteerism?

[00:01:45] Mike: Yeah. This is actually an old one from, like, way back. Uh, I don't think I've gotten anything, and I should preface it.

So I am... I, I, I'm on the, the DDEV, uh, I think we call it board of directors. There's an advisory board, which is larger, then there's a smaller board of directors, which is maybe only a half dozen of us. And, um, I'm still, it's a very long onboarding process, uh, to be the treasurer, um, 'cause most stuff is in Randy Fay's head.

So we are slowly extracting things from Randy's head, documenting it, and then I'm taking over. So, um, yeah.

[00:02:20] John: I, I just imagine Randy living on forever as, like, one of those, like, floating heads in a jar, and people are just extracting knowledge out of it. Um, maybe that, maybe that's morbid. I don't know. Um, uh- Uh-huh

last question on your bio for you, uh, NedCamp, yes or no? Go.

[00:02:37] Mike: Oh, yeah, yeah, yeah. Yeah, yeah. That's a... That's, you know, like most people, you know, I know, I think all of you know this, like my... I grew up in Connecticut, which is, you know, an hour-and-a-half drive from Providence, and my parents are still there, so-

[00:02:51] John: Yeah.

Yeah. I go

[00:02:51] Mike: up to Connecticut- I figured, I figured

[00:02:53] John: your

[00:02:53] Mike: annual trip

[00:02:54] John: to see mom and dad would be, uh, would

[00:02:56] Mike: be- Well-

[00:02:56] John: Would be on the books.

[00:02:57] Mike: I'm up there- We'll appreciate- A lot more often than annual, but yeah.

[00:03:00] John: Nic, there you, there you go. Wow. We will appreciate seeing you. Um, for those of you who may have forgotten who I am, uh, I'm John Picozzi, Solutions Architect at EPAM.

Yeah. And uh, joining me today, JD Flynn, Senior Software Engineer at HeroDevs. JD.

[00:03:14] JD: Hey. Thanks for having me. Glad- Super excited to be here.

[00:03:17] John: Glad to see you're safe.

[00:03:18] JD: Yes, yes. Uh, for anybody who's been playing along at home, last week my area had a huge, uh, storm called a derecho, which, uh, today I learned is Spanish for straight, because it's like a straight hurricane inland.

[00:03:33] John: Yeah. That sounds not fun, and we're glad you're, you're back with us and okay. Um, joining

[00:03:40] Mike: us- What was the... You said the straight hurricane? Did you say straight?

[00:03:43] JD: Yeah. I, it, it- 'Cause usually

[00:03:44] John: hurricanes are spirals, right?

[00:03:46] JD: Yeah. Usually, you know, it's a, a round- That swirls.

[00:03:48] Mike: Yeah.

[00:03:49] JD: I... But it's over 100 miles per hour winds over several hundred miles of land.

[00:03:56] Mike: Isn't that just a storm?

[00:03:57] John: Well, uh, i-

[00:03:59] JD: I would, I- It's a severe one.

[00:04:00] John: I mean, to me- Okay ... it sounds like a tornado, so why don't they call it a tor hurricane?

[00:04:05] JD: Because, uh, a derecho- Tor hurricane ... can actually spawn- Hurricane ... tornadoes.

[00:04:08] Mike: I

[00:04:09] JD: feel like inland- So in the derecho- ... they're just trying to get in

[00:04:10] Mike: on the hurricane action is what I think.

[00:04:12] John: Wait a second. The derecho can spawn tornadoes?

[00:04:17] JD: The derecho was over 300 miles wide, I believe, and within it there were at least seven tornado touchdowns in Indiana alone.

[00:04:27] Nic: Torcano is Stony Eagle. That's a, that's a great call. Torcano I think is-

[00:04:32] John: S- s- yeah, yeah ... how you call it But I mean, like, the, the derecho's like a super, super storm because it's spor- sp- spawning torna- Yeah.

Yeah, that

[00:04:39] JD: sounds

[00:04:39] John: awful. I'm glad you're okay. Yeah, it was. Because- Thank you ... you know, that would, that would... No, you're not going down like that. All righty, and that other voice you heard was Nic Laflin, founder at nLightened Development. Hey, Nic. Did you miss me?

[00:04:52] Nic: Hey. Absolutely. I think I might have missed Martin a little bit more, 'cause it's been about six weeks, but-

[00:04:57] John: Wait a second

[00:04:57] Nic: uh.

[00:04:58] John: Was that M- is that Martin we see there? Yes, it is. So- Let's turn it, let's, let's go right to Martin to talk about our module of the week. And yes, we are gonna turn it over to Martin Anderson-Clutz, a product marketing manager for Drupal at Acquia and a maintainer of a number of Drupal modules of his own.

Martin, welcome back. And what do you have for us this week?

[00:05:19] Martin: Thanks, John. Have you ever wanted a way to analyze and visualize the ways in which the content on your Drupal site is interlinked? There's a module for that. It's called Entity Mesh, and it was created in January of 2025 by Jorge Tudor of Meta Drop, and it has 2.1.0 and 2.03 versions available, both of which work with Drupal 11.

It is actively maintained. The latest release was just last month, and there was a commit just yesterday. It has security and test coverage, and there isn't a lot of documentation right now, but the project page is pretty descriptive. It has 13 open issues on Drupal.org, four of which are bugs. But two of those were marked as fixed in the past week.

Has, it is officially in use by 437 sites, according to, to Drupal.org Now, with Entity Mesh installed, the module will analyze the rendered output of your nodes using a chosen account, looking for links to other content. That means it will find not just links in entity relationship fields, but also links within formatted text menus and more.

The results can be visualized in a D3.js 3D visualization displayed as a table or exported as a CSV. The report also exposes a set of views style filters to help you narrow down to the specific set of information you want to understand. Entity Mesh analyzes the DOM of your rendered nodes looking for links, iframes, and images.

Internal paths are further analyzed and categorized, for example, based on whether the specified path redirects is broken, points to something that is access denied, and so on. From a marketing perspective, that allows you to understand the paths available to navigate from a source page to a target page, the content linked to or from a specific page, and will also augment the content deletion confirmation form to advise the user of any existing links to the content being deleted.

There are obvious SEO advantages to being able to find redirect chains, broken or access denied links, and there are GDPR compliance implications for being able to identify iframes that might load third-party cookies. The project page also mentions that this module could be very useful to run after a content migration for QA.

The actual analysis of your site can be triggered by Drush, an admin form, or by Cron, and you can set limits on the size of the batch to run because of the way it puts on your site by rendering every node it analyzes. The current versions of reference Entity Mesh and... Sorry. The current versions of Entity Mesh also depend on the Entity Registry and Entity Render Context modules that have essentially the same maintainers, so if there's only one part of Entity Mesh that you really need, you could also give those a look.

Now, back in episode 321, we covered Entity Usage, and there are some definite similarities but also some differences. While they both provide reporting on content relationships, Entity Usage does so by examining structured field values at save time. So the information gathered is somewhat different and collects data that can be displayed in views or custom code.

But let's talk about Entity Mesh.

[00:08:26] John: I mean, maybe my brain's still on vacation. Uh, I looked at the visual for this module, and I was kinda like, "Oh, that's cool. It kinda visualizes all of the connections between, between, uh, information ent- you know, and entities." And then I kinda was like, I, I, I don't know, like, if, if, if and when and why I might kinda use that, but

[00:08:48] JD: yeah.

So I can think of a, a reason right off the top of my head. Go for it. Actually, Martin, you can probably, uh, correct me if it doesn't exist anymore, but, uh, Content Hub. Having a multi-site Content Hub with, uh... I, I remember years ago it was difficult because it didn't always get all the dependencies. So if you were to put a single node in Content Hub, but it had a relationship to another node, maybe it's an entity reference, if it had an image, if it had a view, it wouldn't get all those.

But with something like Entity Mesh, you can see how it connects out to everything, and then make sure when you're syndicating your content from one site to another- Mm ... that you're syndicating everything that needs to go with it.

[00:09:27] Martin: Yeah.

[00:09:27] John: Interesting.

[00:09:28] Martin: Yeah, so for anyone who's not familiar, Content Hub is a product that allows you to syndicate content from one Drupal site out to other Drupal sites.

I should probably mention there is also another module called Entity Share that's more of, like, an open source version to comp- accomplish some similar things. Uh, but yeah, being able to, to understand that sort of like broader tree of, of relationships can also really help in terms of, of even understanding sort of like, you may look at, at, say, you've got, like, 10 press releases that you want to syndicate, but using a tool like this can help you to understand, well, that may actually end up being, like, 400 individual pieces of, of information that actually need to be syndicated over, not just sort of, like, the, the 10 nodes themselves.

So yeah, that's a great point.

[00:10:09] John: Yeah. Uh, it's interesting, 'cause as JD was talking, I was also thinking, like, advanced taxonomies, right? Where you, it may have, like, deep, deep taxonomies or multiple, multiple taxonomies, and they kind of link all of your different content together. Could be, could be useful to see that sort of thing.

[00:10:25] Mike: I feel like there might be, like, a sweet spot in the amount of content on a site where this would be useful, right? For smaller sites-

[00:10:35] John: Hmm ...

[00:10:35] Mike: I don't know how useful it would be, um, you know, maybe in the low hundreds of, of nodes. Um, and then for really large sites with, like, thousands of thousands of nodes, I mean, it just seems like it would make a pretty picture, but just so much data.

It feels like there might be, um, a sweet spot in the amount of content a site has- Yeah ... where this could be useful. Like, it, it probably, it peaks somewhere in between. Yeah, it'd be- I, I've never used it, but, I mean- Yeah, go ahead, Nic

[00:11:06] Nic: I, yeah, I've, I've, I've never used this one in particular, but I'll test it out.

I, I've used other modules like this. Where it can be really helpful even on a larger site is identifying cyclic, uh, dependencies. Um, if you're trying to figure out circular dependencies between different types of content entities. Um, the larger sites, it sounds like they kind of have this solved with the batching, but for larger sites, I typically just do this on a test environment or a local.

Um, it's not the kind of thing that I would want to push up to production just because it's, it's a lot of stuff to be doing on cron, um, and you already have things like search, uh, rendering, and things like that that you already have to handle. So I would probably put this on a test environment and to keep it up to date, but-

[00:11:52] JD: No, do it on production.

That's where all good- That's where all good- That's where

[00:11:57] John: all good resource-intensive tasks happen.

[00:12:00] JD: Anything SEO for this would be amazing just to, you know, make sure that your links are going to the right place. Make sure, I mean, if you, you're looking for the dependencies and you see content that isn't there.

I'm not sure if it can actually, uh, call that out, but

[00:12:15] Martin: So yeah, so it's interesting. It'll, it, it will be able to differentiate between sort of just your standard kind of like a broken link versus something that like points to content that has some kind of access restrictions. So if like somebody has moved content to like an archive state or something like that, it'll be able to differentiate between those two things.

[00:12:34] John: Mm-hmm.

[00:12:34] Martin: Um, so there, there are some sort of, you know, uh, helpful nuances that it can, can help to tease out. Um, also back to, to what you said, Mike, around the, um, the larger sites, definitely as the amount of content gets larger, then the ability to, to filter down to sort of narrower context will definitely help the, the visually- visualizations to say, stay as something that, you know, can be sort of like, um, you know, I guess interpreted in a way that isn't overwhelming.

But also the other thing is that because you can export the content, you could also do like a huge dump of like a really big site and then feed that into like an AI engine to say like, you know, help me identify X kind of pattern or, or those kinds of things as well. So, you know, there's definitely a number of ways this, this could be useful, but I agree, like primarily it's probably more for that sort of middle use case out of the box per se.

[00:13:23] Mike: I would love to know like what was the impetus for creating this module, right? Was there like the, the, did the maintainer or the maintainers have a client that needed something like this that was gonna solve a problem? Like that would be really interesting to me is like what, you know, gimme like a u- like a, a real world use case or two where this solved a, a specific issue or a specific set of issues.

[00:13:48] John: I

[00:13:48] Martin: mean- Yeah, it's interesting. Sorry, go ahead.

[00:13:49] John: Go ahead. No, you first.

[00:13:52] Martin: All right. So what I was gonna say is to me it feels like probably the core piece of this that I could see people sort of like being like a customer as to your example, being really focused on and then it sort of grew functionality-wise, is really sort of like the links checker aspect of it.

Um, because it, it feels like there's a lot of, of, um, you know, nuanced capability around that sort of, you know, links checking piece, uh, being able to do that even outside of like the structured field. Um, and so being able to, to have that and then at that sort of just growing over time into, you know, ways that, that allow things to be, you know, categorized in different ways and, um, that kind of thing.

If, if I had to guess, I would say that feels to me like it's probably the sort of like origin story of this module.

[00:14:37] John: I was just going to add no value by saying it also checks the box of, um, adding pretty pictures for information, which is- It- everything- I knew that's what you were gonna say ... everything's better with pictures.

[00:14:47] Nic: I, I knew it. Yeah. I'll, I'll have to check this out. I, I, I've checked out a number of the content mapping modules, and it's always good to try a new one. This one looks good.

[00:15:00] John: Well, Martin, it's great to have you back. Thanks for bringing us a, uh, a interesting module of the week. Uh, if folks wanted to connect with you now that you're, now that you're back, back in old Canada, uh, or suggest a module of the week, how could they do that?

[00:15:16] Martin: We are always happy to take suggestions or discuss modules of the week in the Talking Drupal channel of Drupal Slack, or folks can reach out direct, uh, reach out to me directly as mandclu on a variety of Drupal and social platforms.

[00:15:31] John: Perfect. See you next week, Martin. Thank you.

[00:15:34] Martin: See you then. Bye.

[00:15:36] John: Um, so, uh, I do want to highlight before we continue that, um, JD is, um, streaming this to his Twitch, so we got a whole bunch of folks in the chat, uh, providing some great commentary there.

Um, we will bring those comments in as we see them and it makes sense. Uh, I will say, uh, asknoos is, uh, commenting on Mike's DDev shirt.

[00:16:04] Nic: Um- Yeah, had a question about, uh, Orlando, if you wanna answer that, Mike.

[00:16:09] Mike: Yeah, the, thanks for the, uh, thanks for the, uh, the segue there, but yeah, I think it was, it just actually went live today on the Drupal Town Orlando site that, um, portions of the class that we're about to talk about, um, is gonna be offered as a, as the, the full-day workshop at Drupal Town Orlando.

[00:16:29] John: Perfect. I'm sure we'll talk more about that. Um, before we get into our primary topic, though, I'm gonna turn it over to Marie, uh, to tell us a little bit about the Enterprise AI Summit.

[00:16:41] Marie: A boat on the Rotterdam coast, the first stop of DrupalCon, and a full day of AI stories from people who actually build it.

That's the Enterprise Drupal AI Summit. Dries, founder of Drupal, and Peter Hinssen, best-selling author, kick off the day in conversation about open source, AI, and where the Drupal ecosystem goes next. From there, it's case study after case study as teams from Aalto University, EPAM, the American Diabetes Association, and World Cancer Day share how they're putting AI to work today.

If you're a CTO, a marketing leader, or an architect trying to figure it out what AI actually means for your organization, this is the room to be in. Tickets are limited. Visit summit.enterprisedrupal.eu and secure your spot. One day, one stage. Join us on September 28th

[00:17:34] John: All right. Enterprise AI Summit taking over the world here. Go for it,

[00:17:39] Mike: Mike. I actually might be speaking at that. I think there's two AI summits in Rotterdam, and I have been asked to speak at one of them about something.

[00:17:50] John: I mean, it doesn't really

[00:17:52] Mike: surprise

[00:17:52] John: me It suits my mind right now. I feel like you're, I feel like you're everywhere.

Um, so, you know, you'll... You... Yeah. Yes. Find, find Mike Cannell at a Drupal event near you.

[00:18:03] Mike: Yeah, I try. I try.

[00:18:03] John: Um, all

[00:18:04] Mike: right.

[00:18:05] John: So let's jump into our primary topic. Let's talk about DrupalEasy Responsible Drupal AI, and, um, just let's, let's start real high level here. Can you give us an overview of, uh, what the course is- Yeah,

[00:18:19] Mike: sure

[00:18:19] John: um, and, you know, what, what people should be looking for if they, if they decide to sign up?

[00:18:23] Mike: Yeah, this, um, this was kind of something I'd been thinking about for about a year, um- We did, you know, we have these two really long form classes, a beginner class and a module development class that are like, you know, a d- dozen weeks long, 12 weeks long, 15 weeks long, you know, six hours a week, something like that.

Um, and then we did a shorter, um, single directory, professional single directory components course, which was 18 hours spread out over two weeks. Um, which I really, I enjoyed teaching it. I feel like students got a lot out of it, and I said, "Okay, well, the, the next one I wanna write, I think it kind of has to be around AI."

Um, so as I, as, as I'm apt to do, I just, I, I dove deep and kind of figured, you know, got, understood the landscape, talked to a lot of people, and, um, decided I wanted to focus on, uh, what the Drupal AI initiative calls Inside AI. Which is basically the Drupal AI module ecosystem, starting with the, the main AI module and branching, um, outward from there.

Um, so that's what I've done. So I've, I've written, um, somewhere in the neighborhood of 30 hours of curriculum. Hmm. Um, I, I recently did a beta version of the class for about 20 of our alumni. Um, from that, I'm going to, we, we're gonna make some f- fairly significant structural changes, not so much the curriculum change, but structural.

So it's, we're gonna, um, break that down into a, a, a, like... I, I wanna get to 18 hours. I, I like that two-week, you know, three hour a day for, for six days kind of, um, cadence. Um, so we're gonna have, uh, you know, what we're calling the, the basics or we're, we're toying around with a new name. I think the new name's gonna be AI Inside Drupal Essentials.

Um, but yeah, so it covers everything from setting up the AI module, talking about the, the, the basic functionality and just, you know, f- I don't, we're not really crazy about the word basic, so more like the essential functionality like logging and using the API Explorer- Hmm ... and moderation and guardrails and all the stuff you really should understand and how different providers interact.

[00:20:40] JD: Hmm.

[00:20:40] Mike: Um, and they're just basic AI concepts that everyone's been talking about that we may or may not know how to use, like, you know, agents and fields widget actions and, and, and stuff like that. So all of that stuff is kind of in this, this base course.

[00:20:56] John: I'm, I'm, in my head I'm like, Inside AI Drupal Essentials feels, feels better than AI Inside or Inside AI.

I don't know. Anyway- We

[00:21:06] Mike: have been strug- But we- Yeah, there's some other-

[00:21:07] John: Naming, naming things is hard ... uh, yeah. I have a question,

[00:21:10] Mike: though.

[00:21:10] John: Yeah. Um, you, when you decided to put this course together- Yeah ... right, w- were you like, you know, were you conflicted in any way? Were you like, "Ugh, I don't wanna do another AI course," like, "Ugh, I don't wanna jump on the AI bandwagon"?

Or were you like, "No, this is necessary. People need to know how to use AI in Drupal, and I'm gonna show them how"?

[00:21:31] Mike: Um, yes, the latter, I think- Ah. ... more than the former. But the, the, the thing that really gave me pause, and it gave me pause for a while, was anyone who's worked with any of the AI modules in the Drupal ecosystem knows that change is fast.

Like, these modules are still evolving. Some of them are not even done. Some of them are stable, but their documentation not so great, or there's- Hmm ... features exposed through the UI that really don't do anything. So that aspect of it, where things are constantly changing, um, that was a huge challenge. Um, it actually prompted us to, you know, one of the ways we're whittling down this 30 hours of curriculum is we're kind of pulling out what I'm calling preview lessons.

Hmm. So an example is the AI context control center, which if you've seen any of the release notes, you've probably seen demos of AI context control center. The demos are very slick, um, but they don't accurately show what's possible today in a generic sense, um, 'cause the module is still, it's still evolving.

It's still changing. Yeah. So I want to expose people to this 'cause I, I think it's a fantastic module. It's, it's got great promise, but it's not done yet. So I, so that's, that's like a preview lesson that is, it's no longer gonna be part of the main course. We're gonna pull that out and have that as like an add-on.

Um-

[00:23:01] John: Got it. So,

[00:23:02] Mike: uh- And we have to draw the line- Question ... you know, in things that are mostly stable versus not really stable.

[00:23:08] John: I just, I just wanna highlight Astuce's comment. Yeah. Uh, Mike is the best teacher in the Drupal space. Oh, that, that's very nice. I would tend, I would tend to agree with that. I've taken one of Mike's classes, to which I get walked in the door and he goes, "What are you doing here?"

And- Yeah, I get- ... I said like- Yeah ... "Hey, listen. Even I can, even I can learn something from a, from a, a, you know, a more basic class, if you will." And I did. I learned actually two things that day, which were, uh- Mm ... which were great. So yes, Mike is, is the- Love it ... one of the pros at teaching Drupal in this

[00:23:38] Mike: space.

That is very kind of, uh, of you. And, uh, is it Actuce am I saying the

[00:23:44] John: username? Oh, I keep putting an S in there. I apologize.

[00:23:47] JD: So, Mike, I, I'm, I'm curious too. You said that there is inside Drupal all AI. Yeah. What is outside Drupal AI?

[00:23:56] Mike: That's a, that's a great question. Um- It's a hairy

[00:23:59] John: world.

[00:23:59] Mike: Yeah. No. Well, this is, this is actually a definition that came out of the AI initiative.

[00:24:04] JD: Right.

[00:24:04] Mike: Where for a while it was just the Drupal AI Initiative, um, but very quickly they realized it kind of has two silos. The inside AI side of it, which is the Drupal M- AI Module ecosystem, and then the outside AI, which is using external tools on a Drupal site. So whether it's a coding agent to help build your site, or whether it's, um, you know, it's another application that's calling, you know, a, an MCP server ins- installed in Drupal that interacts with that Drupal site.

So outside AI is making, that initiative is all about making Drupal easy to use and very powerful for outside agents, where inside AI is all about the AI module ecosystem and using AI from within the Drupal interface. Okay.

[00:24:54] Nic: So I, I'm curious, 'cause I've... before I ask the question that's in the agenda, um, the way I've been integrating AI for the clients that are, are looking to that in Drupal, I think is, it, it feels a little bit different than other people are doing it.

Um, we're using the AI module- Mm ... which is very entity-based. Mm-hmm. Um, but then we're writing a lot of kind of glue code to cue stuff around- Sure ... those entities. Um, because I, I don't really, un- unless it's a very straightforward kind of use case, it's like, "Hey, we're gonna add alt text, or we're gonna summarize something for a teaser," I don't think you can really get away- With not writing custom code.

And I think the only way to manage those entities, u- unless you're gonna integrate with the API directly, is with queues. I- is that kind of what you've found in your research for this,

[00:25:49] Mike: or? Well, I'm gonna preface everything that comes next, everything about this discussion is, it depends on your use case, right?

[00:25:57] Nic: Yeah.

[00:25:57] Mike: But I will say the goal for our, you know, for this course is no code.

[00:26:04] Nic: Okay.

[00:26:05] Mike: Is no

[00:26:06] Nic: code. That's

[00:26:06] Mike: ambitious. Um, well, I mean, we focus on, um, we focus on, uh, uh, building a- an AI, a couple of AI agents. Um, there's a, you know, a RAG lesson as well, where you don't really need code. Um, so I'm trying to really, you know, demonstrate what the module ecosystem can do.

Mm-hmm. And not what you can write. Okay. Or what you can have Claude Code write for you to integrate with the, you know, the base module. The other side of this, which is a preview le- it's gonna be a preview lesson, which I absolutely am super excited about, is the ability to call an ECA model from a field widget action.

Mm. Where that ECA model can have AI actions embedded in it. So that's kind of a-

[00:26:58] JD: Yeah ...

[00:26:58] Mike: an alternative to writing a custom module.

[00:27:00] JD: Oh, that's cool. For

[00:27:01] Mike: that.

[00:27:02] JD: Just because there might be people watching, listening- Yeah ... who aren't as familiar with some of the newer things in Drupal, can you-

[00:27:07] Mike: Sure ...

[00:27:08] JD: ex- uh, expand out on what ECA is?

[00:27:13] Mike: I'll do my best. Yeah, so ACA is basically, it's a, it, it's, it's a way of building logic into your site based on events, conditions, and actions. There's a visual editor, um, i- inside of the, the, um, the, the Drupal interface, and, um, it is an alternative to writing, you know, a plugin or code, um, in, you know, I don't even wanna say simpler use cases.

I, in many use cases it's an alternative. But

[00:27:43] John: fair to say it's like, uh, if this then that for Drupal? Yeah. Yeah. Yeah.

[00:27:47] Nic: Yep. That's

[00:27:48] Mike: it. It's really good. And I, I think Nic, going back to your question, Nic- Yeah ... I think what, and I'm just guessing, so you can confirm or deny here, but I, it sounds like your use case is more like, um, you know, during a cron run, go look at these, you know, nodes and do something with them and then report back, right?

It's more of like a background task where it's constantly... Is, is that

[00:28:13] Nic: what you're... No? Uh, kind, kind of. It, it's-

[00:28:17] Mike: Okay ...

[00:28:17] Nic: it's more like, um, we're using the entity as the engine to do the AI integration, and then- Mm-hmm ... the cron run is to find which one should be queued up to be modified to get them- Okay ... in the, in the actual AI queue next.

[00:28:31] Mike: Yeah, I mean, I-

[00:28:32] Nic: Um, so sort of ...

[00:28:33] Mike: I, I absolutely considered, um, a lesson, uh, probably to be honest, it'll be an add-on lesson in the future for me, um, of using the API, the AI- Okay ... module API. Um-

[00:28:45] Nic: Yeah ...

[00:28:45] Mike: I just think there's a lot of meat on the bone for w- with, you know, there's some really solid modules in the AI-

[00:28:52] Nic: Yeah

[00:28:53] Mike: um, module ecosystem out there. Really amazing mo- I wouldn't, maybe solid's not the best word yet, 'cause everything's changing so fast. But there's a lot of good modules out there that do a lot of functionality and I think, I think it behooves us as a community to, you know, expose... Are you laughing at my use of the word behooves?

[00:29:10] John: No, it's great. Behoove. It's a great use.

[00:29:12] Mike: Okay. You're,

[00:29:12] John: you're using it correctly, so go

[00:29:14] Mike: for it. I think it's, I, I, I think it's, I think it's a good healthy thing for our community to e- expose as many people as m- as possible to, you know, the functionality that's out there.

[00:29:24] Nic: So, so what prompted you to kinda create this, uh, course in the first place?

I mean, what, what made you think that it was time?

[00:29:35] Mike: I love writing curriculum. I love, I love writing. I like, you know, I love learning, so it's, it's kind of like I need something, right? I need something to dive into, and then I dive into a lot of things. Not everything becomes a course. Um, this one seemed like a good, a, a good idea for a course.

I mean, the, the, there's some risk involved though, right? Because, you know, attendance at, uh, our courses, and I, I wrote a blog post about this, you know, a few months back. Our courses and other Drupal trainer in-person or, or online courses, live trainings is down, um, across the board due to AI, so there's definitely a risk in it.

Um, but it was just kinda one of those things like I knew I wanted to learn it anyway. I knew I wanted to be involved. I am not as pro-AI as other people out there, but I'm, I, I'm, I think I'm very pragmatic. It, you know, it's here. It's, it's, it's not going away, so it's probably something we should, we should know.

So I was gonna learn it anyway. I was gonna dive into it anyway, and it just seemed like, hmm, this seems like there might be an opportunity here to, um, you know, to bring some people along with me on this journey. Makes

[00:30:45] Nic: sense.

[00:30:48] JD: So kind of along the lines of what you were saying, y- the, the AI ecosystem in general has grown pretty, pretty quickly.

I mean, new models- Yeah ... coming out it seems very, uh, rapidly. But in addition, the Drupal AI ecosystem is growing right alongside with that. There's a lot of stuff. Yeah. So how are you keeping up with that, um, the modules, the different providers, the different capabilities that are available? And don't laugh yet.

It's a, I, I- No, no ... I, I understand the challenge of it. I, I do. Yeah. But how- Yeah ... 'cause I'm reminded of, you know, I've got bookshelves full of books that- Mm-hmm ... unfortunately are almost out of date as soon as they're printed, and I can only imagine that with the advent of ADo- AI, it's even- Yeah ... even quicker moving.

So how, how do you keep your, um, your content going? Or-

[00:31:40] Mike: Yeah, no, I mean, uh, I think anyone who's ever taken a class of mine knows that, like, my curriculum's never done, regardless of the course, right? I'm always, I'm always making curriculum updates. Um, something I did in the beta version of the class, which I had never done before, but it was kind of necessary, was at the beginning of each class, uh, on the class site, I did a composer update, right?

And I would see, and I did this with the class, I would see what updates there were to the AI modules we had already installed. And if there was not, then there normally was an update to at least one of, of the modules each class. We'd go to the README, we would see what's changed, um, or the release notes, I'm sorry.

We'd see what's changed, and then we'd hop back into the, in- into the class site, and kind of if there was something to see, review the changes. And that actually became part of, like, the opening of every class. Um, and even, e- even, you know, now, we just finished, uh, survey- surveying our, our, um, the beta students.

I've got a list of, of 10 things I'm gonna change, and, um, I'm trying to knock off one per day. And as I go into kinda my AI class playground site, um, I'm doing that same thing. I'm doing that composer update. I'm, I'm looking at the release notes. I'm updating the curriculum as, as necessary. Um, I've really tried, especially with this, with this, you know, essentials class, I've really tried to focus on the modules and functionality that is the more mature functionality in the ecosystem, things that have been around longer.

Um- So that makes it a little bit easier. Um, and then one more thing that I'll mention here, I did, um, I, I created a tool for my own use because I, I, I wanted to really wrap my arms around this mod- AI module ecosystem, and I couldn't find another tool to tell me, like, how big is this ecosystem? How many recipes are there?

How many modules are there? So actually, I built this tool. I'll put the link in the, um, in, in the show notes in a moment here. Um, but it actually crawls drupal.org, crawls, um, Packagist, and looks for, and, um, um, uh, AI related modules, AI- Drupal AI related recipes, puts them in a nice sortable list, filterable list by usage numbers.

So that's one way I've been keeping up with, like, m- making sure I'm not missing anything big. Like, I'm, that way I, I can see what people are actually using and make sure that I'm covering the most w- widely used things, um, somehow in the class.

[00:34:26] JD: So that kind of leads me to a follow-up of what I asked, 'cause you said that you're trying to keep your eyes on, you know, the entire ecosystem, and granted that's a large ecosystem to, like, keep your eyes on.

Uh, your course, you're saying that it's going to be essentials, but, you know, what, what are you considering essentials versus- Sure ... maybe not essentials, something that maybe somebody might wanna learn outside of that class?

[00:34:48] Mike: Yeah. So the essentials, um, covers, and I'm, I'm, well, let's see. I have a list here, so I can try to look at it.

I mean, it's obviously the, the base AI module and all the functionality that, that that brings to the table. Um, different prov- different providers. Um, um, uh, field-rich actions, automators, um, uh, creating AI agents, um, retrieval augmented, uh, generation, um, and then a bunch of other kind of, not add-on modules, but those are all kind of like big topics, right?

But, you know, AI metering, which I covered, uh, module of the week last week. Yeah. You know, we talk about that. I do, uh, some smaller things like AI dashboard, translate, um, AI meta tabs, auto reference. Um, uh, I do, well, I have a whole lesson on local AI using Ollama as well as the, um, the, it's an alpha version module, but I still think it's freaking cool.

It's the AI provider browser, which is the one that used the model that's embedded in Chrome. That, um-

[00:35:52] Nic: Oh.

[00:35:53] Mike: Yeah. And that's pretty- Okay ... freaking cool as well. So I, um- Yeah. So that is all kind of in the essentials class. The things that I'm currently pulling out that are, that are gonna be kind of add-ons are things like the context control center, which eventually I'd love to get it back in the essentials class once it's, once it's fully baked.

Um, MCP I l- I'm fascinated by. Um, that's gonna be a, um, a, a preview lesson as well 'cause that MCP server module's still under development. Um, and the other one is, oh yeah, using, um, uh, uh, ECA with field widget actions, 'cause that's not fully, fully mature yet. And there's some other ones. Drupal Canvas AI is gonna be an add-on as well, and stuff like that.

But there's a lot. I mean, there, there's so much out there, and there's so much cool stuff. Um, and you can do so much with it, but, you know, I, I want it, I, I want... You know, if people are gonna spend their time and their money with me, I wanna make sure they leave having just the most rock solid foundation they can possibly have, so that as they discover these other AI modules in the Drupal, Drupal ecosystem, they're already, you know, 40% of the way there in understanding how it might integrate with the rest of what they have.

[00:37:14] Nic: Iuvedejem

One week away and-

[00:37:19] John: I know. I can't, I still can't find the mute button. Um, so before we go into, uh, my next question specifically, which talks about inside AI versus outside AI, I wanna talk a little bit about, um, outside AI and bringing in some of the questions from the chat. For sure. So, um, Actus asks, "So if we are using Claude Code with rules set up for Drupal, would it be better to use the AI module and attach Claude Code to it?"

Um, I, I think the answer there is yes. Uh, my question kind of on top of his question is, people coming into the class, people signing up for the class, if they're using kind of these external tools, um, uh, with rule sets set up, will the class kinda show them how to, how to set those up correctly in Drupal, use, use what they're already using?

Or is it gonna be kind of like start clean, this is how you set it up and use it?

[00:38:19] Mike: Yeah. I mean, I... The, the class definitely focuses on setting things up through the Drupal, uh, UI.

[00:38:26] John: Okay.

[00:38:26] Mike: Through the admin UI. Um, the, the question I think was more about asking Claude Code to set up some inside AI functionality for it so that you don't have to do the setup.

Um, yeah, sure. Uh, you know, the, the only danger there, I think, and I haven't done too much of that, um, 'cause number one, I, I like to l- learn, I like to make sure I know how to do something-

[00:38:55] John: Mm-hmm ...

[00:38:56] Mike: before I ask Claude Code to do it for me. Yeah. That way I, I have a, I, I, I can validate what it's doing.

[00:39:01] John: Mm-hmm.

[00:39:01] Mike: Um, I think a danger with that might be the fact that, you know, everything about the AI module ecosystem is moving so quickly.

Um, uh, granted Claude Code's really good and, you know, c- coding agents are really good. Um, I think it might take- It, it, I, I think there might be some more blind alleys that Claude Code makes when configuring all this stuff, 'cause it might be doing that- Yeah ... based on old information, previous version information- Mm-hmm

and, and stuff like that. So I'm not saying it's, it would never get there, I just think, I, I think there'd be more, more, more loops to get there.

[00:39:39] John: So, so the, the more I read this question, I, I mean, you could use Claude as a provider for Drupal AI, and, and- Sure, yeah,

[00:39:46] Mike: absolutely ...

[00:39:47] John: and your rules would still apply to kind of everything you're sending to Claude, because they're, they, they would be working within Claude on the responses to Drupal AI, right?

[00:39:57] Mike: What are we saying for rules? Are we talking about... We're not talking about skills.

[00:40:00] Nic: Yeah. What are rules for? Yeah. I, I, I read it as skills. So I would say, like, if you're- Okay ... if you're using Claude to develop a Drupal site- Yeah ... you're probably gonna wanna keep that integrated with DDev or however you're doing it now.

[00:40:10] Mike: Right.

[00:40:11] Nic: Right. The, if I understand it correctly, the Essentials AI is more about how do you add AI features to your site for your end users? Yes. Whether that's directly, like, some sort of chat interface with them, or a auto-tagging feature, or- Okay ... uh, something like that. So it's like a Drupal feature that's using AI for some piece of it rat- rather than building-

[00:40:31] Mike: Yeah

the

[00:40:31] Nic: site with AI.

[00:40:32] Mike: Uh, yeah. I'd, I'd go, I'd widen it more than end users, right? A- administrators, your authors.

[00:40:38] John: Yeah.

[00:40:38] Mike: Yeah.

[00:40:39] John: Using, using AI through the Drupal UI. Lotta, lotta I's in there. Yeah. I actually read that question from the opposite side of, like, "Hey, I have rules-" Okay ... parameters, guardrails set up in my Claude that I wanna make sure get pulled into my Drupal site.

Um-

[00:40:53] JD: That's kind of the way that I was reading it too, John. Um- Yes. Because, yeah. Because, like, the rules, as far as I understand, and I could be completely wrong. Anybody correct me, as you're, you're, you're very good at doing. Um- If, if the rules are something that you put in a markdown file, whether it be in your root Claude folder or if it's in a project, uh, you know, agents folder or Claude folder.

Now, I'm not sure that if you're using Claude Code as your, you know, API within Drupal, as your provider within Drupal, if it will just go, uh, skip over everything that you have locally, or if it will read those rules that you have in your folder.

[00:41:30] John: Mm-hmm.

[00:41:30] Mike: No, no, no. When you're using, when, when you're making a call to a provider through the AI module, it, it's, it's not looking at- Okay

your agents.md. It's not looking at skills. It's not, you know, it's basically making a LLM call. You

[00:41:48] John: know? Uh-

[00:41:49] Mike: And then that

[00:41:49] John: call ... one other, um, plug, uh, f- i- here Thursday, the San Francisco Drupal Users Group will be hosting Juergen Haas, uh, to talk about ECA. So if you're interested in learning more, uh, more about that, you can feel free to, uh, check it out at sfdug.org.

So there, there you go. I, uh, Luke, I, I-

[00:42:14] Mike: Juergen knows a thing or two ...

[00:42:15] John: I got your, I got your plug in there. Um, all right. So back to my, my original question, um- Back

[00:42:23] Mike: to John. It's always back to John. All about

[00:42:25] John: John. No, not really.

[00:42:27] Mike: It's like he thinks he's a host or something. Me, me, me, me,

[00:42:29] John: me. Um, like, uh, so you're incorporating the kind of inside AI term into the, into the title of, of, of the course, right?

You're focusing on, uh, the kind of inside aspects of, of Drupal, uh, AI. Um, why is that important for the students to understand? Like, why are they, like, m- what's the draw there? I mean, is it simply just, hey, you need to know how to use Drupal insi- uh, or you need to y- know how to use AI inside of Drupal before you can effectively, like, integrate with external systems safely?

[00:43:05] Mike: Yeah, I mean, look, this is how, you know, the, the community has, has spoken and, you know, this Drupal AI module ecosystem is how the Drupal user interface is going to integrate with, um, AI. I mean, that's, I think that, that decision's been made. Um, so, you know, there's a lot of potential use cases for content authors.

There's a lot of potential use cases, um, for, um, site builders or, or, or content moderators, um, to, you know, provide some AI functionality, you know, controlled with guardrails- Mm-hmm ... um, AI functionality from inside the, the, the, um, the, the Drupal, uh, UI in a way that, you know, inter-interfaces with everything else that Drupal has.

You know? Mm-hmm. You know, permissions and workflow states and things like that. Like, in order, like, you don't want to, I think most organizations don't wanna just set AI loose with no guardrails on their content, right?

[00:44:13] John: Yep.

[00:44:13] Mike: So as a site builder, we can leverage the tools in the AI module ecosystem to allow certain functionality within the, the, the, the site that leverages all of the, the logging and the access control and all of that stuff that Drupal is great at already.

Yeah. So it's, it's,

[00:44:36] Nic: yeah.

[00:44:38] John: I'm

[00:44:38] Nic: not gonna- I think- Go ahead. Sorry, John. I, I think one thing that is coming to mind too as you're talking about this, Mike, is h- w- we also need some new tooling around some sort of dashboard or a status update or something. So, um, Jacob Rockwoods had a blog post yesterday where he talked about, um, he's, like, scaling back some of the community skills for his projects, um, because he, y- you can read the blog post if you wanna talk about it, but he said something in there that s- stuck out to me, which is if you're using a new model, you kinda have to start from zero.

You, you can't make assumptions about what a model can do based on what the previe- even the previous version, even if it's the same company, because things change. And so I wonder how the community will start to solve this problem. 'Cause for example, you can set up a, some sort of model to set up alt tags, and it can be fantastic.

Then you update the model three times and you're on, you know, 4 point, 5.6 or whatever is current, and all of a sudden now it's not doing great be- All tags. But i- if it's been six months, most pe- for most automated systems, you kind of check it very closely when you release it. You check and make s- every time you update, you check and make sure it's working, but you're generally not checking the quality of the output because that's a trusted entity.

And we have to get to a point w- one of the things with AI is that that output isn't trusted between models generally. I, um, so how do you, how do you go about solving the problem so that that becomes part of the QA as well? Like, hey, we're changing models. These are the 10 things being done with it. We need to be able to see at a glance the before and after and figure out if it's still, the quality is still acceptable or not.

[00:46:32] John: I mean, isn't it- That's a,

[00:46:34] Mike: that's a great question.

[00:46:35] John: I mean, isn't it like anything else though, right? So, like-

[00:46:38] Nic: No.

[00:46:38] Martin: We're,

[00:46:38] John: we're- We're, I'm actually working on a project right now w- uh, for a, for like, you know, AI, an AI chatbot. And, um, I mean, one of the things we're starting with is test cases of saying like, "Hey, when you ask this question, here's the kind of like response you should get," right?

And then, you know, building on those e- test cases to say like, "Okay, like, if you ask this question, like you shouldn't get this response," right? So, like- Yeah ... I mean, I think those test cases are things where like, as the AI evolves, you're gonna keep, you're gonna keep testing for those things, or at least, at least I would.

Maybe, maybe I'm all by myself-

[00:47:23] Mike: I think there's, there's, you know, what you're, what you're talking about, Nic, yeah, there's, there's a need for that, for sure. I would almost argue, though, the need for it is more important for going the other direction with models. I think there's gonna be more and more organizations out there as models get more powerful who want to move away from using an API call to a, a, you know, a, a Claude or a Gemini-

[00:47:54] Martin: Hmm

[00:47:55] Mike: and move towards a local model.

[00:47:57] Martin: Mm-hmm. Yeah.

[00:47:58] Mike: And have a test to make sure that, okay, can this local model still do these lightweight AI things for me? Mm-hmm. And have a test to verify that. I think that's-

[00:48:11] JD: Yeah ...

[00:48:11] Mike: in my opinion, almost more important than moving up the model chain. Um- Yeah. And that's one... We got that, the, uh, the feedback from our beta course.

I was... This is probably the one data point that surprised me the most, was our lesson on, um, you know, local models and that browser provider model was outstanding. Like, people wanted more of that. Yeah. And, you know, I'm actually... You know, I, I'm, I'm, I'm not saying I'm gonna do it, but I'm toying with the idea of doing, toying with the idea of doing an outside AI class as well.

Um, and I think what I can make interesting about that is, you know- Do it in a way that focuses on, um, token conservation.

[00:49:02] John: Mm.

[00:49:02] Mike: Right? 'Cause there's, there's a lot of developers out there who are like, "YOLO," right? I'm gonna spend the 200 bucks a month, I'm gonna give them access to everything, and I'm gonna let it, you know, I'm gonna give it a prompt and walk away, and hopefully it's done the next day, and, you know, whatever.

Um, I think there's a lot of people are interested in, in the other direction, is how can I leverage AI in a way that is, um, you know, keeps me at a reasonable price point. Yeah. And, or, you know, leverages local models that I'm not paying for.

[00:49:39] JD: Like, you almost gotta

[00:49:40] Mike: look at the- And cost, I think, is gonna come into all that

[00:49:42] JD: the, the, the cost of a local model, I mean, whether you're talking local or virtual l- uh, virtual computer somewhere out in the cloud, I- I've got a pretty good graphics card, but I can still only run, you know, not that great of a local model if I wanna do anything else on my computer. So there's a cost of ownership of that, right?

[00:50:03] Mike: Yeah. Mm-hmm.

[00:50:04] JD: So that's something, um, I think the, the token conservation is a real thing, and I, maybe something that a lot of people don't understand or aren't aware of is that with the AI module, there are prefixes, right? There, there's the content that it says, "You are a, an agent on a Drupal site. Th- this is what you're doing."

And it's, it's a pretty large document, and every word in that is a token. Uh, so I, I think that people need to understand- Yeah ... that you can edit that, and you can, uh, make that more in line with what your goals are

[00:50:39] Mike: Yeah, I, I, I think there's... I mean, there's... I, I think that arrow is... I mean, there's always gonna be folks and organizations who are like, "Screw it, I just wanna use the best model.

We'll spend the money." But I don't think that's gonna be the majority. I think finding the right model for the task is going to be more and more important, um, moving forward. I mean, look, uh, one of the demos I do i- in the p- in the class with Ollama is I use AI meta tags with Ollama, and it works fine, works great, and it's not even a huge model.

You know, I- it might be the three billion, the 3B, one of the 3B. I, I, I'd have to look, but it's a model that's running on my Mac Pro, my MacBook Pro. Yeah. Um, and it, it, it can summarize text just fine. So there's real value there, I think. Um-

[00:51:35] JD: I'm gonna pick your brain later about that, getting that model because, um, yeah, tokens, tokens are, are a big thing.

The budgeting tokens is huge.

[00:51:44] Mike: Absolutely, and just understanding like how... You know, and this is kind of one of the things that I talk about in the class as we start talking about guardrails and then context control center. You know, these are all just tokens that are being added, uh, to the context window, and not only are they tokens, but they're...

In, in a lot of cases, they are additional API calls to the LLM.

[00:52:07] John: So- So

[00:52:08] Mike: this stuff can add up quickly, and I think understanding that in, in, you know, in the big picture when you're, you know, configuring all these models and understanding like, "How is this gonna affect my token budget?" Like that's... I think that's pretty important.

[00:52:24] John: So that raises a question for me 'cause I'm- Yeah for better or worse, probably worse based on this conversation, I am still like a free user of, of the AI. Um, I'm wondering, like to take your course, do I have to buy a, you know, a, an AI plan- ... to support this, this adventure?

[00:52:44] Mike: Well, the folks at Amazee AI are gonna love you for bringing this up.

Um, they actually have a provider, um, the Amazee AI provider, uh, with, uh, 30 days free. There is a limit on it, but no one in my course hit that limit. Um-

[00:53:03] John: Yet

[00:53:05] Mike: Yet, sure. Um, but it's... A- and it comes with a vector database as well. So it, and it's- Mm ... dead simple to set up. Like, put in an email address, get an email, click the link, and boom, you're, you're, you're good to go.

Um-

[00:53:21] John: We'll put a link to that in the show notes.

[00:53:23] Mike: Yeah. Yeah. Other than that-

[00:53:24] Nic: We also, we also had a show with them, episode 515, if you wanna-

[00:53:29] Mike: Yeah ... take a listen. It's a great service they're doing to the Drupal community with, with that, with that free 30-day trial. Um, but even, you know, um, you know, I, I use, in the class, I, I, I use, uh, Anthropic, uh, as well as, um, OpenAI You know, throughout the class, it's on the order of, you know, 10-ish dollars total.

Um, and I tend to do more API calls than any of the students 'cause I'm the one teaching, and we're trying stuff and, you know, so.

[00:54:01] John: So is the answer no, free, uh, OpenAI is not gonna, is not gonna suit for this, this

[00:54:08] Mike: course? No, no. To make an API call, um, there, you, you have to have a credit card on file with... And I'm speaking generally for most of the big providers, the, uh, big commercial providers.

Um, and they charge you, you know, depending on which model you're using, there's different- Have you

[00:54:22] JD: considered raising tuition $200 to give everybody that 20X Claude code?

[00:54:28] Mike: No, because I actually, I am a big believer in... Like, it's not that I don't like it, but I, I don't think there, there's a use for it unless you're really doing cutting-edge stuff.

I think if you're smart about configuring things- Mm ... um, and smart about using it, you can, you can get by. I'm on the $20 a month, uh, Anthropic plan. I rarely... Like, I, I've been trying to hit the limit with Claude Code. Um, well, maybe trying is not the right word, but you know, just experimenting, saying, "Okay, what do I have to do?"

[00:55:06] John: You're not limiting yourself is what you're saying.

[00:55:08] Mike: Yeah, I, yeah. But I'm, but I'm also, like, I'm, I'm, I'm... It's a learning process for me. Like, I'm doing it very purposely because I want to see what changes I make, how that affects my usage over time.

[00:55:21] Nic: I, I, I think, I... The thing that I found, by the way, is the way that you start hitting those limits is when you...

Like, like many tools, the way that most people learn tools is they use it, they use it, they use it, they verify, they're very slow, they're very careful, and once they trust it, they just, they just start to use it, right? Mm. And I think that's one of the things that happens with AI is that they, they... Their journey starts with them trusting it, checking the output each time, and then eventually they just want to move faster or they, there's a, there's more time pressure and so they just hit the, "Just don't ask me questions, just give me the output."

[00:55:57] Mike: Yeah.

[00:55:57] Nic: Right? And then, and then they start checking it less and less, and then you, your velocity speeds up, your knowledge of what it's doing goes down, but your velocity goes up, and that's when people really start to hit the limits. Um-

[00:56:10] Mike: And that's fine as long as you are aware of that and you are aware of, like, what, you know, that, that your actions have-

[00:56:18] Nic: Yeah

[00:56:19] Mike: consequences, right?

[00:56:21] Nic: Yeah.

[00:56:22] Mike: So, and the consequence of doing- You should teach a

[00:56:23] Nic: course on it,

[00:56:24] Mike: Mike Wait, wait a

[00:56:24] John: second. Did you just

[00:56:25] Nic: Spider-Man us? You should teach a course on that, Mike With great

[00:56:29] Mike: power comes great responsibility I think we need to relearn that. I, you know, I, but, you know, it's tr- like, knowledge is power, right?

And I want, you know, i- i- if someone is gonna do that, that's fine. I mean, I have no problem with that. But I, I think at the, at the foundational level, you should understand, like, as you're adding different tools, whether Claude Code or you're adding different modules in the AI ecosystem- That's gonna have an impact on your token usage, and therefore on the cost of it.

And understanding, you know, that and being able to tweak that, and being able to dial things back if you need to, that's an important part of the process if you, if you care about money, right? Yeah. So I, I, I think that's, that's what I'm... That's the type of stuff I, I, I focus on a lot is, uh, i- in the class.

And we go to that AI logging module. We look at the AI logs a lot in the class just so we understand, um, we understand what, you know, what our input tokens are, what we're getting back, especially when we get into agent stuff and the agent loop starts running. I mean, I think that's an eye-opener for a lot of people, you know.

Especially if you have context control center going, um, and you've got an agent loop going. I mean, your, your, your input tokens are just growing with every loop. It's crazy.

[00:57:47] Nic: So, uh, g- we, we've been on, I think, a 30-minute tangent here so getting back to the- Getting back to the, um-

[00:57:56] Mike: Okay.

[00:57:57] Nic: The class. Speaking of guardrails.

[00:57:58] Mike: I,

[00:57:58] Nic: yes, speaking of

[00:58:00] Mike: guardrails.

[00:58:01] Nic: Um, i- if, if somebody were to take this class, what are some of the concrete use cases that they'll learn out of it? Like, y- you're trying to build a foundation, but I imagine you're also- Yeah ... gonna teach some actual concrete things. What-

[00:58:13] Mike: Sure ...

[00:58:14] Nic: um, what, what can they expect?

[00:58:16] Mike: Yeah.

So, you know, you answered the fir- m- the first thing I was gonna say you kind of already answered, but all of my classes I wanna just, I want people to leave with confidence in the foundational material so they can build on it. Um, but as far as, like, what they can expect, um, exposed to different providers.

Um, exposed to, um, kind of the old school basic AI functionality, the AI content suggestions, the CKEditor, um, integration. Um, everything we just talked about, like understanding token usage and how to gauge your token usage inside of the AI module ecosystem. Um, understanding the results or, uh, augmented generation I think is super important, 'cause I think that's, um...

When I go through the class, I definitely do talk about, like, here's an easy win of how you can potentially improve your site's existing search API search by augmenting it with RAG. Right? Um, when we cover the agent stuff, um, you know, we build an agent that may or may not be useful in real life for, you know, a particular person, but we are showing them the building blocks and, and hopefully giving them ideas on how that they could build an agent for their particular, you know, th- their particular site.

Um, the, uh, you know, the- the- the local model stuff I think is super important as well. Um, and then just k- kind of have a, a good understanding of, like, the ecosystem in general. Like, what's- what's available out there.

[00:59:45] John: So let me ask you a question 'cause when this, when- when I was researching the show, I was looking at the course description, and I was like- Yeah

I really, I really wanted to take the, really wanted to take the course. Yeah. Um, because, like, I'm in this place right now where I'm just starting to think about adding actually AI chat, not to, not to, like, my public-facing website, but to my, to my Drupal UI to help- help me kind of like develop blog posts and- and do things, do things on the back end.

Um, is that like a good... Would this be a good primer for that if I were like, "Hey, I want to get started with Drupal on my personal site"- Yeah ... I want to understand from, you know, your point of view the right way to set it up. Yeah. Um, is that, is that kind of the- the mindset I should take coming into this?

[01:00:31] Mike: Yeah. It's definitely not a Drupal beginner class, right? We assume site building and- and- Sure ... Composer skills and stuff like that. Um, but we definitely do, there- there's definitely a- a bit of an emphasis on if you want to get started with AI, inside AI, here are some techniques. Now, here are some easy wins.

Mm-hmm. You know, Nic mentioned the alt te- alt text generation. Easy win. You know, the meta tag, uh, generation, easy win. Um, you know, adding some, you know, authoring, AI authoring stuff on- on node add, edit pages, right? Um, I- I personally, I think the result augmented generation, um, uh, uh, uh, search API, uh, enhancement is- is great 'cause it's, it basically, it doesn't replace your existing search, it just improves it.

[01:01:23] John: Hmm.

[01:01:24] Mike: Right? It boosts it. And it's invisible to the end user, right? But it's a way of, you know, let's dip our toes into, you know, AI on our site and see if this improves, um, the site for our end users.

[01:01:38] John: Hmm.

[01:01:40] JD: So you, you kind of touched on something there. Um-

[01:01:43] Mike: Yeah ...

[01:01:44] JD: RAG.

[01:01:45] Mike: Yeah.

[01:01:46] JD: Uh, it's a major part of your curriculum, right?

[01:01:49] Mike: That's a, that's a significant lesson, yeah.

[01:01:51] JD: Okay. So can you- Yeah ... well, explain what the acronym is just for people who may not know.

[01:01:56] Mike: Yeah.

[01:01:57] JD: And kind of give what a prerequisite level of understanding- ... of vector databases would be before they come into this course.

[01:02:05] Mike: You know, you don't need to know much about it before you start the course.

I mean, we talk about what a vector database is. We talk about, you know, embeddings, which is the, the process of taking some text or some content or something and turning it into this vector, right? And these vectors are kind of what AI uses to, to describe something, right? So, um, unlike a, just a normal search index, which is made up of words, right?

Words from your content, um, what a vector database does is that you use it to store embeddings which aren't specific to the words in your content, but more specific to the meaning of your content. So these vectors get stored in a special type of database called a vector database, which by the way, you know, I would say a year from now maybe, if it's that long, like there's already vector database support in Postgres, um, uh, n- new versions of MySQL and MariaDB.

So this whole discussion about having these separate vector databases I think is gonna go away eventually because most database servers are gonna support them natively. Um, but it's a way of being able to search on the concept of something as opposed to search on specific words in your content. Um, and that's, that's where the value is, right?

So if you have an article that's all about cats, but the word, um, animal doesn't appear anywhere in that article, but then you do, and you do a regular search for animal, that cat article's not gonna come up because the word animal doesn't appear in it. But if you have a, if you take an, if you create embeddings out of that article, you know, the AI is smart enough to know that animal is kind of like a cat or it's, a cat is a type of animal.

If you search for animal through a, a result augmented generation or a vector database, you're probably gonna get that cat article out.

[01:04:16] Nic: I, I just wanna th- this is the pedant in me, but, uh-

[01:04:20] Mike: Okay, yeah, what did I get wrong? I love it ...

[01:04:22] Nic: the AI is not smart enough to- Cat is not an animal ... it's just... Yeah. No, a cat is an animal But it, it's more that across all of its training data, cat and animal frequently appear together, and so it will- Yes

associate them together. Um, so- Yes ... yeah. L- I- it, it's a common thing, but I think it's important to reinforce that AI isn't smart about this stuff. It just- Right ... happens to notice relationships between things a little bit more broadly than you- Well,

[01:04:49] Mike: Nic, Nic, you will be ha- you'll be happy to know I literally have a slide in that cl- in that lesson that is...

It's the... You've probably seen it a million times if you've ever, like, learned about embeddings or anything. It's a two-dimensional, you know, you know, X and Y axis with, like, cat, dog, and animal up here- ... and then guacamole and queso and other taco toppings down here- ... and how all the, the food stuff is in one area of that di- of, of that graph.

Yeah. Yeah, so we- I do get into that in the class. It,

[01:05:21] John: it should be, it should be s- like, um, y- it should be like the Kevin Thull picture of, like, press the red button. There should be a picture of Nic that just says, "AI is not smart." No, it

[01:05:34] JD: should be, "AI is just autocorrect."

[01:05:36] John: That should be, that should be the saying.

[01:05:37] Nic: Yes. I, I like that one. I'll endorse that. We should

[01:05:40] John: get T-shirts made. Um-

[01:05:44] JD: Before we move on, I do have a- Yeah,

[01:05:45] John: yeah, go for

[01:05:46] JD: it ... question. So RAG. Yeah. What's that stand for? You said result augmented generation

[01:05:50] Mike: triangle? Result augmented generation, yeah. Okay. So it's just, it's a fancy way of basically, you know-

[01:05:54] John: Is that synonymous with vector, like a vector database?

Or is vector

[01:05:58] Mike: database- Uh, no ... the

[01:05:59] John: technology?

[01:06:00] JD: I think RAG-

[01:06:01] Mike: Vector data- ...

[01:06:02] JD: ties into vector databases to create the, the result, right?

[01:06:07] Mike: Yeah. Sure, yeah. Yes,

[01:06:08] John: the

[01:06:08] Mike: systems,

[01:06:08] John: yeah.

[01:06:08] JD: So is, would that be like when you search on Google and can't get past that generated by AI section, would that be considered result augmented generation?

[01:06:18] Mike: Well, I, I don't know what Google's doing on their back end. I have a feeling their search results are probably already using, you know, RAG in the background. I think that, that, that AI box that popped up, pops up is... There's probably some fancy prompt they have. Um-

[01:06:34] John: Okay. I mean, I ask Google all the time, "Is a cat an animal?"

Yeah. And it, it says yes. Yeah. So...

[01:06:39] Mike: Yeah. You

[01:06:39] Nic: should ask if an animal is a cat.

[01:06:41] Mike: But, but, but I should mention, so the, the, the, the big value with RAG stuff is that you take your content- And you, you put your content in a vector database, and then that's what's getting searched. And then the augmented part is, you know, the, the, the search system is gonna take the search query, whether it's something in a chatbot or something in a search window.

It's going to convert that into an embedding. It's going to search your vector database with that embedding. It's going to get results back. Those results are in JSON or some other format, and then it's gonna pass those results back to an LLM and say, "Here is the original prompt or the original query.

Here's the results. Reply to the results either via- But- ... a chat interface or via a search, you know, table- It- ... or something like that."

[01:07:35] Nic: It, it's gonna insert the LLM somewhere else in the chain too, right? Because otherwise, like for example, it's not gonna know i- the... If you're only doing the search results based on the original query, it's not gonna know that cat and animal are closely associated.

So there's gotta be something happening-

[01:07:52] Mike: Right ...

[01:07:53] Nic: to associate them somewhere in between. I, I, I don't, I actually don't know exactly what stage that happens in myself, but it, it must be somehow. Anyway, it vastly improves the, um- The response rate generally for, for most cases. Right.

[01:08:10] Mike: Right.

[01:08:11] Nic: Yeah.

[01:08:12] John: Um, okay. So as we're, as we're getting ready to, to wrap up here, um, I do wanna go into a little bit more of the course structure.

Sure. The time, day- Sure ... prerequisites. Um, you know, what... So one thing I will say, I was super interested in this, and then I was like, "Okay, it's..." I believe, correct me if I'm wrong, Mike, Monday, Wednesday, Thursday?

[01:08:38] Mike: No, Monday... Um, the, the normal schedule will be Monday, Wednesday, Fridays- Monday, Wednesday, Fridays

noon to 3:00 PM Eastern.

[01:08:44] John: Noon to 3:00 PM Eastern.

[01:08:46] Mike: For- Okay ... for two weeks. So- For two weeks, got it ... the, the goal is six sessions, three hours each. Okay. Um, via Zoom. I record everything. Students drop in and out all the time to go to meetings or pick up their kids or whatever. That's never a problem.

[01:09:00] John: Oh, interesting.

No

[01:09:01] JD: problem. Okay.

[01:09:01] Mike: Yeah. So everything's recorded. So that was

[01:09:02] John: that, that was my big hangup was like, "Ah, it's right in the middle of the day, and there are, like, 100 meetings." Yeah. So, uh, essentially could catch up on those recordings, like, at night via Zoom because they're

[01:09:13] Mike: provided. Everything's recorded. Yep, we have a dedicated, uh, Slack channel for each class that we run, so if you have a question or you run into a problem, you know, outside of class, then we got that going for us, so.

[01:09:23] John: Interesting. Yeah. And, uh, the, the cost is, is, seems pretty, pretty reasonable. It's about $100 a class. Is that

[01:09:31] Mike: correct? Yep. Yep, it's $600- Okay ... um, for the, for the full class. Yep.

[01:09:35] John: There you

[01:09:35] Nic: go. All right. And what precurs- what prerequisites do people need?

[01:09:39] Mike: You know, I tell people, you know- For every class

[01:09:40] Nic: you've ever taught?

[01:09:42] Mike: Well, no, actually. Um, it... You know, there's no code, so you don't have to worry about that, but you do have to be able to, you know, h- spin up a local site or a personal Drupal site. If you wanna spin it up on in, in the cloud somewhere, that's fine. Yeah. You have to be able to install modules, um, you know, with Composer, maybe run a Drush command or two, but for the most part, we are in the Drupal UI.

You know, and we're gonna talk- Just very site builder. We're... Yeah, we're gonna talk about content types. We're gonna talk about, we're gonna build a content type or two here or there. And I mean, nothing super advanced from a site builder standpoint, but you have to be comfortable in the Drupal admin area and, and a little bit of site building.

Yeah.

[01:10:21] Nic: Great.

[01:10:21] John: Uh, and just, just to make sure, spaces are still available. Class starts on the 31st. Is that correct?

[01:10:28] Mike: Class starts on the 31st, still available, and we are, um, we're not sure of the cadence just yet. Um, we will have some other announcements coming up, which we're not ready to make today regarding the class.

Um, you know, maybe in a month or so we'll have some more announcements, and, uh, I'd love to, you know, if I could- Ca-

[01:10:50] John: cadence as far as repeating the class

[01:10:53] Mike: uh, repeating the class and how we're gonna handle these, uh, these add-on lessons as well

[01:10:58] John: Got

[01:10:58] Mike: it. Got

[01:10:59] John: it ...

[01:10:59] Mike: the, the context control center stuff, the NCP stuff, the ECA stuff, all of that, and, and, and stuff that, you know, other ideas I have for other add-on classes as well.

[01:11:11] John: And one, one last question from me, and then I'll turn it over- Yeah ... over to Nic, 'cause he's got, he's got one more too. Um-

[01:11:17] Mike: Yeah ...

[01:11:18] John: if folks are like, "This sounds like a great idea." Yeah ... might not be ready to jump in to this right now-

[01:11:24] Mike: Yeah ...

[01:11:25] John: are you doing any kind of, like, previews of this or trainings of this at events where people can kinda get a little bit of, of what this might be like?

[01:11:34] Mike: Yeah, I've been doing, um, um, you know, half or full-day AI, um, classes in, you know, based on this curriculum at, uh, different events. Um, I don't know if I have any... Have we talked about NetCamp? Am I doing one for NetCamp? Have we talked- Uh- I don't know if I've talked about that one yet ... let's get you on the spot

[01:11:53] JD: right here.

[01:11:54] John: I think, I think there is a- Yeah ... submission from you about something. Okay. I, I would imagine- Yeah ... it's closely related to this, but, uh, I have not looked at it quite yet.

[01:12:03] Mike: Yeah, yeah, yeah. So, uh, I mean, uh, you know, e- events, uh, that I am, you know, going to, I will normally, you know, try and do one at those events.

Um- All

[01:12:12] John: right ...

[01:12:12] Mike: the only one I'm positive is on the schedule right now, I'm doing a Drupal Canvas one in Colorado next week, so that's... We'll touch on the AI stuff, but that's not this. Um, the only one that's definite as of right now is the one we mentioned at the top of the show. It's DrupalCon Orlando, 45 minutes that way for me.

[01:12:33] John: There you go.

[01:12:34] Mike: In, in March. Close to home. In March of 2027, yeah, so I'm very excited about that.

[01:12:38] JD: So are you gonna be putting up people for the entire month of February through March to just stay down there for- ... DrupalCamp Florida and DrupalCon?

[01:12:46] Mike: There, um, much like getting a training at NetCamp, there's an application process, so.

[01:12:51] JD: Okay.

[01:12:52] Mike: I'll, I'll let you know the usual- You

[01:12:53] JD: snore. Oh, I'm out.

[01:12:55] Mike: Yeah, there's...

[01:12:58] Nic: Very good. Um, okay, so we're going to clip this section and hold you to it. What are your- Hmm ... Drupal AI predictions? Where's it gonna go in the next year?

[01:13:07] Mike: And- Oh, golly. Who, who freaking knows- What do we expect? ... right? You know, we're gonna take- In a year from

[01:13:12] JD: now

[01:13:15] Mike: All right, so I, I'm gonna go back to the things that I've already, I've already mentioned.

I, that might be a little bit of a cop-out, but I actually think there's gonna be more and more of an maybe emphasis or an interest in using the right size models for the right task I think this whole, like, you know, let's spend a gazillion bucks on tokens thing is, it's been fun, but I don't think it's gonna last.

So I think there's gonna be that emphasis, which I think is also gonna make, um, cause a bigger emphasis on, on local models. Um, I think that we're gonna see somewhat of, um, hopefully just a, a leveling off in the relentless, like, pace of new features in the AI module ecosystem. And, um, even, you know, if you pay attention to the AI initiative, there's been a little bit of a, of a, of, of a turn towards, "Hey, let's make sure that if someone asks, uh, a coding agent or a chatbot, you know, to build a site for them, let's make sure that Drupal, you know, pops up every now and then."

You know? That's, "Hey, you should probably..." You know, the AI is thinking we should build this in Drupal 'cause you're asking for access control and workflows, and Drupal has all that stuff already built in that we can leverage. So, um, yeah, I think, I think in the next year there's gonna be more and more of an emphasis on, um, making Drupal work with, um, outside agents more efficiently, the outside AI part of it.

Um, yeah. And then the, the local model stuff and the right size model stuff, and just token conservation I think is gonna be a big deal. I think a lot of people, you know, care about that and, you know, it's kind of a value proposition for, for, for organizations.

[01:15:18] John: Yeah. Awesome. Uh, Mike, as always, super enjoyable to chat with you and learn about, uh, DrupalEasy's new responsible Drupal AI course.

Thanks for joining us.

[01:15:30] Mike: Always a pleasure to hang out with you guys.

[01:15:34] John: Uh, before we, before we close out the show, I do wanna thank all those folks that were watching on Twitch, uh, YouTube, LinkedIn, wherever you, wherever you get this podcast. You know, we are, um, live streaming it, so we're happy to get your comments and bring them into the show.

And, uh, don't forget, you can reach out to us on Drupal Slack in the Talking Drupal channel, or by email with [email protected]. You can also promote your Drupal events, sponsor an episode, or become a guest by visiting talkingdrupal.com and clicking the buttons in the sidebar for those tasks. And last but certainly not least, thank you to our patrons for supporting Talking Drupal.

Your support has kept us talking for now 566 episodes, so we appreciate that support. Uh, Mike Anello, if folks wanted to get ahold of you, learn more about DrupalEasy, uh, how best could they do that?

[01:16:25] Mike: DrupalEasy.com, and I am ultimike on all of the socials and on drupal.org.

[01:16:32] John: JD, what about you?

[01:16:33] JD: Uh, best place to find me is twitch.tv/jddoesdev, and I'm all over the Drupal Slack and other places.

[01:16:42] John: There you go. Nic?

[01:16:43] Nic: You can find me pretty much everywhere @nicxvan, N-I-C-X-V-A-N.

[01:16:47] John: And I'm John Picozzi. You can find me personally at picozzi.com or on Drupal Slack and the, uh, socials @johnpicozzi. And, uh, you can find out about EPAM at epam.com.

[01:17:01] Nic: And if you've been, if you've enjoyed listening, we've enjoyed talking.

See you guys next week.

[01:17:06] John: Have a good one, everyone. See

you.