 Okay, I think it's time now, so let me get going. So you will have a little bit more time if I finish this earlier so we can have some questions. So I believe here you are and then all of you know that AI has invaded our day life greatly. Some of our work has been affected or improved or even taken away, I hope is a good in a good way. So we are free to do more valuable and creative tasks and it also give us more time to be with family and to enjoy our life more. So early this year, I was listened to Jensen Huang's keynote talk in the NVIDIA GTC event and he called this is an iPhone moment, another iPhone moment in human history. I feel a little bit excitement, but also anxiety because back in 2007, I wasn't able to hop on the iPhone trend when iPhone revolutionized our technology. But I'm thrilled to be here to be able to part of this new tech frontier. At the same time, I feel anxiety because last year when GPT was released in the form of chat GPT, it quickly involved from GPT 3 to 3.4, 3.5 to 4 and just two weeks ago we heard the GPT 4 visual, it's available. So this is a very short period of time and AI involves so quickly. So this extremely fast pace of advancement worries me because I definitely don't want to fall behind and suffer from the formal. A little bit about me, my name is Chris. I was a Drupal user group leader in Taiwan. Now in my day-to-day work, I support editors to produce content and connect with the readers. I have spent the last 15 years working with Drupal. In these years, I've been part of diverse projects, including fashion closing brands or organization to celebrate the LGBT life in Taiwan and even for a company to deliver the medical education. And currently I'm at the company that the term leads the industry in designing electrical cargo bicycle and folding bicycle. So we generate extensive content for users to learn about our products, our accessories. And how to use our products, but more importantly, how to make our global environment more sustainable. Behind every piece of content, so this is the topic we are going to talk about, how AI can assist our content. Behind every piece of content, there's a lot of work goes unnoticed. Creating content isn't just about writing. So it involves multiple drafts, polishing and also extensive reviews before we hit the publish. And so success isn't just about the great content. It also about knowing our target audience, the market, and also what's the strategy of the brand. Given our global reach, localization is very important because we translate our content for 40 different markets and including 17 regional language variants. So ensuring that the content resonates locally is very important. So this is a team effort involving all our, the team and also our local distributors. So I started to think about what AI can do to help align with our strategies. But some people say AI can do many things and sometimes do better than us. But technically speaking, there are many AI models. So the one we are constantly talking about is the large language models or as known as the LLMS. But LLMS is just a fraction of the AI landscape. So there are still other models like that models can interpret the spoken language into another dialect. And there are also visual models. The visual models can probably see what we can see and what human want to see or something even human don't see. For example, there are medical AIs that can diagnose symptoms, predict potential diseases or even recommend treatments. So today we are focused on the LLMS here and integrate into the Drupal. So understanding the AI capability you are using, I think that's the key. So in a course that I learned from the deep learning AI, I don't know if you know the website, it's hosted with Andrew N. And the initial course about the engineer in the prompt, I learned there are four major primary functions. So expand, summarize, transform and inference. Expand is mostly we use to generate content. So AI can craft paragraphs, titles, even entire books for us. Summarize, the ability can distill long phone content into a brief summary text while preserving the essential information for us. Transform, the capability can help us to encompass translation or format conversions and also tone adjustments. Whether it is translating languages or converting markdown into HTML or into different XML format or simplifying the scientific articles into a content that even 60 year old children can understand. That's the ability of transform. The last one inference, I think this is very important one. So AI can perform deep content analysis to uncover the hidden patterns and insights, particularly for the user-generated content. So this will streamline the workflow allowing for quicker and more accurate response. Aiding our, for example, if a user submit the inquiries to you can use this ability to detect what's the sentiment in the content. So as you venture into the world of AI, I think keep these four major things in mind will not only enhance your confidence if you are a developer but will also empower you to unlock the full potential of the LLMS in your projects. So let's break down the typical copy creation workflow. It usually started from content draft following by multiple reviews and then final approvals. If your website's multilingual, then translation. Then meta tag and SEO are written. And at the last, you may want to do some campaign activity such as email blasting or social media posts. So today I may not have all the answers for how to incorporate AI in the system but I will have the mixed answers with the conceptual ideas and what's the Drupal modules that help us to do in the content editing process. And also three modules that I have been contributing into our project in the last couple of months. Before we get into the main topic, I want to ask, would you feel that, are you convinced that AI can undoubtedly enhance or boost our productivity? All right, that's a good number. So, but let's see some study and research then. So the Nelson-Norman group, they just reported in July, says the AI can enhance the productivity by 66 in average. In the other hand, I also see it's possible that Japanese researchers as watching the cat video may also boost the productivity. So, which one do you choose? Cat video or AI? Both? Yeah, me too. So this is, I work in remotely, so usually have a cat on me while I'm maybe working with the open AI. All right, okay, let's come back to the topic. So first step, content drafting. The first stage, usually we will draft a copy whether it is an article or a title or a summary maybe. AI can help us by generating the initial draft. I want to say initial draft, not whole copy. And we can later refine the draft to save some time. There is already an open AI module, maybe you already know. It has multiple kinds of AI functions and some modules that you can experiment in your site. So one of the integration is for CK8 integration. It has multiple solutions embedded in the CK5 to complete the tags or adjusting the tone or do the summarize or even translate. But this is only for experimental in my opinion because if you dive into the code, its prompt is very general. So it has the system prompt and then combine the prompt with your tags input in the CK8 editor. So and there's no place for you to change the prompt. So this is not ideal in the practical situation. And also beware, there might be something you don't expect it. For example, I use the tool to ask for a five paragraph about quantum science, but it returns the big chunk of the content with numbering in every sections. Yeah, so I couldn't even ask the plugin to general HTML content for me, for example, adding an image or adding a list because it is already in the HTML editor. And unless we can do that in the source mode, that won't work. Also because there is a limitation of the tokens that you can request to open AI. If you exceed the number, it will just return the error message into your editor. All right, so keep in mind this is still worse to experiment with the tool, but if you are going to use this kind of tool, I suggest you either customize the module or do some updates or create your own module. So I actually made the first up my own module to implement the open AI. This is called generative summary. It is simply adding a generate summary bottom next to the summary input field for the long text format with the summary. So the module will gather all the text you input in the body and then create a summary for you. So there is a global settings for the prompt and the tokens you can use. You can also localize the prompt for each long text field because I believe you have different content type with different purpose, so you might need a different prompt. So with just one click, you can generate the summary text for me. But when I create these, I think there's one thing very interesting I want to share because at the very beginning I went with the zero shot approach asking the AI to produce a 200 character summary. When I got the first response was 500 characters with two paragraphs, which is much more than I want. I further request the number of sentences and then explicit asking for the different number of characters, it doesn't really help. At the end, I decided to assign a persona to the AI. So I hypnotized the AI saying you are a senior and mature digital media editor who knows how to write attractive summary and extract the most representative info for an article, just like that, it worked. So I can later compose a user prompt to request a number of sentence and the number of the text for the summary. So you will be able to change that if you need more or longer summary for your content. So once the content is drafted, the next step is reviewing, right? So it includes like correcting typos, checking the tone or ensure the content engaged to your target audience. The OpenAI module that I just mentioned it has a content tool sub-module. It adds some toolbox next to the editing form. It provides some like changing the tone of the text or the translate summary and then also provide some texamic keywords. But I checked the prompt. It was exactly the same that we just saw for the CK Editor. So it still doesn't have any customization you can use, but it is still a good start. You can try that. So I went the other different angle because I thought maybe when our editor create a content, we can provide some different tools to help them to review whether the content is good for the target audience or not. So I thought about the idea of AI readability tool. This is just a conceptual idea. So let me expand the steps. At the beginning, AI has the inference ability. So we can use AI and then tell the AI what's the predefined persona and that AI to exercise its inference ability to provide us some measurements or the score, how much it matches to our target audience or even get some suggestion from AI. So that is kind of a qualitative major, right? But in the other end, we can also combine some algorithm to get more quantitative majors. For example, there's FlashKincaid reading ease and FlashKincaid grade level majors. There are algorithms, so we can use that to calculate some scores to detect what's the readability of our content. This comprehensive approach combines quantitative and qualitative majors. It will not only set a consistent baseline for readability, but also ensure that our content can effectively reach its intended target audience. The other idea is about proofreading. So various style goes, the various guidelines exist. Maybe the most famous one is the AP Stylebook or others like APA or AMA. These guides will promote the consistency across the different mediums. So it could also help us to check the spelling. The proofreading can also help us check the spelling in different language variations. So I was working in the Scientific Institute. There are talents coming from all of the world, and we all communicate in English. But when we publish a content for the institute, we have to decide what's the major tone or system we want to publish our content. Either it is European spelling or US spelling or which guideline we want to use. Once it's determined, the reviewer usually need to make sure the publication are consistent. So AI can definitely support us to correct those things and help us to make sure the spelling and styles are consistent. If your website is multilingual, then the translation becomes an essential step. When we hear machine translation before, how many of you have negative impressions? I believe so, I'm too. So whenever people say, let's create a content and then let's go to Google Translate, I say no. But however, the machine translation is still continuously evolving and improving. You probably know there are something better than Google Translation already, right? And my former colleague translator in the communication and PR have begun using DPL for drafting the translation. When we request the content translation for our website, they ask us, you can use the DPL to make the first draft because they find it, the DPL will complete like 80% of the work. So allowing them to focus on the nuance, for example, the tongue or the specialized terminology and they can fix that later and it saves a lot of time for them. So translation is also part of AI ability of transformation. GPD model exhibit very strong capability in translation. So this is based on some study I searched from handy this is part of the Microsoft research team, I believe. So in their study, it finds the GPD translation, I'll perform the natural machine translator from the Microsoft they build, according to this study. So even with a zero shot approach, a zero shot means you just like, you ask one question in chat GPD without giving any context or try to guide the GPD response. That's kind of a zero shot. You ask one question, you get answer. So for translation, I say translate the bicycle to French and it returns value. So that's the zero shot. So in this study, if find the zero shot translation approach also shows very impressive performance for high resource language. High resource language means the most, the material in this training model. For example, in here you can see from English to Germany, from English to Czech or to Russian or France in this study. So this is even with GPD 3.5 is already very useful. So for our website, with 17 major language categories for 40 different countries on our site, maintaining the linguistic diversity is very important. So each country may feature one or multiple language variations. For example, Belgium, we have three languages for Belgium. And when we roll out our products, articles, timing translation is very crucial. So to accelerate the process, I was trying to think what can we do to make a translation draft instead of asking our local distributor to translate the content from scratch. So for short sentence UI elements or just the title, I create a module called OpenAI Translation Toolbox. So this toolbox is also very simple. It detects all the enabled language in your website and you can choose what language you want to allow the editor to translate. And then the editors can pick up different languages and then input the original sentence for translation. After they submit it, they will get the list for every language and then have a copy and paste link on the end. So it will help them to quickly get the draft before they send to the local distributor for the translation and review. So interesting thing is these will also take care of some local variants like the German between Germany and Swiss German or European English versus American English. Talking about the traditional content translation, it's usually a cumbersome process. So previously when we do the translation for each language, we will send the English text stripped of HTML already to our local sales to translate. While this made the text easier to translate and it is challenging when we need to merge the text back to the HTML. So it is fortunate we can find one translator, the local translator who is comfortable to edit in the content in the HTML or WCWIC directly, but for 40 different languages, it's not feasible at all. So, and then although I just mentioned DPL, DPL can translate 31 different languages, but it doesn't cover the different language variations like the French in different country or Spanish in different country. But AI has trained for that and then it sometimes can create this kind of a local translation if we provide the enough context. For example, the country and the language code, you can do better than the DPL. And also DPL cannot process the HTML either. So with OpenAI, we find it is very useful because in this example, we are using the translation management module, the core module is called TMGNT with the OpenAI translator, also extension for the TMGNT. So this module, on the right, this is a translation from OpenAI and it keeps the HTML and then translate content in here with all the links and the list that you can see. So I think this, in the last couple of months, I contribute to this module for the AI translator more to make it more extensive for longer HTML because if it is article, usually it is too long. So we have to break it down into chunks in order to get the right translation. And with the TMGNT module, it is also very helpful to create a translation draft before we actually publish or save into a node. So our editor will be able to see how many drafts is already for different language. If you don't see the green check here, that means the content haven't been saved as a node yet, but it has a draft inside of this module. So we are now gradually integrate the OpenAI translator into our existing workflow. So on the left, it is the original process. We need to segment our attacks and then send to the local distributor and then it takes roughly about three weeks to finish the whole process before we can publish a content with the other translation. In the center, it is the current process, although it is longer, but in the first block here, so we use this translator to provide initial draft for the local distributor to review and then modify from it. So it saves our time, so approximately it reduced the whole week. So now it is more or less about two weeks to finalize the translation. So our ideal goal is on the right to be able to eliminate, skip the whole process of these. So this part will be gone because if we invite the distributors, they invite them to the system and then use the AI to generate the first draft from themself, they will be able to directly modify and then create the translation draft in the system. So it will save us time, save our editors time to communicate with them. So maybe in ideal situation, we can further eliminate the process into one week, hopefully. So as we are doing the current process, we also ask the feedback from our local distributors and translators and how do they feel about the time and qualities. I don't want to mention all the points, but just two. One is they also find 80% satisfactory, which matches what I mentioned, our previous translator also says 80% from the machine translation is quite useful. And there's one comment I want to especially mention. There's maybe this is from Swiss German. So it says, it's very cute. There was a Swiss German dialect translated in the text. So with the traditional translation, I don't know how would it be possible for this happens. So after the content is finalized, the next focus will be post-creation activities for SEO. And I think the module of OpenAI is already helpful. And I think in this process, you can also use the chat GPD to help you to generate the attractive titles for you or extract some keywords for you to use for SEO keywords or tech summary if you want to use to link different articles. So this is already a sub module under the OpenAI. So this is, if you later, you can check the slides. It's especially mentioned creating the SEO friendly title for this page based on the content. So if you do want to create your module, you can definitely use this module as an example and customize your own. And the last step is about campaigning and social media post. So here I also have some conceptual ideas. So since chat GPD can move it to the tone and craft the engaging text, even with emoji, and it also understands the various restriction for different social media platform. For example, Twitter or Hex. Right now, they have the imitation of the characters. So the chat GPD seems also known about it. So simply input your content and ask the AI to generate a post. It will strategically include the emoji and hashtag whilst staying with the correct limit. So if you are going to make these with a triple module, I don't think that's a huge problem, right? It is very easy. So since I mentioned the AI readability toolbox that can utilize the predefined persona, I may further integrate that features, the generate the social media posts into this one because we will be able to target different audience and create diverse of social posts or email campaign when we are doing the campaign activities. So that's all about editing. And these two are a little bit out of Drupal, but I think it is also helpful for the editing process. The first one, I was creating a semantic search function using GPD because for article and similar content, many websites, we have the related content or seems to like sections, right? And usually in the traditional way, we use the relation database system. So the related content is usually typically determined using the score, calculated with the keywords and the field weight and also the keywords expended to which it broaden the search parameters. But LLM, however, takes a different approach by identifying relevance through the vector space, which is the way AI understand the relevance and knowledge. So it will offer more semantically align with the results similar to human reasoning. So I build this tool. So I use a training data from Japanese blog of our own Japanese website. And I can use that and I request a question, find the relevant test write event using English and it returns the Japanese text for me. It finds the content for me. So it doesn't matter what language I request, I ask. The AI model can still find the answer for me. So I don't think this is even possible to use just the traditional search engine. So since we have this feature, I further make this as a chatbot as kind of supporting to find our knowledge. So this is an example. So again, the content was just in Japanese. And I wrote a prompt like communicate with chatGVT and show me what is the latest model and also ask the model to return the information with a very specific format and then what's the label I want to see. And the content returns in English. So it will be able to help our service team or sales team or even our local distributor to find the information at their own language. So I think this will also be very helpful for our editors and the distributors to find the information from our site and further to help the combination with our customers. All right, so there are so many possibilities to enhance the workflow and experience of editing with OpenAI. As we navigate the AI renaissance, the focus is not just about adopting the new tool but also how to master and redefine the media content creation. So chatGVT is no doubt a killer app in this trend. And we can further bring the ability into Drupal without caution and it will streamline the editing experience. By integrating the LLM with the traditional algorithm in a chained process, so we are not only getting the benefit of AI but also mitigating the limitations such as the well-known hallucination from the AI. So as a result, we can produce more reliable content. I also benefit a lot from the GPD. So just to be honest, when I create those modules, I use a lot of maybe GPD or a co-pilot to help me because I will be able to focus on the things I enjoy the most and let the AI to take care of the code, methodology and standards for me. So this will hopefully align with our goal and navigate this current wave of technology advancement. So there's also more research showing the evidence that AI can improve our efficiency work. While some people fear the rise of AI, I'm confident definitely we can guide it and apply our deep knowledge and then find you the AI model in the future. So don't feel with it. And if you feel with the generation or generative AI, use the other abilities, summarize or inference, that will be very helpful. So let's embrace the AI and thank you for joining the session. I'm available for questions. So if I get you right, step one for you using AI in a generative sense or useful sense for websites is mastering the prompt. So somehow like layer one, we create a persona for the AI which is always the basement for everything it generates in a special context. And afterwards we somehow need to prompt really, really good so that we get a solution. Is there any mythology that you were engaging this issues? Like was it just try an error or is there something that you say, yeah, there's like a guideline or a good piece of content on how to prompt AI very good? Try an error. I think that's most of people will start but I encourage everyone to think about how to engineer the prompt. So there are already many of studies. So like I mentioned, the zero shot is just one term for those kind of trying error. And there are like two shots or a chain of thoughts. How can you guide the AI to think about how to generate the content? For example, in the translation toolbox, I don't just use the zero shot. I also provide example, how should you provide the information for me? Otherwise I couldn't process the result output from AI because I asked specifically, return the JSON format with some label and the values that I want. If I don't engineer the prompt well, it will be returned different things every time. Yeah, so I believe this is also the same thing for even just for content generation. Thank you. Very interesting presentation. Did you have any figures of actually how much the performance of the whole cycle has been boosted? Did you get like a 66% performance boost? As was mentioned in the study, yeah. Because we have a little feedback from the translator. So the most we can evaluate is from the translation process. And the last time we tried using this way, I said we already shortened the amount of time by one week. And from all the comments from the distributor, they say it definitely saves their time. But of course there are some others saying, we still have to refresh everything because it's too much literal, we need to refresh. But still at the very beginning, they say it's a good start. Yeah, so they don't have to write from scratch. So I couldn't tell like exactly how many percentage has been improved. But I said, I would say it has been improved. And we will further get more feedback about like statistically like how much. Yeah, thank you, make sense. So another question. When it comes to search, you obviously have to train the model with your own data. Was this also like an open AI technology you used and did you do it on your own server or did you use their service? This is not to do the search, you don't need to find or train the AI model. This is using embedding, which is kind of a data for AI to process. And the data is stored in the way, I just mentioned the vector space. So it has like three or four dimensions with a lot of numbers for AI to calculate the relevance of each content. And the solution I was using, I can use open AI, I need to use a GPT to process the feedback. But in order to get the relevance content, it doesn't need open AI service at all, yeah. I don't think I get it. Thanks for the exercise. Sorry, thanks. I just wanna say, I think this is all fantastic. I like it, especially the translation stuff and then the rest of it's really cool. I'm just wondering, when are you gonna do a Dahle integration? I'd like that. Well, that's a good question. So our team, I think we are very proud of our own media creation and art. So I don't see there is a near future that we will implement Dahle in our content because we use very authentic content and we still hire very good quality PR firm to help us to shoot all the video and content. You can still do automatic alt text generation or something like that. I guess there are already price solutions for that at the moment. Yeah, I think I will need to push more because this is the first trial because I just joined the company for last then six months and I tried to bring this idea and they have some concerns about the security. So in this example, we are not using OpenAI company's service. We are instead using the Azure to have the separated model. Thanks. I wanna come back to the previous question to make sure I understand. Did you have all your content in a vector database and you can access that with basically any LLM or is that not how it works? Oh, you mean this is the result? I can later show you my repository and then let me explain the process. The first, I grab all the blog posts from the Google blog post service and then transfer those XML into Plantax. And then there is, I think there is an AI model, yeah, at the beginning, I used the AI model to create the embedding. I think that's maybe the DaVinci or other I couldn't remember. And then it creates a file. The file could be saved locally or using AI database service. For example, PyCon, it is more famous one. So you save it there. So it is considered as a database. So then you can request using your parameter and the database will return the relative content from their ID because we have all the text here, like a chunk of text. And there's ID, so you will return which ID is more close to your query parameters. Yeah, okay, thanks. Yeah, that exercise is actually from open AI tutorial. I can let you know what the tutorial is. So you can try it on your machine as well. Any other questions? No, and then thank you for joining me. Thank you.