Bringing AI and Personalization to Adobe Experience Manager Edge Delivery Services

Discover foundational architecture to integrate personalization and AI into Adobe Experience Manager Edge Delivery Services. Join Andreas Haller, Principal Solution Architect at Cognizant Netcentric, as he demonstrates semantic search and advanced use cases to enhance your projects.

Transcript
Hello and welcome. My name is Andreas Haller and I would like to talk to you today about how to bring AI and personalization into AI Edge Delivery Services. So this is a very broad field, so we need some focus. What we will see in the next slides is a foundation and architecture to step-by-step build upon to realize more complex use cases and features, but you will see this basis is quite simple and sent up relative to the power you have with it for your use cases and your user experience. But first of all, as I said, it’s a wide field. The two main fields, let’s narrow them down a bit. It can be many, many things from dashboard, cross-channel, retargeting ads, emails, et cetera, rewards, promotions, if it goes into e-commerce. Today, what we want to focus on is the website side, so our searches for cross-linking content and continue to learn about the user. So bringing in this user context into what content is presented and how we are searching for content. The second field, artificial intelligence. Obviously, AI can also be many things, machine learning, robotics, computer vision, large language models. What we want to leverage today is a semantic search, a vector search to interpret that user data and those preferences we have maybe from a locked-in user and the behavior of the user and augment a classical search we have with that information and with the help of AI. With that, we can define a very pragmatic approach for an implementation. And on a very high level, we have a two-step approach. On one hand, we want to collect data. This can obviously be a sophisticated analytics data platform, but this can also be just in the browser. We need some kind of data points to get going. And this user context we are forming, we then provide together with what I call the content context to an AI-enabled backend. What I mean with content context is the user browses a website, a specific branch of your website, and it might make sense to present him with only a subset of your information. So you don’t always want to search for all the content you have there. If the user browses in a certain field, they should get only content presented out of that field. Depends on your use cases, what makes sense here, but typically those two contexts make sense to interpret. Obviously, this can be with logged in users that we have more information, but it can also be with anonymous users as long as we have the possibility to collect their behavior, their data, what they’re interested in. So with this two-step approach, collecting and then interpreting data, I want to go deeper already in our demo here. So I have set up some proof of concept based on our website here. And as an example, I have used this teaser presentation. So those three teasers at the moment, they are completely anonymous. So none of my user behavior went into selecting those three. And now I want to just start browsing something. Let’s search for edge delivery here and go into one article. So we have a nice edge delivery article here from two of my colleagues. And the system now will in the background recognize that I’m obviously interested in those. And if I’m going back to this page here, the teasers will be personalized, targeted to my interest. So how does that work? Here we are not connected yet to a data platform like AEP. We are just collecting a few texts here in the local storage of the browser. And then in the network tab, we see the request we are using to select those three teasers. And we see we give this context to the search. It’s as easy as that. And it’s already a quite nice starting point for more complex, more sophisticated personalization. Here, as you see, I’m just appending the user context. I could also replace the user context. This open search is the default. So if we are looking into the document where the author defines what they want to see here, I gave here only the possibility to give the default, which is then appended with the actual user context. But it could also be replaced. Or I can define some rules here, maybe even a list of possible tags or keywords I want to match against what the user actually did or what the user has in his profile. So this is already nice. I could do that even without AI. We are using this search endpoint. But I want to show you a second use case where the AI aspect gets more obvious. So let’s search for something. Maybe I remember Summit. There was something with music, right? But I’m not quite sure what kind of music it was. And if I’m searching here for music, obviously I find a few hits where we actually have music in the text. But if I’m scrolling a bit down, I find the actual AM Rockstar demo. So we have at Summit the Rockstar. So we have not on this page any hint of music in there. This is now a semantic search where we are deciding with AI that music and rock somehow fits together and is likely something I want to show. And this functionality I can now bring also into the first use case. So I don’t need a perfect match of the interests of a user and what I have actually on the page. I can have similarity. I can make some sense of what the user is interested in. So far so good to the demo. Let’s jump back to the architecture behind that. So here, the component diagram just to get an overview of what parts we typically have in an edge delivery architecture and where this kind of functionality can fit in. So we have the browser obviously doing the request. We have this standardized edge delivery services back end where the content is coming from. We have the authoring behind. And so this is the typical stack you get out of the box from the product. But then we have some extension points implemented here. So we have this ingest block. And we are triggering that one on the publish, unpublish events of the author. So during the authoring process, bringing a website live, we are triggering an ingest into our at the bottom search index. On top of this index, we’re going up again. We have those embeddings and potentially large language model. I’ll come to the details here on the next slide. And we have all of this behind an API gateway. And we might even have other services maybe to read other data from an e-commerce system if it comes into interaction of products or whatever other data source. I need to use on my front end. And I maybe want to combine. Obviously, I could also ingest those other content sources into the index to also leverage this AI and search selection. Deeper into this, in this case, open search setup. So we are the open search and what you also see here, AWS setup. This is now specific to the proof of concept. I set up for a demo. But obviously, it can be any other platform, cloud platform, or search provider. For the search provider, you’re a little bit more limited because it needs to support your AI use cases. But typically, all of the modern ones do in the meantime. So we see here on the left again the ingestion process. We have this trigger publish, unpublish via an API. We have our custom lambda function code where we can even enrich the data or pick the right data depending on what type of page we want to ingest. And we can send this data to our open search back end to our index. And what now the index does is it interprets that data and puts it not only as a plain text into the index to search, but it uses, in our case here for the demo, an open AI embedding model to transform it into a vector embedding and being able then to search for this similar efforts. The searching comes from the other side from the browser. We have this user search query we saw in the demo or the teaser list or can be even a check, but we will come to that. And we will go basically to the same kind of infrastructure. We have an API gateway and a lambda function. And when hitting the open search by a query, it does basically the same as on ingest. It transforms our query term to a vector embedding and then searches with this embedding in the database and in the index. So for this, this is a basic semantic search for our demo. We are using actually a hybrid approach. You saw that we are finding still exact matches and even rank them a little bit higher. And additionally, search for the semantic matches. But we obviously can optimize here what we want to do, how we want to search exactly. We can even extend this whole setup. So this is really a very, very nice setup we can have beside AM Edge Delivery filled with the data of Edge Delivery, but also potentially other content sources, Magento, Adobe Commerce, other systems, like sometimes job offers are maintained outside of the CMS. We could all ingest them into this database and provide one nice view for the user to query this data, not only in a typical search, but also for selecting content for teaser lists, et cetera. As a summary and outlook, so this is really what we just saw the foundation we can build up on. We have enabled personalization and usage of artificial intelligence. And now on this relatively simple setup, we can leverage more. We can combine this approach now with getting information from HIO, AP generally, also from other IDP systems, knowing stuff about the user, or also about the content. And we can start experimenting. Because in my opinion, typically, if a requirement around personalization AI comes in, the ask and complexity is so big that it’s hard to find a good way to start. And I believe that this foundation, this architecture, is a good starting point to now slowly try out different stuff, step by step, bringing in more complex scenarios. And we can even extend it. I mentioned it already before, plugging in a large language model. We could bring this with retrieval augmented generation to a chatbot. So we can base the answers on the chatbot exclusively on our content. We can minimize or maybe even completely avoid hallucination or unintended answers. So we can provide relatively easy, a good basis for providing a custom chat. And even extend it for product recommendation. Maybe even personalized prices, et cetera, with plugging in some price engines. So there are many, many ideas what to build on. But you need to start somewhere. And I hope that this talk has given you some nice ideas about where to start and how to start. Thank you for listening. If you have further questions, don’t hesitate to contact me on LinkedIn. And enjoy the rest of the talks. See you.

Community Discussion

Continue the conversation in the Adobe Developers Live Community discussion.

Key Takeaways

Personalization and AI Integration

  • Focus on integrating AI and personalization into web services, particularly on website content and user behavior.

Two-Step Approach

  • Data Collection Gather user data through sophisticated analytics or browser data points.
  • Data Interpretation Use AI-enabled backends to process and present personalized content.

Demo Insights

  • Demonstrated a proof of concept where user behavior influences content presentation.
  • Utilized local storage for data collection and semantic search for content matching.

Architecture Overview

  • Key components include the browser, edge delivery services, content backends, and an API gateway.
  • Extensions for data ingestion and search indexing.
  • Use of OpenSearch and embedding models for semantic search.
  • Hybrid search approach combining exact and semantic matches.

Potential for Further Extensions

  • Integrating large language models for chatbots.
  • Implementing product recommendations.
  • Developing personalized pricing strategies.
  • Emphasis on starting with a foundational setup and gradually building more complex scenarios.

Pragmatic Implementation

  • The approach allows for a step-by-step build-up to realize more complex use cases and features.
  • Encourages experimentation and gradual enhancement of AI and personalization capabilities.
recommendation-more-help
3c5a5de1-aef4-4536-8764-ec20371a5186