{"id":67294,"date":"2025-08-14T18:32:32","date_gmt":"2025-08-14T18:32:32","guid":{"rendered":"https:\/\/www.bloomreach.com\/?post_type=library&#038;p=67294"},"modified":"2025-08-14T18:32:33","modified_gmt":"2025-08-14T18:32:33","slug":"taking-a-peek-under-the-hood-of-bloomreach-clarity","status":"publish","type":"library","link":"https:\/\/www.bloomreach.com\/en\/blog\/taking-a-peek-under-the-hood-of-bloomreach-clarity","title":{"rendered":"Taking a Peek Under the Hood of Bloomreach Clarity"},"content":{"rendered":"\n<p>I\u2019ve previously written about our development of <a href=\"https:\/\/www.bloomreach.com\/en\/products\/clarity\">Bloomreach Clarity<\/a>, our conversational shopping agent, from how we <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/balancing-search-tradition-and-transformation-with-bloomreach-clarity\">found the right balance with search<\/a> to how we\u2019re <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/using-the-power-of-nvidia-to-build-a-groundbreaking-conversational-agent\">powering the conversational experience<\/a>.&nbsp;<\/p>\n\n\n\n<p>While those posts highlighted how we approached early challenges and transformed product discovery, a lot of the information was shared at a high level. In this post, I want to dig deeper into our architecture and explain how we make conversational shopping work. Let\u2019s explore the technologies that power Clarity.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bridging User Queries With AI Knowledge<\/h2>\n\n\n\n<p>Let\u2019s first take this approach from the end user perspective. When someone interacts with Clarity, what\u2019s happening under the hood?&nbsp;<\/p>\n\n\n\n<p>Our solution includes a plugin frontend called the Bloomreach Weblayer, short for web overlays. Our backend consists of an agentic framework that uses LLMs at the center \u2014 in our case, we use Vertex AI (more specifically, we use Gemini 2.0 Flash for the best balance of speed and costs).&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"700\" src=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/Body-Image-1-1024x700.jpg\" alt=\"An overview of the Bloomreach Clarity architecture\" class=\"wp-image-67295\" srcset=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/Body-Image-1-1024x700.jpg 1024w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/Body-Image-1-300x205.jpg 300w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/Body-Image-1-768x525.jpg 768w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/Body-Image-1.jpg 1462w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>These two layers work in conjunction to figure out the user\u2019s intent based on their query. Is the user searching for a specific product in a specific category? Or are they using more generic terms?&nbsp;<\/p>\n\n\n\n<p>For a generic query (e.g., \u201cshirts\u201d), a call is made to the Clarity search agent, which will determine if the search term is too broad. If it is, Clarity will go back to the user with follow-up questions (e.g., \u201cWhat kind of shirts are you interested in?\u201d or \u201cAre there any specific brands you\u2019d like to see?\u201d). This will help turn the generic query into a more specific one.&nbsp;<\/p>\n\n\n\n<p>When the query has enough specificity, such as \u201cblue jeans under $200,\u201d the model constructs a precise filter schema (e.g., price = &lt;$200, color = blue). Then, the Vertex AI embedding model sends back a vector embedding for the product, which, when combined with the filters, ensures precision and relevance. All of these products are consumed from sources that are stored either in Bigtable, S3, Shopify, or any other passed in through our ingestion API, and then stored along with their vectors in Qdrant for the LLM to pull from.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Generating Relevant Questions for Product Discovery&nbsp;<\/h2>\n\n\n\n<p>Clarity isn\u2019t just relegated to the chat window, though. We\u2019ve also baked in Clarity throughout the product discovery experience with thought-starter questions. So, if a shopper starts typing a query into the search bar, we\u2019ll populate common questions related to their intended search term. Similarly, these questions will appear in other parts of the site, such as PDPs and the checkout page.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"709\" src=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/AD_4nXdKTQelVWw1KCV_F2nSkqVsRjC2OgjFJjwa-0b321vb0i-TyGqQC-d5g7MYTIKd0L5vfkG6Tss3V7xOOTsj0dxAkVh6dwDwLcO5YkcUGHUVg22bNSM-2GuNccUsmsCLavc37hnr.png\" alt=\"\" class=\"wp-image-67308\" srcset=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/AD_4nXdKTQelVWw1KCV_F2nSkqVsRjC2OgjFJjwa-0b321vb0i-TyGqQC-d5g7MYTIKd0L5vfkG6Tss3V7xOOTsj0dxAkVh6dwDwLcO5YkcUGHUVg22bNSM-2GuNccUsmsCLavc37hnr.png 1024w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/AD_4nXdKTQelVWw1KCV_F2nSkqVsRjC2OgjFJjwa-0b321vb0i-TyGqQC-d5g7MYTIKd0L5vfkG6Tss3V7xOOTsj0dxAkVh6dwDwLcO5YkcUGHUVg22bNSM-2GuNccUsmsCLavc37hnr-300x208.png 300w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2025\/08\/AD_4nXdKTQelVWw1KCV_F2nSkqVsRjC2OgjFJjwa-0b321vb0i-TyGqQC-d5g7MYTIKd0L5vfkG6Tss3V7xOOTsj0dxAkVh6dwDwLcO5YkcUGHUVg22bNSM-2GuNccUsmsCLavc37hnr-768x532.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here\u2019s how this works. An offline process generates questions by making calls to the Gemini model and asking it to create 10 representative questions for the specified product in the catalog. However, we only want to show questions that we can actually answer.&nbsp;<\/p>\n\n\n\n<p>So, for every question, we interact as if we\u2019re a visitor asking this question. Our agent will then interact with Vertex AI in a similar fashion as if we were making a query and then generate an answer. But we still need to validate the answer, so Clarity will make another call to the LLM to ensure the answer is accurate and relevant.\u00a0<\/p>\n\n\n\n<p>As a result, even though we ask for 10 questions, we may only show a handful of them, depending on the validation between the question-answer pairs. In this way, we ensure that shoppers get a better experience free from hallucinations or inaccurate answers.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s Next<\/h2>\n\n\n\n<p>One of the challenges we\u2019re running into now is the time and cost it takes to make these LLM calls to generate answers. For now, we\u2019re mostly focused on importing the most common or high-priority queries for each site (e.g., top-ranked products). This helps us limit the scope while still meeting the needs of a large percentage of customers.&nbsp;<\/p>\n\n\n\n<p>However, we\u2019re also seeing LLMs continue to grow more sophisticated. We\u2019re currently exploring ways to use LLMs to completely take over the orchestration flow, which means we\u2019d be able to give a lot of context to the model and have it figure out what kind of queries to execute.\u00a0<\/p>\n\n\n\n<p>Clarity is already providing incredible conversational experiences to shoppers, and as we continue experimenting and innovating with AI, we\u2019ll only see it improve with time. Check out <a href=\"https:\/\/www.bloomreach.com\/en\/products\/clarity\">Bloomreach Clarity<\/a> for yourself to see how conversational shopping can transform your site.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve previously written about our development of Bloomreach Clarity, our conversational shopping agent, from how we found the right balance with search to how we\u2019re powering the conversational experience.&nbsp; While those posts highlighted how we approached early challenges and transformed product discovery, a lot of the information was shared at a high level. In this [&hellip;]<\/p>\n","protected":false},"author":127,"featured_media":67301,"template":"","ew-regions":[],"ew-solutions":[],"library_type":[513],"library_blog_tag":[362,368],"industry":[],"channel":[],"topic":[283],"class_list":["post-67294","library","type-library","status-publish","has-post-thumbnail","hentry","library_type-blog","library_blog_tag-ai-and-innovation","library_blog_tag-conversational-shopping","topic-ai"],"acf":{"library_blog_banner_content":"","library_blog_banner_cta1_text":"","library_blog_banner_cta1_href":"","library_blog_banner_cta1_new_tab":false,"library_blog_banner_cta2_text":"","library_blog_banner_cta2_href":"","library_blog_banner_cta2_new_tab":false,"library_blog_banner_bg_color":"#EAF7FE","library_blog_banner_cta_text_color":"#FFF","library_blog_banner_cta_bg_color":"#019ACE","library_blog_banner_cta2_text_color":"#000","library_blog_banner_cta2_bg_color":"#FFF","library_blog_chatgpt_content":"","library_blog_chatgpt_cta_href":"","library_blog_chatgpt_cta_text":"Ask ChatGPT"},"_links":{"self":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/67294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library"}],"about":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/types\/library"}],"author":[{"embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/users\/127"}],"version-history":[{"count":3,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/67294\/revisions"}],"predecessor-version":[{"id":67618,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/67294\/revisions\/67618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/media\/67301"}],"wp:attachment":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/media?parent=67294"}],"wp:term":[{"taxonomy":"ew_regions","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/ew-regions?post=67294"},{"taxonomy":"ew_solutions","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/ew-solutions?post=67294"},{"taxonomy":"library_type","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library_type?post=67294"},{"taxonomy":"library_blog_tag","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library_blog_tag?post=67294"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/industry?post=67294"},{"taxonomy":"channel","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/channel?post=67294"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/topic?post=67294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}