---
title: "AI 1.3.0 is released"
video_id: zbL7EwDhUSU
url: https://www.youtube.com/watch?v=zbL7EwDhUSU
workflow_page: https://workflows-of-ai.com/workflow/ai-130-released
language: en
captions: generated
---

0:01 Hey everyone, Drupal AI 1.3.0 is finally
0:05 out. So this video I will just use to
0:08 showcase in the shortest form some of
0:11 the features that we are including in
0:13 it. I just want to say a huge thank you
0:16 to everyone that has been working on
0:18 this. So this is going to showcase
0:20 features, but there has been a lot of
0:21 people working on bugs, tasks,
0:23 documentation, and so on.
0:25 So let's go.
0:30 Guardrails are security functions to
0:32 make sure that the AI stays aligned and
0:34 ethical. It can either stop you from
0:38 sending out a request or it can stop a
0:40 response or reform a response.
0:43 In this case, we have a secret product
0:45 information guardrail. It keeps track of
0:47 all the magical models my company has
0:51 like the MDX 250. If I now attach the
0:55 guardrail that we have set up to this
0:57 call and ask the AI, you will see that
1:00 doesn't get sent to OpenAI because we
1:03 don't want to share confidential product
1:05 information.
1:10 What you're looking at here isn't
1:11 Drupal, but something called Honeycomb.
1:14 So that's just one of many platforms
1:15 that handles our open telemetry input.
1:19 And right now what we're diving into is
1:21 a single AI request so you can see
1:23 exactly how much data you can actually
1:25 extract from one request. And this is
1:28 thanks to the new integration of open
1:31 telemetry and AI observability in 1.3.
1:35 And because we're following open
1:36 standards, you can track autonomous
1:38 agents whole journey
1:40 from its first reasoning to when it's
1:42 actually giving out the output.
1:44 And you can graph it in any way you want
1:47 depending on which platform you're
1:49 using. So it doesn't need to be
1:51 Honeycomb. You can use Grafana. You can
1:53 use DataDog. There's a lot of these
1:55 different services that you can either
1:57 pay for or sell for.
2:04 So, you might know the chatbot. What we
2:07 have added is that you can actually flip
2:09 out the toolbar chatbot and flip it in
2:11 now.
2:17 We have also added
2:19 if you prefer that, so you can run it in
2:21 full screen
2:22 and have it back.
2:28 Talking about the chatbot, you can also
2:30 add a custom loading message to it now.
2:41 A lens works best with markdown, not
2:44 with HTML, not with plain text. And
2:46 because of this, we have added a
2:48 markdown editor for when you're adding
2:50 system prompts for for when you're
2:52 adding context in context control
2:56 It's a normal WYSIWYG element. You can
2:59 copy and paste anything that you want
3:01 from for instance Word or Google Docs.
3:05 If you go ahead and change something
3:07 here, you can go ahead and look in a
3:09 diff mode what actually got changed.
3:12 You can also see the raw markdown at any
3:14 time.
3:16 What we have also added is that for
3:19 any usage of this, you can give it back
3:23 either variables
3:25 or tokens. This means when I start
3:28 writing a curly bracket, I will start
3:30 seeing what variables are available and
3:33 I can auto complete that.
3:35 Same, if I do a bracket, I get tokens.
3:38 So, you will see it's using the token
3:40 for the current user in this case.
3:46 Up until now, every module that
3:47 integrated with the AI module as a
3:50 third-party module and wanted to have a
3:53 model selector. So, provider and model
3:55 selector did it their own way. There's a
3:58 form element for this now and it takes
4:01 care of the Ajax of auto updating
4:03 configurations. You can have it in
4:06 advanced mode or you can have it in a
4:07 simple picker mode.
4:12 Talking about form elements, maybe you
4:14 want to debug conversation history. So,
4:17 you want to actually change what has
4:19 happened. Well, we have a form element
4:20 for this where you can start adding
4:22 messages.
4:23 Uh you can start adding even tool
4:26 results and you can drag and reorder
4:29 them by just dragging around. And
4:31 whenever you click submit, it will be
4:33 saved as a array that you can use.
4:38 AI model supports something called
4:40 structured output where you can ask it
4:42 to follow a JSON schema in its output.
4:45 But writing a JSON schema by hand is not
4:48 easy. So, we have added a form element
4:50 for this that makes sure to actually
4:52 validate what you're writing. So, I
4:54 added a error here and I see it right
4:56 away.
5:00 The AI settings page is greatly
5:02 improved. It looks a lot nicer. You can
5:05 also for many models get model
5:07 information for pricing
5:10 and general model information.
5:13 On top of that, it also shows additional
5:15 AI capabilities. So, if there's a
5:17 operation type where you don't have a
5:20 provider currently, you can see which
5:21 providers to download to actually use
5:23 this.
5:28 We have added a unified CSS library in
5:30 1.3 to make sure that anyone that
5:34 develops new features can have a
5:36 consistent look.
5:38 Among other things in this is that we
5:40 have added a tooltip function that you
5:42 can see here.
5:48 I'm showcasing metadata here. So, for
5:50 every release that we have done, we have
5:53 given more and more normalized metadata
5:55 for the AI core to give to its country
5:58 modules. So, in 1.2, we added tokens as
6:01 normalized data, so you could count how
6:03 much usage you have.
6:04 In 1.3, we're adding rate limit
6:07 thresholds. And why is this important?
6:10 So, up until now, if you hit a rate
6:13 limit, you would just get the exception
6:14 and you would just have to say, "Well,
6:16 you can't use this anymore." If we
6:17 actually know that you're close to
6:19 hitting a rate limit, we can do things
6:22 like failover or wait until you're
6:24 getting rate limiting thresholds back.
6:27 And this is also going to be important
6:30 when we start adding asynchronous calls
6:32 to know basically how many calls can we
6:34 run at the same time.
6:39 If you go to the bottom of the AI
6:41 settings page and click on advanced
6:43 settings, you will now see a HTTP
6:45 request timeout where you can set your
6:48 own timeout for AI providers. If you
6:51 want it longer or shorter, you do not
6:54 need to hook in and use code now. You
6:56 can do it right in the view.
7:02 We have a new operation type called
7:04 re-ranking. And while we don't have any
7:06 implementations for it, this opens up
7:08 for AI search to use it. And the idea
7:10 behind it is that you have something
7:12 like a vector search or a normal search
7:15 that does the initial filtering and then
7:17 you run a second pass. So, in this case,
7:19 we've gotten these four documents back.
7:21 We're asking this query and it's going
7:23 to re-rank it in a second pass where we
7:25 can say exactly how many results we will
7:28 have back.
7:29 And [clears throat] this makes retrieval
7:30 augmented generation, a typical
7:33 talk with your document chatbot, a lot
7:35 better.
7:39 We have added operation type called
7:41 summary. And while this doesn't feel
7:43 very special at first glance, and L M
7:45 has been able to do this for a long
7:47 time, these are specialized models that
7:50 can run on CPU. This means that you can
7:52 have such a model running on your web
7:54 server, or even in this case, have it
7:57 running inside my browser. So, the
7:59 browser provider runs models inside the
8:02 Google Chrome provider.
8:05 And in this case, we have added a field
8:06 with its action and automator, so you
8:08 can get it with a click of a robot.
8:13 We're adding object detection into 1.3,
8:16 which is a traditional machine learning
8:18 technique, where you can train on your
8:20 own data set
8:22 a model to recognize objects and where
8:24 they are located. So, in this case, with
8:27 this image, we get something like this
8:29 back. You can see how reliable it is and
8:32 the bounding box of XY width and height.
8:36 Now, what's cool with this is while
8:38 we're just having hugging face provider
8:40 for it now, we're trying to create a
8:42 local AI provider so that you can run on
8:45 your normal web server.
8:47 And we have already integration with the
8:49 AI validation module, where you can run
8:52 validation if a label exists or if a
8:55 label doesn't exist and stop the upload
8:57 based on this.
9:01 For both the image field and the media
9:04 field that has images in it, we have
9:07 added field widget actions. So, this
9:10 means that you can use some context. In
9:11 this case, we're just using the title to
9:14 generate images, and they get added as
9:17 either a file entity on the image field
9:20 or as a media entity on the media field.
9:28 Office hours is a nifty little field. We
9:30 have added field widget action, so we
9:31 can actually extract unstructured data
9:35 into structured data.
9:41 Meta tags are really important for SEO.
9:44 Because of this, we have created a field
9:45 widget action that runs the automator to
9:48 create meta tags based on prompts, and
9:50 you can do this for any field. In this
9:52 case, we wanted to create clickbait and
9:55 joke
9:56 uh jokes for the description and the
9:58 title field based on the content.
10:04 We have AI processes in place that can
10:07 look at content and set a moderation
10:09 state based on it. So, in this case, if
10:12 it's draft, published, unpublished, or
10:13 flagged, it can do a pre-screening of
10:15 the actual content here. So, I have
10:17 created a button, so you can actually
10:19 preview the state before you save it. In
10:21 this case, it's okay, it's published.
10:23 I'm just going to go ahead here and add
10:25 a swear word. Click, and all of a sudden
10:28 it's flagged.
10:32 After we have created our summary, what
10:34 we can do is use our new field widget
10:37 actions buttons to create
10:40 text-to-speech.
10:42 This can be used on both file fields and
10:44 media fields. So, you see, it has gone
10:46 ahead and created a media from this. If
10:49 I click save, we can also preview it
10:51 here.
10:51 >> Drupal is a free and open-source web
10:53 content management system, CMS, written
10:56 in PHP, distributed under the GNU
11:02 You want to extract telephone numbers
11:03 with a click of a button? We have that
11:05 for you.
11:09 We also have field widget actions for
11:11 short fields. In this case, we have a
11:13 lot of unstructured data about weight
11:15 and RAM on mobile phones.
11:17 We just click plot the data. It's going
11:19 to look at this and plot the data in a
11:21 short field. So, if we save this, we're
11:23 going to see an actual short field.
11:30 We have added a field widget action for
11:32 extracting addresses. In this case, I've
11:35 set up a lyrics website where it's going
11:36 to extract all the exact addresses from
11:39 lyrics using Google Places in the
11:40 background by pressing a button.
11:43 So, you can see this is Marc Cohn
11:45 Walking in Memphis. He's talking about
11:47 Beale Street, Union Avenue in Memphis,
11:50 and it just goes ahead and chooses the
11:52 correct address for us.
11:57 We have support also for the FAQ field.
12:00 In this case, it's going to look at this
12:01 content and try to create a couple of
12:04 FAQs for that when I click the button.
12:16 The JSON field can be quite nifty if you
12:18 have a API, for instance. We have added
12:21 a field widget action for it. So, with a
12:23 click of a button, you can extract
12:24 something unstructured into something
12:26 structured in JSON.
12:35 Free audio post-production
12:38 by alphonic.com.
