{"id":29895,"date":"2024-06-23T21:01:28","date_gmt":"2024-06-23T16:01:28","guid":{"rendered":"https:\/\/kmwllc.com\/?p=29895"},"modified":"2025-06-02T20:07:30","modified_gmt":"2025-06-02T15:07:30","slug":"rag-question-answering-system-for-solr-and-opensearch","status":"publish","type":"post","link":"https:\/\/kmwllc.com\/index.php\/2024\/06\/23\/rag-question-answering-system-for-solr-and-opensearch\/","title":{"rendered":"RAG Question Answering System for Solr and OpenSearch\u00a0"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"29895\" class=\"elementor elementor-29895\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2c49533 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2c49533\" data-element_type=\"section\" data-e-type=\"section\">\r\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-thegem\"><div class=\"elementor-row\">\r\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-7d68f89\" data-id=\"7d68f89\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a524ba flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-post-info\" data-id=\"7a524ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-91a0f52 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>June 23, 2024<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af3d2a0 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"af3d2a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"styled-subtitle elementor-heading-title elementor-size-default\">We describe the process of using retrieval-augmented generation (RAG) to create a question-answering system about Solr and OpenSearch using an assortment of LLMs from HuggingFace and OpenAI.<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6095716 elementor-author-box--image-valign-top flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-author-box\" data-id=\"6095716\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\t\t\t\t<div  class=\"elementor-author-box__avatar\">\n\t\t\t\t\t<img src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/Akul_headshot_min-300x300.jpg\" alt=\"Picture of Akul Sethi\" loading=\"lazy\">\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\t\t\t\t\t<div >\n\t\t\t\t\t\t<div class=\"elementor-author-box__name\">\n\t\t\t\t\t\t\tAkul Sethi\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-author-box__bio\">\n\t\t\t\t\t\t<p>Search Engineer at KMW Technology<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cc9ed00 elementor-widget-divider--view-line flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-divider\" data-id=\"cc9ed00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-13892d7 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"13892d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-large\">What We\u2019ve Accomplished<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fae77c4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"fae77c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">With the recent advances in Large Language Models (LLMs), a very natural intersection with traditional Search has arisen. Historically, the only way to \u201cask\u201d a search engine a question is to provide some search keywords and the system responds with a set of ordered documents which hopefully contain an answer. In a RAG system however, you ask your question in natural language, it retrieves documents, but then goes the additional step to synthesize an answer from those documents so that the user does not have to comb through them themselves. This is done by feeding the search results (documents) as context to an LLM which may not necessarily have trained on that information. In this way, an LLM can \u201clearn\u201d about a subject at inference time.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">In this blog post, we describe the process of creating a RAG question-answering system to answer questions about Solr and OpenSearch based on technical documentation. We used an OpenSearch instance as the search backend and investigated an assortment of HuggingFace and OpenAI model LLMs.<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-166b91f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"166b91f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-large\">Architecture<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b0b4ceb flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"b0b4ceb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The system can be separated into 3 logical components:\u00a0<\/span><\/p><ol><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Search engine &amp; ingestion<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Large Language Models<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">UI website to interact with the system<\/span><\/li><\/ol><p><span style=\"font-weight: 400;\">All of these components are dockerized and are orchestrated using docker compose. The search engine is used to store documents and retrieve relevant ones during generation. The LLM component hosts a REST API which contains the heart of the RAG logic. It hits both the search engine as well as externally hosted models to produce a response. Finally, the UI website is a static front end to allow a user to interact with the system and visualize results.<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-732ab5a flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"732ab5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Search Engine &amp; Ingestion<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82b7508 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"82b7508\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We cannot just throw all of the Solr or OpenSearch documentation at an LLM and expect it to produce improved results. These excess, nonrelevant documents will just convolute the context window and for lack of a better word \u201cconfuse\u201d the LLM. We additionally would prefer to provide the documents to the LLM in order of relevance as it helps the LLM understand which documents to prioritize. There is no better device for this than a search engine: it stores documents and allows for fast retrieval of ordered, relevant documents.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">We decided to use an OpenSearch cluster for this purpose. Traditionally, search engines have used a lexical process combined with Term Frequency &#8211; Inverse Document Frequency to determine the relevance of documents. Without going into too much detail, this means that documents are split into tokens, such as words, and then for a given query, a score is calculated for each document with the following properties: the score for a document is positively correlated with how many times the query appears in it and negatively correlated with the number of times the query appears in other documents. In this way, common words such as \u201cthe\u201d, \u201cof\u201d, or \u201cthere\u201d which appear in most documents do not contribute to the score as much as rare words since a less common word is more likely relevant to the document it appears in.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">While this approach works, it does not take into consideration the semantic meaning of words. The search engine actually does not know how words relate to each other or even have a concept of language. What if there was a technique that did? This is where vector search comes to the rescue. Like the name implies, in vector search, documents are embedded into vectors which have the property that the more similar two documents are, the closer their respective vectors will lie in the embedding space.<\/span><\/p><p><span style=\"font-weight: 400;\">Again, the details are complicated, but some sort of neural network is generally used to approximate this function.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">In order to investigate how both lexical and neural retrieval affect RAG, our demo supports both. We used the Neural Search plugin as it comes natively with OpenSearch.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">To ingest documents into the engine, we used our own production grade, open-source ETL solution, <\/span><a href=\"https:\/\/github.com\/kmwtechnology\/lucille\"><span style=\"font-weight: 400;\">Lucille<\/span><\/a><span style=\"font-weight: 400;\">. This allowed us to easily specify separate sources for both OpenSearch and Solr each with their own processing pipelines in a very simple config. Since Solr has its documentation in raw web pages and OpenSearch has it in markup, different preprocessing must be applied to both. This makes the task great for Lucille. We constructed two separate stages for the task: a HTML extraction stage which uses JSoup to extract relevant portions of a webpage and a Markup extraction stage which does the same for markup.\u00a0<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-171575c flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"171575c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Large Language Models<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-56f3c58 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"56f3c58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Having a system to retrieve documents is all well and good, but there cannot be any RAG without Large Language Models. Since these models are extremely computationally expensive we used externally hosted REST APIs to run them. We chose two of the more popular platforms for this project: the HuggingFace inference and OpenAI APIs.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">When RAG was first developed it was used with question-answering LLMs. These are LLMs which, given a context and question, are trained to produce an answer from the context. What\u2019s special about them however is rather than producing an answer \u201cfrom scratch\u201d they can only return a span from the context. For example:<\/span><\/p><p><strong>Context: <\/strong><em><span style=\"font-weight: 400;\">I\u2019m a search engineer at KMW Technology and my name is <\/span><span style=\"font-weight: 400;\">Akul Sethi<\/span><span style=\"font-weight: 400;\">. I love to go hiking and play chess.<\/span><\/em><\/p><p><strong>Question: <\/strong><em><span style=\"font-weight: 400;\">What is my name?<\/span><\/em><\/p><p><strong>Answer: <\/strong><em><span style=\"font-weight: 400;\">Akul Sethi<\/span><\/em><\/p><p><span style=\"font-weight: 400;\">However, with the recent explosion in LLM development there are now LLMs specifically suited for various tasks. Our demo supports multiple LLMs to allow a user to experiment with different ways in which RAG can be used. Keep in mind that since they are all trained differently, they take prompts differently. The demo adheres to this by changing the placeholder prompt to provide an example of how the selected model receives input.<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec07015 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"ec07015\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"light elementor-heading-title elementor-size-medium\">Prompting Roberta<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-113ae55 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"113ae55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><a href=\"https:\/\/huggingface.co\/deepset\/roberta-base-squad2\"><span style=\"font-weight: 400;\">deepset\/roberta-base-squad2<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Roberta is a model that has been trained for the task of Question-Answering as described above. It is rather small at 124M parameters but for demonstration purposes it works well. This model takes its prompt in a simple question form, such as \u201c<em>How do I make a collection in Solr?\u201d.<\/em><\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6350eb flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"a6350eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"light elementor-heading-title elementor-size-medium\">Prompting Mistral<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f52a2a8 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"f52a2a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><a href=\"https:\/\/huggingface.co\/mistralai\/Mistral-7B-v0.1\"><span style=\"font-weight: 400;\">mistralai\/Mistral-7B-v0.1<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Mistral is a model that has been trained for the task of Text Generation. These models are trained by giving them a portion of a sentence and asking them to complete it. Because of this, if you want Mistral to tell you how to make a collection in Solr it would have to be phrased as: \u201c<em>A collection can be made in Solr by&#8230;<\/em>\u201d. Mistral is also a larger model than Roberta at 7.24B parameters making it second best to GPT-3 in our demo. <\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c75261 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"5c75261\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"light elementor-heading-title elementor-size-medium\">Prompting GPT-3<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-368a853 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"368a853\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><a href=\"https:\/\/platform.openai.com\/docs\/models\/gpt-3-5-turbo\"><span style=\"font-weight: 400;\">gpt-3.5-turbo-0125<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Of course no, RAG demo would be complete without the most quintessential LLM of them all: GPT-3. This is OpenAI\u2019s proprietary LLM which is generally considered to be a conversational LLM. It is the most flexible of the 3 models in how it can take its prompts but is usually used similarly to Roberta. The big difference of course is that GPT does produce an answer \u201cfrom scratch\u201d rather than a snippet from the context meaning that it can produce \u201challucinations\u201d, or completely false answers. While GPT does produce the best answers, most likely due to its size, it is something to keep in mind (the exact size of the model is not known as it isn\u2019t something which OpenAI has made public at the time of writing, but it is estimated to be in the hundreds of billions of parameters). <\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33a164b flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"33a164b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">UI Website<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbe1657 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"bbe1657\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">The final component to tie it all together is the UI Website. This allows a user to query the system while controlling the various parameters. <\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10bcf30 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-image\" data-id=\"10bcf30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" width=\"1024\" height=\"571\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/RAG_UI-1024x571.png\" class=\"attachment-large size-large wp-image-29888\" alt=\"\" srcset=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/RAG_UI-1024x571.png 1024w, https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/RAG_UI-300x167.png 300w, https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/RAG_UI-768x428.png 768w, https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/RAG_UI.png 1040w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3964b42 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"3964b42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><b>Model panel<br \/><\/b><span style=\"font-weight: 400;\">This is for the main controls which includes the model, number of documents to retrieve, whether to use neural search, and if we want an AI response to be generated.\u00a0<\/span><\/p><p><b>Source panel<br \/><\/b><span style=\"font-weight: 400;\">As the name suggests this panel allows a user to select which document sources (Solr or OpenSearch) should be queried.\u00a0<\/span><\/p><p><b>Categories panel<br \/><\/b><span style=\"font-weight: 400;\">This panel allows a user to more efficiently sift through the documents by applying filters based on the category of the document. This is populated dynamically by the front end based on the categories of the returned documents.<\/span><\/p><p><b>Selection<br \/><\/b><span style=\"font-weight: 400;\">The front end also supports a selection mode allowing the user to manually select which documents are used for generation. To enable, toggle the \u201cselect documents\u201d button. Check boxes will appear next to the documents indicating if they will be used the next time the \u201cSearch\u201d button is clicked. NOTE: when this mode is on, fresh documents will not be returned.\u00a0<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-527066f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-spacer\" data-id=\"527066f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de60b36 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"de60b36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-large\">Key Takeaways<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aef54c4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"aef54c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Retrieval<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3bf1369 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"3bf1369\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We performed a relevancy test of the results using the open source tool <\/span><a href=\"https:\/\/quepid.com\/\"><span style=\"font-weight: 400;\">Quepid<\/span><\/a><span style=\"font-weight: 400;\">. This test compared RAG results using lexical vs neural search and we noticed some significant differences. Since this is primarily a question-answering system, queries will generally be formulated as questions. No surprise there. However, documentation is generally not written in that voice. For example, take the following two queries:<\/span><\/p><p><em><span style=\"font-weight: 400;\">How do I make a collection in Solr?\u00a0<\/span><\/em><\/p><p><em><span style=\"font-weight: 400;\">How do I use facets in Solr?\u00a0<\/span><\/em><\/p><p><span style=\"font-weight: 400;\">In the first query we would like to retrieve documents pertaining to collections and in the second retrieve ones pertaining to facets. However, using lexical search we noticed that both queries would just return the same set of documents from the FAQ section of the documentation. Upon further analysis we realized that due to the nature of the documentation; all the words in those queries are abundant in the documents other than the word \u201cI\u201d. Thus, TF\/IDF incorrectly assigns a lot of weight to the word \u201cI\u201d which is why we only see documents from the FAQ section: the only section which contains user questions.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Neural search does not succumb to this problem. It is harder to see why, since explainability does not yet exist with neural networks, but it seems as though embedding models are better able to detect the significant words in the above queries in this case.\u00a0<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30d72f4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"30d72f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Prompting<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f24a87f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"f24a87f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">We found that prompting was another unexpected hurdle. The original plan was that the user question would be used as both the search query and the LLM. However, the question format which produces the best results for retrieval does not necessarily produce the best results for generation and vice versa. In fact, as each model is trained differently there is not even a format that consistently produces the best results across models. <\/span><\/p><p><span style=\"font-weight: 400;\">This is definitely a point for further improvement but currently we found that optimal results can be achieved by first using the system as a search engine with a search optimized query, selecting these documents in selection mode, and then re-running with a generation optimized query.\u00a0<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b7bef5 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"6b7bef5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-large\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82b72c3 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"82b72c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Overall, we were able to show how recent developments in Large Language Models can improve how we interact with traditional search engines using RAG. Along the way, we explored various challenges which may come up while working with RAG systems and our recommendations in dealing with them.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Our final demonstration can be used both to query Solr and OpenSearch documentation, but more importantly, allows beginners in RAG to experiment with various hyperparameters and models to get a better understanding for how this cutting edge technology works.\u00a0<\/span><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb27d42 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"fb27d42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-medium\">Interested in seeing a Demo?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e05ace flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"0e05ace\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p>If you&#8217;d like to see what we&#8217;ve built in action,\u00a0 <a href=\"https:\/\/kmwllccom.stage.site\/index.php\/contact-us\/\">Contact Us!<\/a><\/p>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-de392a5\" data-id=\"de392a5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-2315efe\" data-id=\"2315efe\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f7dee41 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"f7dee41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"title-h6 elementor-heading-title elementor-size-small\">Share Post<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1880099 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-thegem-social-sharing\" data-id=\"1880099\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"thegem-social-sharing.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n        <div id=\"thegem-custom-69da4638ab2152396\" class=\"thegem-te-socials-sharing socials-sharing--left socials-sharing--simple socials-sharing--tiny\">\n            <div class=\"socials-sharing\">\n                <ul>\n\t\t\t\t\t                        <li><a class=\"socials-item facebook\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fkmwllc.com%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F29895\" title=\"Facebook\"><i class=\"socials-item-icon facebook\"><\/i><\/a><\/li>\n\t\t\t\t\t\n\t\t\t\t\t                        <li><a class=\"socials-item twitter\" target=\"_blank\" href=\"https:\/\/twitter.com\/intent\/tweet?text=&#038;url=https%3A%2F%2Fkmwllc.com%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F29895\" title=\"Twitter\"><i class=\"socials-item-icon twitter\"><\/i><\/a><\/li>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t                        <li><a class=\"socials-item linkedin\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fkmwllc.com%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F29895&#038;title=&amp;summary=\" title=\"LinkedIn\"><i class=\"socials-item-icon linkedin\"><\/i><\/a><\/li>\n\t\t\t\t\t\n\t\t\t\t\t                        <li><a class=\"socials-item reddit\" target=\"_blank\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fkmwllc.com%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F29895&#038;title=\" title=\"Reddit\"><i class=\"socials-item-icon reddit\"><\/i><\/a><\/li>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t                        <li><a class=\"socials-item threads\" target=\"_blank\" href=\"https:\/\/www.threads.net\/intent\/post?text=https%3A%2F%2Fkmwllc.com%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F29895\" title=\"Threads\"><i class=\"socials-item-icon threads\"><\/i><\/a><\/li>\n\t\t\t\t\t                <\/ul>\n            <\/div>\n        <\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6308251 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\" data-id=\"6308251\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"title-h6 elementor-heading-title elementor-size-small\">More From the KMW Blog<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9db1d5c flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-thegem-bloglist\" data-id=\"9db1d5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;thegem_elementor_preset&quot;:&quot;compact-tiny-2&quot;,&quot;source&quot;:[&quot;posts&quot;],&quot;exclude_blog_posts_type&quot;:&quot;current&quot;,&quot;order_by&quot;:&quot;date&quot;,&quot;query_type&quot;:&quot;post&quot;,&quot;order&quot;:&quot;default&quot;,&quot;items_per_page&quot;:8}\" data-widget_type=\"thegem-bloglist.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"bloglist blog clearfix  blog-style-compact-tiny-2   \" data-page=\"1\" data-paged=\"1\" data-next-page=\"2\" data-pages-count=\"3\" data-load-more-action=\"thegem_bloglist_load_more\">\n\t\t\t\r\n<article id=\"post-30279\" class=\"post-item clearfix post-30279 post type-post status-publish format-standard has-post-thumbnail category-elasticsearch category-lucene category-performance\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2026\/01\/10\/the-mystery-of-elasticsearch-8-17-query-performance-degradation\/\"><img width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2026\/01\/blog_elasticperftest_900x1200-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_elasticperftest_900x1200\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2026\/01\/10\/the-mystery-of-elasticsearch-8-17-query-performance-degradation\/\" rel=\"bookmark\">The Mystery of Elasticsearch 8.17 Query Performance Degradation<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Henry Caldwell<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">January 10, 2026<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-30279 -->\r\n\r\n<article id=\"post-30125\" class=\"post-item clearfix post-30125 post type-post status-publish format-standard has-post-thumbnail category-ai category-performance category-relevancy category-search category-uncategorized\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2025\/10\/04\/whats-the-best-way-to-do-entity-extraction-for-search\/\"><img width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2025\/10\/blogpost_entityex-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blogpost_entityex\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2025\/10\/04\/whats-the-best-way-to-do-entity-extraction-for-search\/\" rel=\"bookmark\">What&#8217;s the best way to do entity extraction for search?<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Jacob Squatrito<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">October 4, 2025<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-30125 -->\r\n\r\n<article id=\"post-30155\" class=\"post-item clearfix post-30155 post type-post status-publish format-standard has-post-thumbnail category-ai\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2025\/05\/20\/mcp-in-llm-apps-overkill-or-integral\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2025\/05\/blog_mcp_1200x900_min-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_mcp_1200x900_min\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2025\/05\/20\/mcp-in-llm-apps-overkill-or-integral\/\" rel=\"bookmark\">MCP in LLM Apps: Overkill or Integral?<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Kevin Butler<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">May 20, 2025<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-30155 -->\r\n\r\n<article id=\"post-29639\" class=\"post-item clearfix post-29639 post type-post status-publish format-standard has-post-thumbnail category-lucene category-opensearch category-performance category-search\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2024\/05\/30\/duplicate-terms-aggregation-plug-in-for-opensearch\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/05\/blog_opensearch-agg1200x900-min-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_opensearch-agg1200x900-min\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2024\/05\/30\/duplicate-terms-aggregation-plug-in-for-opensearch\/\" rel=\"bookmark\">Duplicate Terms Aggregation Plug-in for OpenSearch<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Abijit Rangesh<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">May 30, 2024<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-29639 -->\r\n\r\n<article id=\"post-28464\" class=\"post-item clearfix post-28464 post type-post status-publish format-standard has-post-thumbnail category-ai category-opensearch category-search category-vector-search\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2023\/03\/29\/building-vector-search-on-opensearch\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/05\/blog_vectorSearch_1200x900-min-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_vectorSearch_1200x900-min\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2023\/03\/29\/building-vector-search-on-opensearch\/\" rel=\"bookmark\">Building A Vector Search Application on OpenSearch<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Jake Horban<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">March 29, 2023<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-28464 -->\r\n\r\n<article id=\"post-28075\" class=\"post-item clearfix post-28075 post type-post status-publish format-standard has-post-thumbnail category-elasticsearch category-search category-solr\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2022\/12\/17\/ingesting-solr-logs-with-the-elk-stack\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2022\/12\/blog_LogAnalysisElk_min-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_LogAnalysisElk_min\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2022\/12\/17\/ingesting-solr-logs-with-the-elk-stack\/\" rel=\"bookmark\">Ingesting Solr Logs with the ELK Stack<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Kira Traynor<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">December 17, 2022<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-28075 -->\r\n\r\n<article id=\"post-27467\" class=\"post-item clearfix post-27467 post type-post status-publish format-standard has-post-thumbnail category-search category-solr\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2022\/11\/17\/solrs-query-elevation-component-now-supports-filter-exclusions\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2022\/11\/blog_QEC1200x900-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_QEC1200x900\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2022\/11\/17\/solrs-query-elevation-component-now-supports-filter-exclusions\/\" rel=\"bookmark\">Solr&#8217;s query elevation component now supports filter exclusions<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Rudi Seitz<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">November 17, 2022<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-27467 -->\r\n\r\n<article id=\"post-26659\" class=\"post-item clearfix post-26659 post type-post status-publish format-standard has-post-thumbnail category-search\">\r\n\t\t\t<div class=\"gem-compact-tiny-left\">\r\n\t\t\t<div class=\"gem-news-item-image\">\r\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2022\/09\/30\/the-kmw-search-audit\/\"><img loading=\"lazy\" width=\"144\" height=\"144\" src=\"https:\/\/kmwllc.com\/wp-content\/uploads\/2022\/09\/blog_KMWSearchAudit1200x900-thegem-news-carousel.png\" class=\"img-responsive wp-post-image\" alt=\"blog_KMWSearchAudit1200x900\" \/><\/a>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\r\n\t<div class=\"gem-compact-tiny-right\">\r\n\t\t<div class=\"gem-compact-item-content\">\r\n\t\t\t<div class=\"tiny-post-title gem-news-item-title text-body-tiny\"><a class=\"reverse-link-color \" href=\"https:\/\/kmwllc.com\/index.php\/2022\/09\/30\/the-kmw-search-audit\/\" rel=\"bookmark\">The KMW Search Audit<\/a><\/div>\t\t<\/div>\r\n\t\t<div class=\"post-meta\">\r\n\t\t\t<div class=\"entry-meta clearfix text-body-tiny\">\r\n\t\t\t\t<div class=\"post-meta-left gem-news-item-date\">\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-author tiny-post-author\">By Brian Nauheimer<\/span><br>\t\t\t\t\t<span\r\n\t\t\t\t\t\t\tclass=\"post-meta-date tiny-post-date\">September 30, 2022<\/span>\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"post-meta-right\">\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t<\/div><!-- .entry-meta -->\r\n\t\t<\/div>\r\n\r\n\t<\/div>\r\n<\/article><!-- #post-26659 -->\r\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div><\/div>\r\n\t\t<\/section>\r\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c4daf12 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c4daf12\" data-element_type=\"section\" data-e-type=\"section\">\r\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-thegem\"><div class=\"elementor-row\">\r\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-eaac0ae\" data-id=\"eaac0ae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d6d4e70 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-post-navigation\" data-id=\"d6d4e70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-navigation.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-post-navigation\" role=\"navigation\" aria-label=\"Post Navigation\">\n\t\t\t<div class=\"elementor-post-navigation__prev elementor-post-navigation__link\">\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2022\/07\/02\/search-engine-upgrade\/\" rel=\"prev\"><span class=\"elementor-post-navigation__link__prev\"><span class=\"post-navigation__prev--label\">Previous Post<\/span><span class=\"post-navigation__prev--title\">Search Engine Upgrade<\/span><\/span><\/a>\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-post-navigation__next elementor-post-navigation__link\">\n\t\t\t\t<a href=\"https:\/\/kmwllc.com\/index.php\/2022\/11\/17\/solrs-query-elevation-component-now-supports-filter-exclusions\/\" rel=\"next\"><span class=\"elementor-post-navigation__link__next\"><span class=\"post-navigation__next--label\">Next Post<\/span><span class=\"post-navigation__next--title\">Solr&#8217;s query elevation component now supports filter exclusions<\/span><\/span><\/a>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div><\/div>\r\n\t\t<\/section>\r\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>We describe the process of using retrieval-augmented generation (RAG) to create a question-answering system about Solr and OpenSearch using an assortment of LLMs from HuggingFace and OpenAI.<\/p>\n","protected":false},"author":12,"featured_media":29903,"comment_status":"closed","ping_status":"open","sticky":false,"template":"single-fullwidth.php","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[35,43,47,36,37,48],"tags":[],"class_list":{"0":"post-29895","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ai","8":"category-opensearch","9":"category-relevancy","10":"category-search","11":"category-solr","12":"category-vector-search"},"aioseo_notices":[],"post_meta_fields":{"_wp_page_template":["single-fullwidth.php"],"_edit_lock":["1748876957:7"],"_edit_last":["7"],"thegem_post_item_gallery_images":[""],"_customize_sidebars":["yes"],"thegem_post_general_item_data":["a:26:{s:20:\"post_layout_settings\";s:6:\"custom\";s:18:\"post_layout_source\";s:7:\"default\";s:21:\"post_builder_template\";s:1:\"0\";s:26:\"show_featured_posts_slider\";i:0;s:21:\"show_featured_content\";s:7:\"default\";s:10:\"video_type\";s:7:\"youtube\";s:5:\"video\";s:0:\"\";s:18:\"video_aspect_ratio\";s:0:\"\";s:20:\"video_play_on_mobile\";s:0:\"\";s:13:\"video_overlay\";s:0:\"\";s:12:\"video_poster\";s:0:\"\";s:11:\"video_start\";s:16:\"open_in_lightbox\";s:10:\"quote_text\";s:0:\"\";s:12:\"quote_author\";s:0:\"\";s:16:\"quote_background\";s:0:\"\";s:18:\"quote_author_color\";s:0:\"\";s:5:\"audio\";s:0:\"\";s:7:\"gallery\";i:0;s:18:\"gallery_autoscroll\";i:0;s:9:\"highlight\";i:0;s:14:\"highlight_type\";s:7:\"squared\";s:15:\"highlight_style\";s:7:\"default\";s:31:\"highlight_title_left_background\";s:9:\"#00BCD4FF\";s:26:\"highlight_title_left_color\";s:9:\"#FFFFFFFF\";s:32:\"highlight_title_right_background\";s:9:\"#00BCD4FF\";s:27:\"highlight_title_right_color\";s:9:\"#FFFFFFFF\";}"],"thegem_show_featured_posts_slider":["0"],"thegem_post_page_elements_data":["a:12:{s:13:\"post_elements\";s:6:\"custom\";s:11:\"show_author\";i:0;s:16:\"blog_hide_author\";i:1;s:14:\"blog_hide_date\";i:1;s:26:\"blog_hide_date_in_blog_cat\";i:1;s:20:\"blog_hide_categories\";i:1;s:14:\"blog_hide_tags\";i:1;s:18:\"blog_hide_comments\";i:1;s:15:\"blog_hide_likes\";i:1;s:20:\"blog_hide_navigation\";i:1;s:17:\"blog_hide_socials\";i:1;s:17:\"blog_hide_realted\";i:0;}"],"thegem_popups_data":["a:2:{s:20:\"popups_layout_source\";s:7:\"default\";s:12:\"thegemPopups\";a:1:{i:0;a:14:{s:6:\"active\";s:0:\"\";s:8:\"template\";s:0:\"\";s:8:\"triggers\";a:0:{}s:23:\"show_after_x_page_views\";s:0:\"\";s:15:\"show_page_views\";s:1:\"2\";s:18:\"show_up_to_x_times\";s:0:\"\";s:16:\"show_popup_count\";s:1:\"1\";s:11:\"cookie_time\";s:2:\"30\";s:24:\"hide_for_logged_in_users\";s:0:\"\";s:14:\"show_on_mobile\";s:0:\"\";s:14:\"show_on_tablet\";s:0:\"\";s:17:\"images_preloading\";s:0:\"\";s:2:\"id\";s:26:\"thegem-popup-1352086422307\";s:3:\"key\";i:0;}}}"],"thegem_page_data":["a:195:{s:10:\"title_show\";s:7:\"default\";s:11:\"title_style\";s:1:\"2\";s:14:\"title_template\";s:5:\"27835\";s:23:\"title_use_page_settings\";i:1;s:12:\"title_xlarge\";i:0;s:18:\"title_rich_content\";i:0;s:13:\"title_content\";s:0:\"\";s:21:\"title_background_type\";s:5:\"color\";s:22:\"title_background_image\";s:0:\"\";s:29:\"title_background_image_repeat\";i:0;s:27:\"title_background_position_x\";s:6:\"center\";s:27:\"title_background_position_y\";s:3:\"top\";s:21:\"title_background_size\";s:5:\"cover\";s:28:\"title_background_image_color\";s:0:\"\";s:30:\"title_background_image_overlay\";s:0:\"\";s:30:\"title_background_gradient_type\";s:6:\"linear\";s:31:\"title_background_gradient_angle\";i:90;s:34:\"title_background_gradient_position\";s:13:\"center center\";s:38:\"title_background_gradient_point1_color\";s:9:\"#00BCD4BF\";s:41:\"title_background_gradient_point1_position\";i:0;s:38:\"title_background_gradient_point2_color\";s:9:\"#354093BF\";s:41:\"title_background_gradient_point2_position\";i:100;s:23:\"title_background_effect\";s:6:\"normal\";s:36:\"title_background_ken_burns_direction\";s:7:\"zoom_in\";s:43:\"title_background_ken_burns_transition_speed\";i:15000;s:37:\"title_background_video_play_on_mobile\";i:0;s:22:\"title_background_color\";s:7:\"#333144\";s:27:\"title_background_video_type\";s:0:\"\";s:22:\"title_background_video\";s:0:\"\";s:35:\"title_background_video_aspect_ratio\";s:0:\"\";s:36:\"title_background_video_overlay_color\";s:0:\"\";s:38:\"title_background_video_overlay_opacity\";s:0:\"\";s:29:\"title_background_video_poster\";s:0:\"\";s:19:\"title_menu_on_video\";s:0:\"\";s:16:\"title_text_color\";s:7:\"#ffffff\";s:24:\"title_excerpt_text_color\";s:7:\"#ffffff\";s:13:\"title_excerpt\";s:0:\"\";s:17:\"title_title_width\";i:0;s:19:\"title_excerpt_width\";i:0;s:22:\"title_font_preset_html\";s:0:\"\";s:23:\"title_font_preset_style\";s:0:\"\";s:24:\"title_font_preset_weight\";s:0:\"\";s:27:\"title_font_preset_transform\";s:0:\"\";s:30:\"title_excerpt_font_preset_html\";s:0:\"\";s:31:\"title_excerpt_font_preset_style\";s:0:\"\";s:32:\"title_excerpt_font_preset_weight\";s:0:\"\";s:35:\"title_excerpt_font_preset_transform\";s:0:\"\";s:17:\"title_padding_top\";i:80;s:24:\"title_padding_top_tablet\";i:80;s:24:\"title_padding_top_mobile\";i:80;s:20:\"title_padding_bottom\";i:80;s:27:\"title_padding_bottom_tablet\";i:80;s:27:\"title_padding_bottom_mobile\";i:80;s:18:\"title_padding_left\";i:0;s:25:\"title_padding_left_tablet\";i:0;s:25:\"title_padding_left_mobile\";i:0;s:19:\"title_padding_right\";i:0;s:26:\"title_padding_right_tablet\";i:0;s:26:\"title_padding_right_mobile\";i:0;s:16:\"title_top_margin\";s:0:\"\";s:23:\"title_top_margin_tablet\";i:0;s:23:\"title_top_margin_mobile\";i:0;s:24:\"title_excerpt_top_margin\";i:18;s:31:\"title_excerpt_top_margin_tablet\";i:18;s:31:\"title_excerpt_top_margin_mobile\";i:18;s:17:\"title_breadcrumbs\";i:1;s:15:\"title_alignment\";s:0:\"\";s:15:\"title_icon_pack\";s:7:\"elegant\";s:10:\"title_icon\";s:0:\"\";s:16:\"title_icon_color\";s:0:\"\";s:18:\"title_icon_color_2\";s:0:\"\";s:27:\"title_icon_background_color\";s:0:\"\";s:16:\"title_icon_shape\";s:6:\"circle\";s:23:\"title_icon_border_color\";s:0:\"\";s:15:\"title_icon_size\";s:5:\"large\";s:16:\"title_icon_style\";s:0:\"\";s:18:\"title_icon_opacity\";d:0;s:25:\"breadcrumbs_default_color\";s:0:\"\";s:24:\"breadcrumbs_active_color\";s:0:\"\";s:23:\"breadcrumbs_hover_color\";s:0:\"\";s:27:\"title_breadcrumbs_alignment\";s:6:\"center\";s:18:\"header_transparent\";i:0;s:14:\"header_opacity\";i:50;s:22:\"header_menu_logo_light\";i:0;s:20:\"disable_fixed_header\";i:0;s:23:\"sticky_header_on_mobile\";s:0:\"\";s:20:\"header_hide_top_area\";s:7:\"default\";s:27:\"header_hide_top_area_tablet\";s:7:\"default\";s:27:\"header_hide_top_area_mobile\";s:7:\"default\";s:9:\"menu_show\";s:7:\"default\";s:12:\"menu_options\";s:7:\"default\";s:18:\"header_custom_menu\";i:0;s:27:\"header_top_area_transparent\";i:0;s:23:\"header_top_area_opacity\";i:50;s:16:\"top_area_options\";s:7:\"default\";s:13:\"header_source\";s:7:\"default\";s:14:\"header_builder\";s:1:\"0\";s:29:\"header_builder_sticky_desktop\";i:0;s:28:\"header_builder_sticky_mobile\";i:0;s:34:\"header_builder_sticky_hide_desktop\";i:0;s:33:\"header_builder_sticky_hide_mobile\";i:1;s:21:\"header_builder_sticky\";s:1:\"0\";s:29:\"header_builder_sticky_opacity\";i:80;s:26:\"header_builder_light_color\";s:7:\"#FFFFFF\";s:32:\"header_builder_light_color_hover\";s:7:\"#00bcd4\";s:20:\"main_background_type\";s:5:\"color\";s:21:\"main_background_color\";s:7:\"#ffffff\";s:21:\"main_background_image\";s:60:\"https:\/\/kmwllc.com\/wp-content\/uploads\/2022\/11\/Artboard-3.png\";s:28:\"main_background_image_repeat\";s:1:\"1\";s:26:\"main_background_position_x\";s:4:\"left\";s:26:\"main_background_position_y\";s:3:\"top\";s:20:\"main_background_size\";s:4:\"auto\";s:27:\"main_background_image_color\";s:0:\"\";s:29:\"main_background_image_overlay\";s:0:\"\";s:29:\"main_background_gradient_type\";s:6:\"linear\";s:30:\"main_background_gradient_angle\";s:2:\"90\";s:33:\"main_background_gradient_position\";s:0:\"\";s:37:\"main_background_gradient_point1_color\";s:9:\"#E9ECDAFF\";s:40:\"main_background_gradient_point1_position\";s:1:\"0\";s:37:\"main_background_gradient_point2_color\";s:9:\"#D5F6FAFF\";s:40:\"main_background_gradient_point2_position\";s:3:\"100\";s:23:\"main_background_pattern\";s:0:\"\";s:19:\"content_padding_top\";i:50;s:26:\"content_padding_top_tablet\";i:30;s:26:\"content_padding_top_mobile\";i:20;s:22:\"content_padding_bottom\";i:50;s:29:\"content_padding_bottom_tablet\";i:30;s:29:\"content_padding_bottom_mobile\";i:20;s:20:\"content_area_options\";s:6:\"custom\";s:18:\"footer_custom_show\";s:7:\"default\";s:13:\"footer_custom\";s:5:\"28054\";s:19:\"footer_hide_default\";s:7:\"default\";s:23:\"footer_hide_widget_area\";s:7:\"default\";s:16:\"effects_disabled\";i:0;s:17:\"effects_one_pager\";i:0;s:23:\"effects_parallax_footer\";i:0;s:24:\"effects_no_bottom_margin\";i:0;s:21:\"effects_no_top_margin\";i:0;s:19:\"redirect_to_subpage\";i:0;s:19:\"effects_hide_header\";s:7:\"default\";s:19:\"effects_hide_footer\";s:7:\"default\";s:21:\"effects_page_scroller\";i:0;s:28:\"effects_page_scroller_mobile\";i:0;s:26:\"effects_page_scroller_type\";s:8:\"advanced\";s:22:\"fullpage_disabled_dots\";i:0;s:19:\"fullpage_style_dots\";s:7:\"outline\";s:31:\"fullpage_disabled_tooltips_dots\";i:0;s:25:\"fullpage_fixed_background\";b:0;s:26:\"fullpage_enable_continuous\";i:0;s:24:\"fullpage_disabled_mobile\";i:0;s:22:\"fullpage_scroll_effect\";s:6:\"normal\";s:21:\"enable_page_preloader\";s:7:\"default\";s:14:\"slideshow_type\";s:0:\"\";s:19:\"slideshow_slideshow\";s:0:\"\";s:21:\"slideshow_layerslider\";s:0:\"\";s:19:\"slideshow_revslider\";s:0:\"\";s:19:\"slideshow_preloader\";i:0;s:12:\"sidebar_show\";s:7:\"default\";s:16:\"sidebar_position\";s:5:\"right\";s:14:\"sidebar_sticky\";i:0;s:24:\"product_header_separator\";i:0;s:23:\"page_layout_breadcrumbs\";s:7:\"default\";s:37:\"page_layout_breadcrumbs_default_color\";s:9:\"#99A9B5FF\";s:36:\"page_layout_breadcrumbs_active_color\";s:9:\"#3C3950FF\";s:35:\"page_layout_breadcrumbs_hover_color\";s:9:\"#3C3950FF\";s:33:\"page_layout_breadcrumbs_alignment\";s:4:\"left\";s:38:\"page_layout_breadcrumbs_bottom_spacing\";s:1:\"0\";s:37:\"page_layout_breadcrumbs_shop_category\";i:0;s:26:\"delay_js_execution_desktop\";i:0;s:13:\"disable_cache\";i:0;s:23:\"custom_fields_item_data\";N;s:31:\"title_breadcrumbs_shop_category\";s:1:\"0\";s:20:\"title_padding_locked\";s:0:\"\";s:27:\"title_padding_tablet_locked\";s:0:\"\";s:27:\"title_padding_mobile_locked\";s:0:\"\";s:24:\"title_background_pattern\";s:0:\"\";s:30:\"title_background_video_overlay\";s:0:\"\";s:16:\"title_icon__pack\";s:0:\"\";s:21:\"title_icon_shape_show\";s:0:\"\";s:25:\"footer_widget_woocommerce\";s:1:\"1\";s:25:\"delay_js_execution_mobile\";s:1:\"0\";s:18:\"custom_fields_data\";s:0:\"\";s:14:\"page_item_data\";a:3:{s:20:\"page_layout_settings\";s:7:\"default\";s:18:\"page_layout_source\";s:7:\"default\";s:21:\"page_builder_template\";s:0:\"\";}s:19:\"portfolio_item_data\";a:35:{s:25:\"portfolio_layout_settings\";s:7:\"default\";s:23:\"portfolio_layout_source\";s:7:\"default\";s:26:\"portfolio_builder_template\";s:0:\"\";s:8:\"back_url\";s:0:\"\";s:9:\"highlight\";s:0:\"\";s:14:\"highlight_type\";s:0:\"\";s:14:\"overview_title\";s:0:\"\";s:16:\"overview_summary\";s:0:\"\";s:12:\"project_link\";s:0:\"\";s:12:\"project_text\";s:0:\"\";s:9:\"fullwidth\";s:0:\"\";s:19:\"project_button_show\";s:0:\"\";s:20:\"grid_appearance_type\";s:14:\"featured_image\";s:30:\"grid_appearance_featured_image\";s:0:\"\";s:19:\"grid_appearance_gif\";s:0:\"\";s:25:\"grid_appearance_gif_start\";s:8:\"autoplay\";s:26:\"grid_appearance_gif_poster\";s:0:\"\";s:27:\"grid_appearance_gif_preload\";s:0:\"\";s:21:\"grid_appearance_video\";s:0:\"\";s:26:\"grid_appearance_video_type\";s:0:\"\";s:34:\"grid_appearance_video_aspect_ratio\";s:0:\"\";s:36:\"grid_appearance_video_play_on_mobile\";s:0:\"\";s:29:\"grid_appearance_video_overlay\";s:0:\"\";s:28:\"grid_appearance_video_poster\";s:0:\"\";s:27:\"grid_appearance_video_start\";s:8:\"autoplay\";s:34:\"grid_appearance_gallery_autoscroll\";s:1:\"1\";s:40:\"grid_appearance_gallery_autoscroll_speed\";s:4:\"3000\";s:30:\"grid_appearance_image_behavior\";s:12:\"link_to_page\";s:28:\"grid_appearance_gif_behavior\";s:12:\"link_to_page\";s:30:\"grid_appearance_video_behavior\";s:12:\"link_to_page\";s:32:\"grid_appearance_gallery_behavior\";s:12:\"link_to_page\";s:31:\"grid_appearance_behavior_target\";s:5:\"_self\";s:36:\"grid_appearance_behavior_custom_link\";s:0:\"\";s:43:\"grid_appearance_behavior_custom_link_target\";s:5:\"_self\";s:30:\"grid_appearance_lightbox_image\";s:0:\"\";}s:23:\"portfolio_elements_data\";a:7:{s:23:\"portfolio_page_elements\";s:7:\"default\";s:19:\"portfolio_hide_date\";s:0:\"\";s:19:\"portfolio_hide_sets\";s:0:\"\";s:20:\"portfolio_hide_likes\";s:0:\"\";s:22:\"portfolio_hide_socials\";s:0:\"\";s:29:\"portfolio_hide_top_navigation\";s:0:\"\";s:32:\"portfolio_hide_bottom_navigation\";s:0:\"\";}s:17:\"product_item_data\";a:116:{s:9:\"highlight\";s:0:\"\";s:14:\"highlight_type\";s:7:\"squared\";s:28:\"thegem_product_disable_hover\";s:1:\"0\";s:10:\"size_guide\";s:7:\"default\";s:16:\"size_guide_image\";s:0:\"\";s:15:\"size_guide_text\";s:10:\"Size guide\";s:23:\"product_layout_settings\";s:7:\"default\";s:21:\"product_layout_source\";s:7:\"default\";s:24:\"product_builder_template\";s:0:\"\";s:19:\"product_page_layout\";s:7:\"default\";s:25:\"product_page_layout_style\";s:15:\"horizontal_tabs\";s:28:\"product_page_layout_centered\";s:1:\"0\";s:39:\"product_page_layout_centered_top_margin\";s:2:\"42\";s:34:\"product_page_layout_centered_boxed\";s:1:\"0\";s:40:\"product_page_layout_centered_boxed_color\";s:0:\"\";s:29:\"product_page_layout_fullwidth\";s:1:\"0\";s:26:\"product_page_layout_sticky\";s:1:\"0\";s:33:\"product_page_layout_sticky_offset\";s:1:\"0\";s:28:\"product_page_skeleton_loader\";s:1:\"0\";s:30:\"product_page_layout_background\";s:0:\"\";s:30:\"product_page_layout_title_area\";s:8:\"disabled\";s:29:\"product_page_ajax_add_to_cart\";s:1:\"1\";s:31:\"product_page_desc_review_source\";s:17:\"extra_description\";s:31:\"product_page_desc_review_layout\";s:4:\"tabs\";s:42:\"product_page_desc_review_layout_tabs_style\";s:10:\"horizontal\";s:46:\"product_page_desc_review_layout_tabs_alignment\";s:4:\"left\";s:44:\"product_page_desc_review_layout_acc_position\";s:13:\"below_gallery\";s:65:\"product_page_desc_review_layout_one_by_one_description_background\";s:9:\"#F4F6F7FF\";s:69:\"product_page_desc_review_layout_one_by_one_additional_info_background\";s:9:\"#FFFFFFFF\";s:61:\"product_page_desc_review_layout_one_by_one_reviews_background\";s:9:\"#F4F6F7FF\";s:36:\"product_page_desc_review_description\";s:1:\"1\";s:42:\"product_page_desc_review_description_title\";s:11:\"Description\";s:40:\"product_page_desc_review_additional_info\";s:1:\"1\";s:46:\"product_page_desc_review_additional_info_title\";s:15:\"Additional Info\";s:32:\"product_page_desc_review_reviews\";s:1:\"1\";s:38:\"product_page_desc_review_reviews_title\";s:7:\"Reviews\";s:36:\"product_page_button_add_to_cart_text\";s:11:\"Add to Cart\";s:36:\"product_page_button_add_to_cart_icon\";s:4:\"f1e7\";s:41:\"product_page_button_add_to_cart_icon_pack\";s:8:\"material\";s:45:\"product_page_button_add_to_cart_icon_position\";s:4:\"left\";s:40:\"product_page_button_add_to_wishlist_icon\";s:4:\"f37b\";s:45:\"product_page_button_add_to_wishlist_icon_pack\";s:8:\"material\";s:42:\"product_page_button_added_to_wishlist_icon\";s:4:\"f377\";s:47:\"product_page_button_added_to_wishlist_icon_pack\";s:8:\"material\";s:41:\"product_page_button_clear_attributes_text\";s:15:\"Clear selection\";s:31:\"product_page_elements_prev_next\";s:1:\"1\";s:38:\"product_page_elements_preview_on_hover\";s:1:\"1\";s:34:\"product_page_elements_back_to_shop\";s:1:\"1\";s:39:\"product_page_elements_back_to_shop_link\";s:9:\"main_shop\";s:50:\"product_page_elements_back_to_shop_link_custom_url\";s:0:\"\";s:27:\"product_page_elements_title\";s:1:\"1\";s:32:\"product_page_elements_attributes\";s:1:\"0\";s:37:\"product_page_elements_attributes_data\";s:0:\"\";s:29:\"product_page_elements_reviews\";s:1:\"1\";s:34:\"product_page_elements_reviews_text\";s:16:\"customer reviews\";s:27:\"product_page_elements_price\";s:1:\"1\";s:41:\"product_page_elements_price_strikethrough\";s:1:\"1\";s:33:\"product_page_elements_description\";s:1:\"1\";s:34:\"product_page_elements_stock_amount\";s:1:\"1\";s:39:\"product_page_elements_stock_amount_text\";s:17:\"Products in stock\";s:32:\"product_page_elements_size_guide\";s:1:\"1\";s:25:\"product_page_elements_sku\";s:1:\"1\";s:31:\"product_page_elements_sku_title\";s:3:\"SKU\";s:32:\"product_page_elements_categories\";s:1:\"1\";s:38:\"product_page_elements_categories_title\";s:10:\"Categories\";s:26:\"product_page_elements_tags\";s:1:\"1\";s:32:\"product_page_elements_tags_title\";s:4:\"Tags\";s:27:\"product_page_elements_share\";s:1:\"1\";s:33:\"product_page_elements_share_title\";s:5:\"Share\";s:36:\"product_page_elements_share_facebook\";s:1:\"1\";s:35:\"product_page_elements_share_twitter\";s:1:\"1\";s:37:\"product_page_elements_share_pinterest\";s:1:\"1\";s:34:\"product_page_elements_share_tumblr\";s:1:\"1\";s:36:\"product_page_elements_share_linkedin\";s:1:\"1\";s:34:\"product_page_elements_share_reddit\";s:1:\"1\";s:28:\"product_page_elements_upsell\";s:1:\"1\";s:34:\"product_page_elements_upsell_title\";s:17:\"You may also like\";s:44:\"product_page_elements_upsell_title_alignment\";s:4:\"left\";s:34:\"product_page_elements_upsell_items\";s:2:\"-1\";s:44:\"product_page_elements_upsell_columns_desktop\";s:2:\"4x\";s:43:\"product_page_elements_upsell_columns_tablet\";s:2:\"3x\";s:43:\"product_page_elements_upsell_columns_mobile\";s:2:\"2x\";s:40:\"product_page_elements_upsell_columns_100\";s:1:\"5\";s:29:\"product_page_elements_related\";s:1:\"1\";s:35:\"product_page_elements_related_title\";s:16:\"Related Products\";s:45:\"product_page_elements_related_title_alignment\";s:4:\"left\";s:35:\"product_page_elements_related_items\";s:2:\"-1\";s:45:\"product_page_elements_related_columns_desktop\";s:2:\"4x\";s:44:\"product_page_elements_related_columns_tablet\";s:2:\"3x\";s:44:\"product_page_elements_related_columns_mobile\";s:2:\"2x\";s:41:\"product_page_elements_related_columns_100\";s:1:\"5\";s:28:\"product_page_additional_tabs\";s:7:\"default\";s:33:\"product_page_additional_tabs_data\";s:0:\"\";s:15:\"product_gallery\";s:7:\"enabled\";s:20:\"product_gallery_type\";s:10:\"horizontal\";s:31:\"product_gallery_thumb_on_mobile\";s:1:\"0\";s:31:\"product_gallery_column_position\";s:4:\"left\";s:30:\"product_gallery_thumb_position\";s:4:\"left\";s:28:\"product_gallery_column_width\";s:2:\"50\";s:26:\"product_gallery_show_image\";s:5:\"hover\";s:27:\"product_gallery_image_ratio\";s:0:\"\";s:31:\"product_gallery_grid_image_size\";s:7:\"default\";s:32:\"product_gallery_grid_image_ratio\";s:0:\"\";s:20:\"product_gallery_zoom\";s:1:\"1\";s:24:\"product_gallery_lightbox\";s:1:\"1\";s:22:\"product_gallery_labels\";s:1:\"1\";s:26:\"product_gallery_label_sale\";s:1:\"1\";s:25:\"product_gallery_label_new\";s:1:\"1\";s:31:\"product_gallery_label_out_stock\";s:1:\"1\";s:27:\"product_gallery_auto_height\";s:1:\"1\";s:30:\"product_gallery_elements_color\";s:0:\"\";s:28:\"product_gallery_grid_columns\";s:2:\"1x\";s:25:\"product_gallery_grid_gaps\";s:2:\"42\";s:30:\"product_gallery_grid_gaps_hide\";s:1:\"0\";s:31:\"product_gallery_grid_top_margin\";s:1:\"0\";s:30:\"product_gallery_video_autoplay\";s:1:\"0\";}s:25:\"product_archive_item_data\";a:2:{s:29:\"product_archive_layout_source\";s:7:\"default\";s:32:\"product_archive_builder_template\";s:0:\"\";}s:22:\"blog_archive_item_data\";a:3:{s:28:\"blog_archive_layout_settings\";s:7:\"default\";s:26:\"blog_archive_layout_source\";s:7:\"default\";s:29:\"blog_archive_builder_template\";s:0:\"\";}s:24:\"custom_archive_item_data\";a:3:{s:15:\"layout_settings\";s:7:\"default\";s:13:\"layout_source\";s:7:\"default\";s:16:\"builder_template\";s:0:\"\";}s:21:\"custom_post_item_data\";a:26:{s:15:\"layout_settings\";s:7:\"default\";s:13:\"layout_source\";s:7:\"default\";s:16:\"builder_template\";s:0:\"\";s:10:\"video_type\";s:0:\"\";s:18:\"video_aspect_ratio\";s:0:\"\";s:5:\"video\";s:0:\"\";s:20:\"video_play_on_mobile\";s:0:\"\";s:13:\"video_overlay\";s:0:\"\";s:12:\"video_poster\";s:0:\"\";s:11:\"video_start\";s:16:\"open_in_lightbox\";s:5:\"audio\";s:0:\"\";s:10:\"quote_text\";s:0:\"\";s:12:\"quote_author\";s:0:\"\";s:16:\"quote_background\";s:0:\"\";s:18:\"quote_author_color\";s:0:\"\";s:7:\"gallery\";s:0:\"\";s:18:\"gallery_autoscroll\";s:4:\"1500\";s:26:\"show_featured_posts_slider\";s:0:\"\";s:21:\"show_featured_content\";s:0:\"\";s:9:\"highlight\";s:0:\"\";s:14:\"highlight_type\";s:0:\"\";s:15:\"highlight_style\";s:0:\"\";s:31:\"highlight_title_left_background\";s:9:\"#00BCD4FF\";s:32:\"highlight_title_right_background\";s:9:\"#00BCD4FF\";s:26:\"highlight_title_left_color\";s:9:\"#FFFFFFFF\";s:27:\"highlight_title_right_color\";s:9:\"#FFFFFFFF\";}s:24:\"options_current_contents\";N;s:16:\"options_modified\";N;s:34:\"options_outside_parameter_modified\";b:0;s:22:\"options_saved_contents\";N;s:8:\"settings\";a:3:{s:5:\"theme\";s:5:\"light\";s:24:\"background_image_gallery\";a:0:{}s:21:\"colorpicker_favorites\";a:1:{s:7:\"default\";a:0:{}}}}"],"_yoast_wpseo_primary_category":["37"],"_yoast_wpseo_estimated-reading-time-minutes":["11"],"_yoast_wpseo_wordproof_timestamp":[""],"_elementor_template_type":["wp-post"],"_elementor_version":["3.25.10"],"_elementor_pro_version":["3.22.1"],"_elementor_data":["[{\"id\":\"2c49533\",\"elType\":\"section\",\"settings\":{\"structure\":\"30\"},\"elements\":[{\"id\":\"7d68f89\",\"elType\":\"column\",\"settings\":{\"_column_size\":33,\"_inline_size\":65,\"thegem_column_breakpoints_list\":[]},\"elements\":[{\"id\":\"7a524ba\",\"elType\":\"widget\",\"settings\":{\"icon_list\":[{\"selected_icon\":{\"value\":\"fas fa-calendar\",\"library\":\"fa-solid\"},\"_id\":\"91a0f52\",\"custom_date_format\":\"F j, Y\",\"custom_time_format\":\"g:i a\",\"link\":\"\",\"show_icon\":\"none\"}],\"icon_typography_typography\":\"custom\",\"__globals__\":{\"text_color\":\"globals\\\/colors?id=primary\"}},\"elements\":[],\"widgetType\":\"post-info\"},{\"id\":\"af3d2a0\",\"elType\":\"widget\",\"settings\":{\"title\":\"Add Your Heading Text Here\",\"header_size\":\"div\",\"thegem_heading_style\":\"styled-subtitle\",\"__dynamic__\":{\"title\":\"[elementor-tag id=\\\"7b6ad14\\\" name=\\\"thegem-post-excerpt\\\" settings=\\\"%7B%7D\\\"]\"}},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"6095716\",\"elType\":\"widget\",\"settings\":{\"source\":\"custom\",\"author_avatar\":{\"url\":\"https:\\\/\\\/kmwllccom.stage.site\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Akul_headshot_min.jpg\",\"id\":29862,\"alt\":\"\",\"source\":\"library\",\"size\":\"\"},\"author_name\":\"Akul Sethi\",\"author_name_tag\":\"div\",\"author_bio\":\"Search Engineer at KMW Technology\",\"link_text\":\"All Posts\",\"image_vertical_align\":\"top\",\"image_border\":\"yes\",\"image_border_width\":{\"unit\":\"px\",\"size\":3,\"sizes\":[]},\"image_border_radius\":{\"unit\":\"px\",\"size\":100,\"sizes\":[]},\"name_gap\":{\"unit\":\"px\",\"size\":0,\"sizes\":[]},\"__globals__\":{\"image_border_color\":\"globals\\\/colors?id=428f277\",\"bio_color\":\"globals\\\/colors?id=secondary\"},\"_padding\":{\"unit\":\"em\",\"top\":\"2\",\"right\":\"2\",\"bottom\":\"2\",\"left\":\"2\",\"isLinked\":true},\"_padding_tablet\":{\"unit\":\"em\",\"top\":\"\",\"right\":\"\",\"bottom\":\"\",\"left\":\"\",\"isLinked\":true},\"_padding_mobile\":{\"unit\":\"em\",\"top\":\"\",\"right\":\"\",\"bottom\":\"\",\"left\":\"\",\"isLinked\":true}},\"elements\":[],\"widgetType\":\"author-box\"},{\"id\":\"cc9ed00\",\"elType\":\"widget\",\"settings\":{\"text\":\"Divider\",\"weight\":{\"unit\":\"px\",\"size\":3,\"sizes\":[]},\"gap\":{\"unit\":\"px\",\"size\":0,\"sizes\":[]},\"__globals__\":{\"color\":\"globals\\\/colors?id=428f277\"}},\"elements\":[],\"widgetType\":\"divider\"},{\"id\":\"13892d7\",\"elType\":\"widget\",\"settings\":{\"title\":\"What We\\u2019ve Accomplished\",\"size\":\"large\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"fae77c4\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">With the recent advances in Large Language Models (LLMs), a very natural intersection with traditional Search has arisen. Historically, the only way to \\u201cask\\u201d a search engine a question is to provide some search keywords and the system responds with a set of ordered documents which hopefully contain an answer. In a RAG system however, you ask your question in natural language, it retrieves documents, but then goes the additional step to synthesize an answer from those documents so that the user does not have to comb through them themselves. This is done by feeding the search results (documents) as context to an LLM which may not necessarily have trained on that information. In this way, an LLM can \\u201clearn\\u201d about a subject at inference time.<\\\/span><span style=\\\"font-weight: 400;\\\">\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">In this blog post, we describe the process of creating a RAG question-answering system to answer questions about Solr and OpenSearch based on technical documentation. We used an OpenSearch instance as the search backend and investigated an assortment of HuggingFace and OpenAI model LLMs.<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"166b91f\",\"elType\":\"widget\",\"settings\":{\"title\":\"Architecture\",\"size\":\"large\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"b0b4ceb\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">The system can be separated into 3 logical components:\\u00a0<\\\/span><\\\/p><ol><li style=\\\"font-weight: 400;\\\" aria-level=\\\"1\\\"><span style=\\\"font-weight: 400;\\\">Search engine &amp; ingestion<\\\/span><\\\/li><li style=\\\"font-weight: 400;\\\" aria-level=\\\"1\\\"><span style=\\\"font-weight: 400;\\\">Large Language Models<\\\/span><\\\/li><li style=\\\"font-weight: 400;\\\" aria-level=\\\"1\\\"><span style=\\\"font-weight: 400;\\\">UI website to interact with the system<\\\/span><\\\/li><\\\/ol><p><span style=\\\"font-weight: 400;\\\">All of these components are dockerized and are orchestrated using docker compose. The search engine is used to store documents and retrieve relevant ones during generation. The LLM component hosts a REST API which contains the heart of the RAG logic. It hits both the search engine as well as externally hosted models to produce a response. Finally, the UI website is a static front end to allow a user to interact with the system and visualize results.<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"732ab5a\",\"elType\":\"widget\",\"settings\":{\"title\":\"Search Engine & Ingestion\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"82b7508\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">We cannot just throw all of the Solr or OpenSearch documentation at an LLM and expect it to produce improved results. These excess, nonrelevant documents will just convolute the context window and for lack of a better word \\u201cconfuse\\u201d the LLM. We additionally would prefer to provide the documents to the LLM in order of relevance as it helps the LLM understand which documents to prioritize. There is no better device for this than a search engine: it stores documents and allows for fast retrieval of ordered, relevant documents.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">We decided to use an OpenSearch cluster for this purpose. Traditionally, search engines have used a lexical process combined with Term Frequency - Inverse Document Frequency to determine the relevance of documents. Without going into too much detail, this means that documents are split into tokens, such as words, and then for a given query, a score is calculated for each document with the following properties: the score for a document is positively correlated with how many times the query appears in it and negatively correlated with the number of times the query appears in other documents. In this way, common words such as \\u201cthe\\u201d, \\u201cof\\u201d, or \\u201cthere\\u201d which appear in most documents do not contribute to the score as much as rare words since a less common word is more likely relevant to the document it appears in.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">While this approach works, it does not take into consideration the semantic meaning of words. The search engine actually does not know how words relate to each other or even have a concept of language. What if there was a technique that did? This is where vector search comes to the rescue. Like the name implies, in vector search, documents are embedded into vectors which have the property that the more similar two documents are, the closer their respective vectors will lie in the embedding space.<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">Again, the details are complicated, but some sort of neural network is generally used to approximate this function.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">In order to investigate how both lexical and neural retrieval affect RAG, our demo supports both. We used the Neural Search plugin as it comes natively with OpenSearch.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">To ingest documents into the engine, we used our own production grade, open-source ETL solution, <\\\/span><a href=\\\"https:\\\/\\\/github.com\\\/kmwtechnology\\\/lucille\\\"><span style=\\\"font-weight: 400;\\\">Lucille<\\\/span><\\\/a><span style=\\\"font-weight: 400;\\\">. This allowed us to easily specify separate sources for both OpenSearch and Solr each with their own processing pipelines in a very simple config. Since Solr has its documentation in raw web pages and OpenSearch has it in markup, different preprocessing must be applied to both. This makes the task great for Lucille. We constructed two separate stages for the task: a HTML extraction stage which uses JSoup to extract relevant portions of a webpage and a Markup extraction stage which does the same for markup.\\u00a0<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"171575c\",\"elType\":\"widget\",\"settings\":{\"title\":\"Large Language Models\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"56f3c58\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">Having a system to retrieve documents is all well and good, but there cannot be any RAG without Large Language Models. Since these models are extremely computationally expensive we used externally hosted REST APIs to run them. We chose two of the more popular platforms for this project: the HuggingFace inference and OpenAI APIs.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">When RAG was first developed it was used with question-answering LLMs. These are LLMs which, given a context and question, are trained to produce an answer from the context. What\\u2019s special about them however is rather than producing an answer \\u201cfrom scratch\\u201d they can only return a span from the context. For example:<\\\/span><\\\/p><p><strong>Context: <\\\/strong><em><span style=\\\"font-weight: 400;\\\">I\\u2019m a search engineer at KMW Technology and my name is <\\\/span><span style=\\\"font-weight: 400;\\\">Akul Sethi<\\\/span><span style=\\\"font-weight: 400;\\\">. I love to go hiking and play chess.<\\\/span><\\\/em><\\\/p><p><strong>Question: <\\\/strong><em><span style=\\\"font-weight: 400;\\\">What is my name?<\\\/span><\\\/em><\\\/p><p><strong>Answer: <\\\/strong><em><span style=\\\"font-weight: 400;\\\">Akul Sethi<\\\/span><\\\/em><\\\/p><p><span style=\\\"font-weight: 400;\\\">However, with the recent explosion in LLM development there are now LLMs specifically suited for various tasks. Our demo supports multiple LLMs to allow a user to experiment with different ways in which RAG can be used. Keep in mind that since they are all trained differently, they take prompts differently. The demo adheres to this by changing the placeholder prompt to provide an example of how the selected model receives input.<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"ec07015\",\"elType\":\"widget\",\"settings\":{\"title\":\"Prompting Roberta\",\"size\":\"medium\",\"header_size\":\"h4\",\"thegem_heading_weight\":\"thin\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"113ae55\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><a href=\\\"https:\\\/\\\/huggingface.co\\\/deepset\\\/roberta-base-squad2\\\"><span style=\\\"font-weight: 400;\\\">deepset\\\/roberta-base-squad2<\\\/span><\\\/a><\\\/p><p><span style=\\\"font-weight: 400;\\\">Roberta is a model that has been trained for the task of Question-Answering as described above. It is rather small at 124M parameters but for demonstration purposes it works well. This model takes its prompt in a simple question form, such as \\u201c<em>How do I make a collection in Solr?\\u201d.<\\\/em><\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"a6350eb\",\"elType\":\"widget\",\"settings\":{\"title\":\"Prompting Mistral\",\"size\":\"medium\",\"header_size\":\"h4\",\"thegem_heading_weight\":\"thin\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"f52a2a8\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><a href=\\\"https:\\\/\\\/huggingface.co\\\/mistralai\\\/Mistral-7B-v0.1\\\"><span style=\\\"font-weight: 400;\\\">mistralai\\\/Mistral-7B-v0.1<\\\/span><\\\/a><\\\/p><p><span style=\\\"font-weight: 400;\\\">Mistral is a model that has been trained for the task of Text Generation. These models are trained by giving them a portion of a sentence and asking them to complete it. Because of this, if you want Mistral to tell you how to make a collection in Solr it would have to be phrased as: \\u201c<em>A collection can be made in Solr by...<\\\/em>\\u201d. Mistral is also a larger model than Roberta at 7.24B parameters making it second best to GPT-3 in our demo. <\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"5c75261\",\"elType\":\"widget\",\"settings\":{\"title\":\"Prompting GPT-3\",\"size\":\"medium\",\"header_size\":\"h4\",\"thegem_heading_weight\":\"thin\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"368a853\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><a href=\\\"https:\\\/\\\/platform.openai.com\\\/docs\\\/models\\\/gpt-3-5-turbo\\\"><span style=\\\"font-weight: 400;\\\">gpt-3.5-turbo-0125<\\\/span><\\\/a><\\\/p><p><span style=\\\"font-weight: 400;\\\">Of course no, RAG demo would be complete without the most quintessential LLM of them all: GPT-3. This is OpenAI\\u2019s proprietary LLM which is generally considered to be a conversational LLM. It is the most flexible of the 3 models in how it can take its prompts but is usually used similarly to Roberta. The big difference of course is that GPT does produce an answer \\u201cfrom scratch\\u201d rather than a snippet from the context meaning that it can produce \\u201challucinations\\u201d, or completely false answers. While GPT does produce the best answers, most likely due to its size, it is something to keep in mind (the exact size of the model is not known as it isn\\u2019t something which OpenAI has made public at the time of writing, but it is estimated to be in the hundreds of billions of parameters). <\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"33a164b\",\"elType\":\"widget\",\"settings\":{\"title\":\"UI Website\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"bbe1657\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">The final component to tie it all together is the UI Website. This allows a user to query the system while controlling the various parameters. <\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"10bcf30\",\"elType\":\"widget\",\"settings\":{\"image\":{\"url\":\"https:\\\/\\\/kmwllccom.stage.site\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI.png\",\"id\":29888,\"size\":\"\",\"alt\":\"\",\"source\":\"library\"}},\"elements\":[],\"widgetType\":\"image\"},{\"id\":\"3964b42\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><b>Model panel<br \\\/><\\\/b><span style=\\\"font-weight: 400;\\\">This is for the main controls which includes the model, number of documents to retrieve, whether to use neural search, and if we want an AI response to be generated.\\u00a0<\\\/span><\\\/p><p><b>Source panel<br \\\/><\\\/b><span style=\\\"font-weight: 400;\\\">As the name suggests this panel allows a user to select which document sources (Solr or OpenSearch) should be queried.\\u00a0<\\\/span><\\\/p><p><b>Categories panel<br \\\/><\\\/b><span style=\\\"font-weight: 400;\\\">This panel allows a user to more efficiently sift through the documents by applying filters based on the category of the document. This is populated dynamically by the front end based on the categories of the returned documents.<\\\/span><\\\/p><p><b>Selection<br \\\/><\\\/b><span style=\\\"font-weight: 400;\\\">The front end also supports a selection mode allowing the user to manually select which documents are used for generation. To enable, toggle the \\u201cselect documents\\u201d button. Check boxes will appear next to the documents indicating if they will be used the next time the \\u201cSearch\\u201d button is clicked. NOTE: when this mode is on, fresh documents will not be returned.\\u00a0<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"527066f\",\"elType\":\"widget\",\"settings\":[],\"elements\":[],\"widgetType\":\"spacer\"},{\"id\":\"de60b36\",\"elType\":\"widget\",\"settings\":{\"title\":\"Key Takeaways\",\"size\":\"large\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"aef54c4\",\"elType\":\"widget\",\"settings\":{\"title\":\"Retrieval\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"3bf1369\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">We performed a relevancy test of the results using the open source tool <\\\/span><a href=\\\"https:\\\/\\\/quepid.com\\\/\\\"><span style=\\\"font-weight: 400;\\\">Quepid<\\\/span><\\\/a><span style=\\\"font-weight: 400;\\\">. This test compared RAG results using lexical vs neural search and we noticed some significant differences. Since this is primarily a question-answering system, queries will generally be formulated as questions. No surprise there. However, documentation is generally not written in that voice. For example, take the following two queries:<\\\/span><\\\/p><p><em><span style=\\\"font-weight: 400;\\\">How do I make a collection in Solr?\\u00a0<\\\/span><\\\/em><\\\/p><p><em><span style=\\\"font-weight: 400;\\\">How do I use facets in Solr?\\u00a0<\\\/span><\\\/em><\\\/p><p><span style=\\\"font-weight: 400;\\\">In the first query we would like to retrieve documents pertaining to collections and in the second retrieve ones pertaining to facets. However, using lexical search we noticed that both queries would just return the same set of documents from the FAQ section of the documentation. Upon further analysis we realized that due to the nature of the documentation; all the words in those queries are abundant in the documents other than the word \\u201cI\\u201d. Thus, TF\\\/IDF incorrectly assigns a lot of weight to the word \\u201cI\\u201d which is why we only see documents from the FAQ section: the only section which contains user questions.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">Neural search does not succumb to this problem. It is harder to see why, since explainability does not yet exist with neural networks, but it seems as though embedding models are better able to detect the significant words in the above queries in this case.\\u00a0<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"30d72f4\",\"elType\":\"widget\",\"settings\":{\"title\":\"Prompting\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"f24a87f\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">We found that prompting was another unexpected hurdle. The original plan was that the user question would be used as both the search query and the LLM. However, the question format which produces the best results for retrieval does not necessarily produce the best results for generation and vice versa. In fact, as each model is trained differently there is not even a format that consistently produces the best results across models. <\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">This is definitely a point for further improvement but currently we found that optimal results can be achieved by first using the system as a search engine with a search optimized query, selecting these documents in selection mode, and then re-running with a generation optimized query.\\u00a0<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"6b7bef5\",\"elType\":\"widget\",\"settings\":{\"title\":\"Conclusion\",\"size\":\"large\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"82b72c3\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p><span style=\\\"font-weight: 400;\\\">Overall, we were able to show how recent developments in Large Language Models can improve how we interact with traditional search engines using RAG. Along the way, we explored various challenges which may come up while working with RAG systems and our recommendations in dealing with them.\\u00a0<\\\/span><\\\/p><p><span style=\\\"font-weight: 400;\\\">Our final demonstration can be used both to query Solr and OpenSearch documentation, but more importantly, allows beginners in RAG to experiment with various hyperparameters and models to get a better understanding for how this cutting edge technology works.\\u00a0<\\\/span><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"},{\"id\":\"fb27d42\",\"elType\":\"widget\",\"settings\":{\"title\":\"Interested in seeing a Demo?\",\"size\":\"medium\",\"header_size\":\"h3\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"0e05ace\",\"elType\":\"widget\",\"settings\":{\"editor\":\"<p>If you'd like to see what we've built in action,\\u00a0 <a href=\\\"https:\\\/\\\/kmwllccom.stage.site\\\/index.php\\\/contact-us\\\/\\\">Contact Us!<\\\/a><\\\/p>\"},\"elements\":[],\"widgetType\":\"text-editor\"}],\"isInner\":false},{\"id\":\"de392a5\",\"elType\":\"column\",\"settings\":{\"_column_size\":33,\"_inline_size\":10,\"thegem_column_breakpoints_list\":[]},\"elements\":[],\"isInner\":false},{\"id\":\"2315efe\",\"elType\":\"column\",\"settings\":{\"_column_size\":33,\"_inline_size\":24.666,\"thegem_column_breakpoints_list\":[]},\"elements\":[{\"id\":\"f7dee41\",\"elType\":\"widget\",\"settings\":{\"title\":\"Share Post\",\"size\":\"small\",\"header_size\":\"div\",\"thegem_heading_style\":\"title-h6\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"1880099\",\"elType\":\"widget\",\"settings\":{\"pinterest\":\"\",\"tumblr\":\"\",\"telegram\":\"\",\"whatsapp\":\"\",\"viber\":\"\",\"xing\":\"\",\"icons_color\":\"#00DEFF\"},\"elements\":[],\"widgetType\":\"thegem-social-sharing\"},{\"id\":\"6308251\",\"elType\":\"widget\",\"settings\":{\"title\":\"More From the KMW Blog\",\"size\":\"small\",\"header_size\":\"div\",\"thegem_heading_style\":\"title-h6\"},\"elements\":[],\"widgetType\":\"heading\"},{\"id\":\"9db1d5c\",\"elType\":\"widget\",\"settings\":{\"thegem_elementor_preset\":\"compact-tiny-2\",\"source\":[\"posts\"],\"show_separator\":\"\",\"show_comments\":\"\",\"readmore_button_text\":\"Read More\",\"loadmore_button_text\":\"Load More\",\"caption_categories_in_text\":\"in \",\"caption_author_by_text\":\"By\",\"source_type\":\"custom\",\"exclude_blog_posts_type\":\"current\",\"order_by\":\"date\",\"pagination_type\":\"numbers\"},\"elements\":[],\"widgetType\":\"thegem-bloglist\"}],\"isInner\":false}],\"isInner\":false},{\"id\":\"c4daf12\",\"elType\":\"section\",\"settings\":[],\"elements\":[{\"id\":\"eaac0ae\",\"elType\":\"column\",\"settings\":{\"_column_size\":100,\"_inline_size\":null,\"thegem_column_breakpoints_list\":[]},\"elements\":[{\"id\":\"d6d4e70\",\"elType\":\"widget\",\"settings\":{\"prev_label\":\"Previous Post\",\"next_label\":\"Next Post\",\"show_borders\":\"\",\"title_typography_typography\":\"custom\",\"title_typography_font_size\":{\"unit\":\"px\",\"size\":14,\"sizes\":[]},\"title_typography_font_weight\":\"700\",\"__globals__\":{\"arrow_color\":\"globals\\\/colors?id=primary\",\"label_color\":\"globals\\\/colors?id=secondary\"},\"arrow\":\"fa fa-caret-left\",\"show_arrow\":\"\"},\"elements\":[],\"widgetType\":\"post-navigation\"}],\"isInner\":false}],\"isInner\":false}]"],"_yoast_wpseo_content_score":["30"],"_zilla_likes":["0"],"_yoast_wpseo_focuskw":["RAG Solr OpenSearch"],"_yoast_wpseo_linkdex":["56"],"_thumbnail_id":["29903"],"_wp_old_slug":["retrieval-augmented-generation-rag-question-answering-system-for-solr-and-opensearch-documentation"],"_elementor_edit_mode":["builder"],"_elementor_controls_usage":["a:12:{s:9:\"post-info\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:0;s:8:\"controls\";a:2:{s:7:\"content\";a:1:{s:12:\"section_icon\";a:1:{s:9:\"icon_list\";i:1;}}s:5:\"style\";a:1:{s:18:\"section_text_style\";a:1:{s:26:\"icon_typography_typography\";i:1;}}}}s:7:\"heading\";a:3:{s:5:\"count\";i:16;s:15:\"control_percent\";i:1;s:8:\"controls\";a:2:{s:7:\"general\";a:1:{s:11:\"__dynamic__\";a:1:{s:5:\"count\";i:1;}}s:7:\"content\";a:1:{s:13:\"section_title\";a:5:{s:5:\"title\";i:16;s:11:\"header_size\";i:12;s:20:\"thegem_heading_style\";i:3;s:4:\"size\";i:15;s:21:\"thegem_heading_weight\";i:3;}}}}s:10:\"author-box\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:3;s:8:\"controls\";a:3:{s:7:\"content\";a:1:{s:19:\"section_author_info\";a:5:{s:6:\"source\";i:1;s:13:\"author_avatar\";i:1;s:11:\"author_name\";i:1;s:15:\"author_name_tag\";i:1;s:10:\"author_bio\";i:1;}}s:5:\"style\";a:2:{s:19:\"section_image_style\";a:4:{s:20:\"image_vertical_align\";i:1;s:12:\"image_border\";i:1;s:18:\"image_border_width\";i:1;s:19:\"image_border_radius\";i:1;}s:18:\"section_text_style\";a:1:{s:8:\"name_gap\";i:1;}}s:8:\"advanced\";a:1:{s:14:\"_section_style\";a:3:{s:8:\"_padding\";i:1;s:15:\"_padding_tablet\";i:1;s:15:\"_padding_mobile\";i:1;}}}}s:7:\"divider\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:5:\"style\";a:1:{s:21:\"section_divider_style\";a:2:{s:6:\"weight\";i:1;s:3:\"gap\";i:1;}}}}s:11:\"text-editor\";a:3:{s:5:\"count\";i:13;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:7:\"content\";a:1:{s:14:\"section_editor\";a:1:{s:6:\"editor\";i:13;}}}}s:5:\"image\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:7:\"content\";a:1:{s:13:\"section_image\";a:1:{s:5:\"image\";i:1;}}}}s:6:\"spacer\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:0;s:8:\"controls\";a:0:{}}s:6:\"column\";a:3:{s:5:\"count\";i:4;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:6:\"layout\";a:1:{s:6:\"layout\";a:1:{s:12:\"_inline_size\";i:4;}}}}s:21:\"thegem-social-sharing\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:2;s:8:\"controls\";a:2:{s:7:\"content\";a:1:{s:13:\"section_icons\";a:6:{s:9:\"pinterest\";i:1;s:6:\"tumblr\";i:1;s:8:\"telegram\";i:1;s:8:\"whatsapp\";i:1;s:5:\"viber\";i:1;s:4:\"xing\";i:1;}}s:5:\"style\";a:1:{s:5:\"Style\";a:1:{s:11:\"icons_color\";i:1;}}}}s:15:\"thegem-bloglist\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:7:\"content\";a:3:{s:14:\"section_layout\";a:1:{s:23:\"thegem_elementor_preset\";i:1;}s:12:\"section_blog\";a:3:{s:6:\"source\";i:1;s:23:\"exclude_blog_posts_type\";i:1;s:8:\"order_by\";i:1;}s:15:\"section_caption\";a:2:{s:14:\"show_separator\";i:1;s:13:\"show_comments\";i:1;}}}}s:7:\"section\";a:3:{s:5:\"count\";i:2;s:15:\"control_percent\";i:0;s:8:\"controls\";a:1:{s:6:\"layout\";a:1:{s:17:\"section_structure\";a:1:{s:9:\"structure\";i:1;}}}}s:15:\"post-navigation\";a:3:{s:5:\"count\";i:1;s:15:\"control_percent\";i:2;s:8:\"controls\";a:2:{s:7:\"content\";a:1:{s:31:\"section_post_navigation_content\";a:5:{s:10:\"prev_label\";i:1;s:10:\"next_label\";i:1;s:12:\"show_borders\";i:1;s:5:\"arrow\";i:1;s:10:\"show_arrow\";i:1;}}s:5:\"style\";a:1:{s:11:\"title_style\";a:3:{s:27:\"title_typography_typography\";i:1;s:26:\"title_typography_font_size\";i:1;s:28:\"title_typography_font_weight\";i:1;}}}}}"],"_elementor_css":["a:6:{s:4:\"time\";i:1775577487;s:5:\"fonts\";a:0:{}s:5:\"icons\";a:0:{}s:20:\"dynamic_elements_ids\";a:1:{i:0;s:7:\"af3d2a0\";}s:6:\"status\";s:4:\"file\";i:0;s:0:\"\";}"],"_elementor_page_assets":["a:2:{s:6:\"styles\";a:11:{i:0;s:16:\"widget-post-info\";i:1;s:16:\"widget-icon-list\";i:2;s:26:\"elementor-icons-fa-regular\";i:3;s:24:\"elementor-icons-fa-solid\";i:4;s:14:\"widget-heading\";i:5;s:17:\"widget-author-box\";i:6;s:14:\"widget-divider\";i:7;s:12:\"widget-image\";i:8;s:13:\"widget-spacer\";i:9;s:15:\"thegem-bloglist\";i:10;s:22:\"widget-post-navigation\";}s:7:\"scripts\";a:5:{i:0;s:18:\"elementor-frontend\";i:1;s:23:\"thegem-items-animations\";i:2;s:11:\"thegem-blog\";i:3;s:19:\"thegem-blog-isotope\";i:4;s:15:\"post-navigation\";}}"],"_elementor_element_cache":["{\"timeout\":1775969743,\"value\":{\"content\":\"\\t\\t<section class=\\\"elementor-section elementor-top-section elementor-element elementor-element-2c49533 elementor-section-boxed elementor-section-height-default elementor-section-height-default\\\" data-id=\\\"2c49533\\\" data-element_type=\\\"section\\\" data-e-type=\\\"section\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\\\"elementor-container elementor-column-gap-thegem\\\"><div class=\\\"elementor-row\\\">\\r\\n\\t\\t\\t\\t\\t<div class=\\\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-7d68f89\\\" data-id=\\\"7d68f89\\\" data-element_type=\\\"column\\\" data-e-type=\\\"column\\\">\\n\\t\\t\\t<div class=\\\"elementor-widget-wrap elementor-element-populated\\\">\\n\\t\\t\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjdhNTI0YmEiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJpY29uX2xpc3QiOlt7InNlbGVjdGVkX2ljb24iOnsidmFsdWUiOiJmYXMgZmEtY2FsZW5kYXIiLCJsaWJyYXJ5IjoiZmEtc29saWQifSwiX2lkIjoiOTFhMGY1MiIsImN1c3RvbV9kYXRlX2Zvcm1hdCI6IkYgaiwgWSIsImN1c3RvbV90aW1lX2Zvcm1hdCI6Imc6aSBhIiwibGluayI6IiIsInNob3dfaWNvbiI6Im5vbmUifV0sImljb25fdHlwb2dyYXBoeV90eXBvZ3JhcGh5IjoiY3VzdG9tIiwiX19nbG9iYWxzX18iOnsidGV4dF9jb2xvciI6Imdsb2JhbHNcL2NvbG9ycz9pZD1wcmltYXJ5In19LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJwb3N0LWluZm8ifQ==\\\"][elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImFmM2QyYTAiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJ0aXRsZSI6IkFkZCBZb3VyIEhlYWRpbmcgVGV4dCBIZXJlIiwiaGVhZGVyX3NpemUiOiJkaXYiLCJ0aGVnZW1faGVhZGluZ19zdHlsZSI6InN0eWxlZC1zdWJ0aXRsZSIsIl9fZHluYW1pY19fIjp7InRpdGxlIjoiW2VsZW1lbnRvci10YWcgaWQ9XCI3YjZhZDE0XCIgbmFtZT1cInRoZWdlbS1wb3N0LWV4Y2VycHRcIiBzZXR0aW5ncz1cIiU3QiU3RFwiXSJ9fSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoiaGVhZGluZyJ9\\\"][elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjYwOTU3MTYiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJzb3VyY2UiOiJjdXN0b20iLCJhdXRob3JfYXZhdGFyIjp7InVybCI6Imh0dHBzOlwvXC9rbXdsbGNjb20uc3RhZ2Uuc2l0ZVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0FrdWxfaGVhZHNob3RfbWluLmpwZyIsImlkIjoyOTg2MiwiYWx0IjoiIiwic291cmNlIjoibGlicmFyeSIsInNpemUiOiIifSwiYXV0aG9yX25hbWUiOiJBa3VsIFNldGhpIiwiYXV0aG9yX25hbWVfdGFnIjoiZGl2IiwiYXV0aG9yX2JpbyI6IlNlYXJjaCBFbmdpbmVlciBhdCBLTVcgVGVjaG5vbG9neSIsImxpbmtfdGV4dCI6IkFsbCBQb3N0cyIsImltYWdlX3ZlcnRpY2FsX2FsaWduIjoidG9wIiwiaW1hZ2VfYm9yZGVyIjoieWVzIiwiaW1hZ2VfYm9yZGVyX3dpZHRoIjp7InVuaXQiOiJweCIsInNpemUiOjMsInNpemVzIjpbXX0sImltYWdlX2JvcmRlcl9yYWRpdXMiOnsidW5pdCI6InB4Iiwic2l6ZSI6MTAwLCJzaXplcyI6W119LCJuYW1lX2dhcCI6eyJ1bml0IjoicHgiLCJzaXplIjowLCJzaXplcyI6W119LCJfX2dsb2JhbHNfXyI6eyJpbWFnZV9ib3JkZXJfY29sb3IiOiJnbG9iYWxzXC9jb2xvcnM\\\/aWQ9NDI4ZjI3NyIsImJpb19jb2xvciI6Imdsb2JhbHNcL2NvbG9ycz9pZD1zZWNvbmRhcnkifSwiX3BhZGRpbmciOnsidW5pdCI6ImVtIiwidG9wIjoiMiIsInJpZ2h0IjoiMiIsImJvdHRvbSI6IjIiLCJsZWZ0IjoiMiIsImlzTGlua2VkIjp0cnVlfSwiX3BhZGRpbmdfdGFibGV0Ijp7InVuaXQiOiJlbSIsInRvcCI6IiIsInJpZ2h0IjoiIiwiYm90dG9tIjoiIiwibGVmdCI6IiIsImlzTGlua2VkIjp0cnVlfSwiX3BhZGRpbmdfbW9iaWxlIjp7InVuaXQiOiJlbSIsInRvcCI6IiIsInJpZ2h0IjoiIiwiYm90dG9tIjoiIiwibGVmdCI6IiIsImlzTGlua2VkIjp0cnVlfX0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6ImF1dGhvci1ib3gifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-cc9ed00 elementor-widget-divider--view-line flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-divider\\\" data-id=\\\"cc9ed00\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"divider.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t\\t\\t<div class=\\\"elementor-divider\\\">\\n\\t\\t\\t<span class=\\\"elementor-divider-separator\\\">\\n\\t\\t\\t\\t\\t\\t<\\\/span>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<div class=\\\"elementor-element elementor-element-13892d7 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"13892d7\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h2 class=\\\"elementor-heading-title elementor-size-large\\\">What We\\u2019ve Accomplished<\\\/h2>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImZhZTc3YzQiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+V2l0aCB0aGUgcmVjZW50IGFkdmFuY2VzIGluIExhcmdlIExhbmd1YWdlIE1vZGVscyAoTExNcyksIGEgdmVyeSBuYXR1cmFsIGludGVyc2VjdGlvbiB3aXRoIHRyYWRpdGlvbmFsIFNlYXJjaCBoYXMgYXJpc2VuLiBIaXN0b3JpY2FsbHksIHRoZSBvbmx5IHdheSB0byBcdTIwMWNhc2tcdTIwMWQgYSBzZWFyY2ggZW5naW5lIGEgcXVlc3Rpb24gaXMgdG8gcHJvdmlkZSBzb21lIHNlYXJjaCBrZXl3b3JkcyBhbmQgdGhlIHN5c3RlbSByZXNwb25kcyB3aXRoIGEgc2V0IG9mIG9yZGVyZWQgZG9jdW1lbnRzIHdoaWNoIGhvcGVmdWxseSBjb250YWluIGFuIGFuc3dlci4gSW4gYSBSQUcgc3lzdGVtIGhvd2V2ZXIsIHlvdSBhc2sgeW91ciBxdWVzdGlvbiBpbiBuYXR1cmFsIGxhbmd1YWdlLCBpdCByZXRyaWV2ZXMgZG9jdW1lbnRzLCBidXQgdGhlbiBnb2VzIHRoZSBhZGRpdGlvbmFsIHN0ZXAgdG8gc3ludGhlc2l6ZSBhbiBhbnN3ZXIgZnJvbSB0aG9zZSBkb2N1bWVudHMgc28gdGhhdCB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRvIGNvbWIgdGhyb3VnaCB0aGVtIHRoZW1zZWx2ZXMuIFRoaXMgaXMgZG9uZSBieSBmZWVkaW5nIHRoZSBzZWFyY2ggcmVzdWx0cyAoZG9jdW1lbnRzKSBhcyBjb250ZXh0IHRvIGFuIExMTSB3aGljaCBtYXkgbm90IG5lY2Vzc2FyaWx5IGhhdmUgdHJhaW5lZCBvbiB0aGF0IGluZm9ybWF0aW9uLiBJbiB0aGlzIHdheSwgYW4gTExNIGNhbiBcdTIwMWNsZWFyblx1MjAxZCBhYm91dCBhIHN1YmplY3QgYXQgaW5mZXJlbmNlIHRpbWUuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+XHUwMGEwPFwvc3Bhbj48XC9wPjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5JbiB0aGlzIGJsb2cgcG9zdCwgd2UgZGVzY3JpYmUgdGhlIHByb2Nlc3Mgb2YgY3JlYXRpbmcgYSBSQUcgcXVlc3Rpb24tYW5zd2VyaW5nIHN5c3RlbSB0byBhbnN3ZXIgcXVlc3Rpb25zIGFib3V0IFNvbHIgYW5kIE9wZW5TZWFyY2ggYmFzZWQgb24gdGVjaG5pY2FsIGRvY3VtZW50YXRpb24uIFdlIHVzZWQgYW4gT3BlblNlYXJjaCBpbnN0YW5jZSBhcyB0aGUgc2VhcmNoIGJhY2tlbmQgYW5kIGludmVzdGlnYXRlZCBhbiBhc3NvcnRtZW50IG9mIEh1Z2dpbmdGYWNlIGFuZCBPcGVuQUkgbW9kZWwgTExNcy48XC9zcGFuPjxcL3A+In0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6InRleHQtZWRpdG9yIn0=\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-166b91f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"166b91f\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h2 class=\\\"elementor-heading-title elementor-size-large\\\">Architecture<\\\/h2>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImIwYjRjZWIiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+VGhlIHN5c3RlbSBjYW4gYmUgc2VwYXJhdGVkIGludG8gMyBsb2dpY2FsIGNvbXBvbmVudHM6XHUwMGEwPFwvc3Bhbj48XC9wPjxvbD48bGkgc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiIGFyaWEtbGV2ZWw9XCIxXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPlNlYXJjaCBlbmdpbmUgJmFtcDsgaW5nZXN0aW9uPFwvc3Bhbj48XC9saT48bGkgc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiIGFyaWEtbGV2ZWw9XCIxXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkxhcmdlIExhbmd1YWdlIE1vZGVsczxcL3NwYW4+PFwvbGk+PGxpIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIiBhcmlhLWxldmVsPVwiMVwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5VSSB3ZWJzaXRlIHRvIGludGVyYWN0IHdpdGggdGhlIHN5c3RlbTxcL3NwYW4+PFwvbGk+PFwvb2w+PHA+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkFsbCBvZiB0aGVzZSBjb21wb25lbnRzIGFyZSBkb2NrZXJpemVkIGFuZCBhcmUgb3JjaGVzdHJhdGVkIHVzaW5nIGRvY2tlciBjb21wb3NlLiBUaGUgc2VhcmNoIGVuZ2luZSBpcyB1c2VkIHRvIHN0b3JlIGRvY3VtZW50cyBhbmQgcmV0cmlldmUgcmVsZXZhbnQgb25lcyBkdXJpbmcgZ2VuZXJhdGlvbi4gVGhlIExMTSBjb21wb25lbnQgaG9zdHMgYSBSRVNUIEFQSSB3aGljaCBjb250YWlucyB0aGUgaGVhcnQgb2YgdGhlIFJBRyBsb2dpYy4gSXQgaGl0cyBib3RoIHRoZSBzZWFyY2ggZW5naW5lIGFzIHdlbGwgYXMgZXh0ZXJuYWxseSBob3N0ZWQgbW9kZWxzIHRvIHByb2R1Y2UgYSByZXNwb25zZS4gRmluYWxseSwgdGhlIFVJIHdlYnNpdGUgaXMgYSBzdGF0aWMgZnJvbnQgZW5kIHRvIGFsbG93IGEgdXNlciB0byBpbnRlcmFjdCB3aXRoIHRoZSBzeXN0ZW0gYW5kIHZpc3VhbGl6ZSByZXN1bHRzLjxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-732ab5a flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"732ab5a\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">Search Engine &amp; Ingestion<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjgyYjc1MDgiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+V2UgY2Fubm90IGp1c3QgdGhyb3cgYWxsIG9mIHRoZSBTb2xyIG9yIE9wZW5TZWFyY2ggZG9jdW1lbnRhdGlvbiBhdCBhbiBMTE0gYW5kIGV4cGVjdCBpdCB0byBwcm9kdWNlIGltcHJvdmVkIHJlc3VsdHMuIFRoZXNlIGV4Y2Vzcywgbm9ucmVsZXZhbnQgZG9jdW1lbnRzIHdpbGwganVzdCBjb252b2x1dGUgdGhlIGNvbnRleHQgd2luZG93IGFuZCBmb3IgbGFjayBvZiBhIGJldHRlciB3b3JkIFx1MjAxY2NvbmZ1c2VcdTIwMWQgdGhlIExMTS4gV2UgYWRkaXRpb25hbGx5IHdvdWxkIHByZWZlciB0byBwcm92aWRlIHRoZSBkb2N1bWVudHMgdG8gdGhlIExMTSBpbiBvcmRlciBvZiByZWxldmFuY2UgYXMgaXQgaGVscHMgdGhlIExMTSB1bmRlcnN0YW5kIHdoaWNoIGRvY3VtZW50cyB0byBwcmlvcml0aXplLiBUaGVyZSBpcyBubyBiZXR0ZXIgZGV2aWNlIGZvciB0aGlzIHRoYW4gYSBzZWFyY2ggZW5naW5lOiBpdCBzdG9yZXMgZG9jdW1lbnRzIGFuZCBhbGxvd3MgZm9yIGZhc3QgcmV0cmlldmFsIG9mIG9yZGVyZWQsIHJlbGV2YW50IGRvY3VtZW50cy5cdTAwYTA8XC9zcGFuPjxcL3A+PHA+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPldlIGRlY2lkZWQgdG8gdXNlIGFuIE9wZW5TZWFyY2ggY2x1c3RlciBmb3IgdGhpcyBwdXJwb3NlLiBUcmFkaXRpb25hbGx5LCBzZWFyY2ggZW5naW5lcyBoYXZlIHVzZWQgYSBsZXhpY2FsIHByb2Nlc3MgY29tYmluZWQgd2l0aCBUZXJtIEZyZXF1ZW5jeSAtIEludmVyc2UgRG9jdW1lbnQgRnJlcXVlbmN5IHRvIGRldGVybWluZSB0aGUgcmVsZXZhbmNlIG9mIGRvY3VtZW50cy4gV2l0aG91dCBnb2luZyBpbnRvIHRvbyBtdWNoIGRldGFpbCwgdGhpcyBtZWFucyB0aGF0IGRvY3VtZW50cyBhcmUgc3BsaXQgaW50byB0b2tlbnMsIHN1Y2ggYXMgd29yZHMsIGFuZCB0aGVuIGZvciBhIGdpdmVuIHF1ZXJ5LCBhIHNjb3JlIGlzIGNhbGN1bGF0ZWQgZm9yIGVhY2ggZG9jdW1lbnQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IHRoZSBzY29yZSBmb3IgYSBkb2N1bWVudCBpcyBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBob3cgbWFueSB0aW1lcyB0aGUgcXVlcnkgYXBwZWFycyBpbiBpdCBhbmQgbmVnYXRpdmVseSBjb3JyZWxhdGVkIHdpdGggdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgcXVlcnkgYXBwZWFycyBpbiBvdGhlciBkb2N1bWVudHMuIEluIHRoaXMgd2F5LCBjb21tb24gd29yZHMgc3VjaCBhcyBcdTIwMWN0aGVcdTIwMWQsIFx1MjAxY29mXHUyMDFkLCBvciBcdTIwMWN0aGVyZVx1MjAxZCB3aGljaCBhcHBlYXIgaW4gbW9zdCBkb2N1bWVudHMgZG8gbm90IGNvbnRyaWJ1dGUgdG8gdGhlIHNjb3JlIGFzIG11Y2ggYXMgcmFyZSB3b3JkcyBzaW5jZSBhIGxlc3MgY29tbW9uIHdvcmQgaXMgbW9yZSBsaWtlbHkgcmVsZXZhbnQgdG8gdGhlIGRvY3VtZW50IGl0IGFwcGVhcnMgaW4uXHUwMGEwPFwvc3Bhbj48XC9wPjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5XaGlsZSB0aGlzIGFwcHJvYWNoIHdvcmtzLCBpdCBkb2VzIG5vdCB0YWtlIGludG8gY29uc2lkZXJhdGlvbiB0aGUgc2VtYW50aWMgbWVhbmluZyBvZiB3b3Jkcy4gVGhlIHNlYXJjaCBlbmdpbmUgYWN0dWFsbHkgZG9lcyBub3Qga25vdyBob3cgd29yZHMgcmVsYXRlIHRvIGVhY2ggb3RoZXIgb3IgZXZlbiBoYXZlIGEgY29uY2VwdCBvZiBsYW5ndWFnZS4gV2hhdCBpZiB0aGVyZSB3YXMgYSB0ZWNobmlxdWUgdGhhdCBkaWQ\\\/IFRoaXMgaXMgd2hlcmUgdmVjdG9yIHNlYXJjaCBjb21lcyB0byB0aGUgcmVzY3VlLiBMaWtlIHRoZSBuYW1lIGltcGxpZXMsIGluIHZlY3RvciBzZWFyY2gsIGRvY3VtZW50cyBhcmUgZW1iZWRkZWQgaW50byB2ZWN0b3JzIHdoaWNoIGhhdmUgdGhlIHByb3BlcnR5IHRoYXQgdGhlIG1vcmUgc2ltaWxhciB0d28gZG9jdW1lbnRzIGFyZSwgdGhlIGNsb3NlciB0aGVpciByZXNwZWN0aXZlIHZlY3RvcnMgd2lsbCBsaWUgaW4gdGhlIGVtYmVkZGluZyBzcGFjZS48XC9zcGFuPjxcL3A+PHA+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkFnYWluLCB0aGUgZGV0YWlscyBhcmUgY29tcGxpY2F0ZWQsIGJ1dCBzb21lIHNvcnQgb2YgbmV1cmFsIG5ldHdvcmsgaXMgZ2VuZXJhbGx5IHVzZWQgdG8gYXBwcm94aW1hdGUgdGhpcyBmdW5jdGlvbi5cdTAwYTA8XC9zcGFuPjxcL3A+PHA+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkluIG9yZGVyIHRvIGludmVzdGlnYXRlIGhvdyBib3RoIGxleGljYWwgYW5kIG5ldXJhbCByZXRyaWV2YWwgYWZmZWN0IFJBRywgb3VyIGRlbW8gc3VwcG9ydHMgYm90aC4gV2UgdXNlZCB0aGUgTmV1cmFsIFNlYXJjaCBwbHVnaW4gYXMgaXQgY29tZXMgbmF0aXZlbHkgd2l0aCBPcGVuU2VhcmNoLlx1MDBhMDxcL3NwYW4+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+VG8gaW5nZXN0IGRvY3VtZW50cyBpbnRvIHRoZSBlbmdpbmUsIHdlIHVzZWQgb3VyIG93biBwcm9kdWN0aW9uIGdyYWRlLCBvcGVuLXNvdXJjZSBFVEwgc29sdXRpb24sIDxcL3NwYW4+PGEgaHJlZj1cImh0dHBzOlwvXC9naXRodWIuY29tXC9rbXd0ZWNobm9sb2d5XC9sdWNpbGxlXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkx1Y2lsbGU8XC9zcGFuPjxcL2E+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPi4gVGhpcyBhbGxvd2VkIHVzIHRvIGVhc2lseSBzcGVjaWZ5IHNlcGFyYXRlIHNvdXJjZXMgZm9yIGJvdGggT3BlblNlYXJjaCBhbmQgU29sciBlYWNoIHdpdGggdGhlaXIgb3duIHByb2Nlc3NpbmcgcGlwZWxpbmVzIGluIGEgdmVyeSBzaW1wbGUgY29uZmlnLiBTaW5jZSBTb2xyIGhhcyBpdHMgZG9jdW1lbnRhdGlvbiBpbiByYXcgd2ViIHBhZ2VzIGFuZCBPcGVuU2VhcmNoIGhhcyBpdCBpbiBtYXJrdXAsIGRpZmZlcmVudCBwcmVwcm9jZXNzaW5nIG11c3QgYmUgYXBwbGllZCB0byBib3RoLiBUaGlzIG1ha2VzIHRoZSB0YXNrIGdyZWF0IGZvciBMdWNpbGxlLiBXZSBjb25zdHJ1Y3RlZCB0d28gc2VwYXJhdGUgc3RhZ2VzIGZvciB0aGUgdGFzazogYSBIVE1MIGV4dHJhY3Rpb24gc3RhZ2Ugd2hpY2ggdXNlcyBKU291cCB0byBleHRyYWN0IHJlbGV2YW50IHBvcnRpb25zIG9mIGEgd2VicGFnZSBhbmQgYSBNYXJrdXAgZXh0cmFjdGlvbiBzdGFnZSB3aGljaCBkb2VzIHRoZSBzYW1lIGZvciBtYXJrdXAuXHUwMGEwPFwvc3Bhbj48XC9wPiJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJ0ZXh0LWVkaXRvciJ9\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-171575c flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"171575c\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">Large Language Models<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjU2ZjNjNTgiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+SGF2aW5nIGEgc3lzdGVtIHRvIHJldHJpZXZlIGRvY3VtZW50cyBpcyBhbGwgd2VsbCBhbmQgZ29vZCwgYnV0IHRoZXJlIGNhbm5vdCBiZSBhbnkgUkFHIHdpdGhvdXQgTGFyZ2UgTGFuZ3VhZ2UgTW9kZWxzLiBTaW5jZSB0aGVzZSBtb2RlbHMgYXJlIGV4dHJlbWVseSBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIHdlIHVzZWQgZXh0ZXJuYWxseSBob3N0ZWQgUkVTVCBBUElzIHRvIHJ1biB0aGVtLiBXZSBjaG9zZSB0d28gb2YgdGhlIG1vcmUgcG9wdWxhciBwbGF0Zm9ybXMgZm9yIHRoaXMgcHJvamVjdDogdGhlIEh1Z2dpbmdGYWNlIGluZmVyZW5jZSBhbmQgT3BlbkFJIEFQSXMuXHUwMGEwPFwvc3Bhbj48XC9wPjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5XaGVuIFJBRyB3YXMgZmlyc3QgZGV2ZWxvcGVkIGl0IHdhcyB1c2VkIHdpdGggcXVlc3Rpb24tYW5zd2VyaW5nIExMTXMuIFRoZXNlIGFyZSBMTE1zIHdoaWNoLCBnaXZlbiBhIGNvbnRleHQgYW5kIHF1ZXN0aW9uLCBhcmUgdHJhaW5lZCB0byBwcm9kdWNlIGFuIGFuc3dlciBmcm9tIHRoZSBjb250ZXh0LiBXaGF0XHUyMDE5cyBzcGVjaWFsIGFib3V0IHRoZW0gaG93ZXZlciBpcyByYXRoZXIgdGhhbiBwcm9kdWNpbmcgYW4gYW5zd2VyIFx1MjAxY2Zyb20gc2NyYXRjaFx1MjAxZCB0aGV5IGNhbiBvbmx5IHJldHVybiBhIHNwYW4gZnJvbSB0aGUgY29udGV4dC4gRm9yIGV4YW1wbGU6PFwvc3Bhbj48XC9wPjxwPjxzdHJvbmc+Q29udGV4dDogPFwvc3Ryb25nPjxlbT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+SVx1MjAxOW0gYSBzZWFyY2ggZW5naW5lZXIgYXQgS01XIFRlY2hub2xvZ3kgYW5kIG15IG5hbWUgaXMgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+QWt1bCBTZXRoaTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPi4gSSBsb3ZlIHRvIGdvIGhpa2luZyBhbmQgcGxheSBjaGVzcy48XC9zcGFuPjxcL2VtPjxcL3A+PHA+PHN0cm9uZz5RdWVzdGlvbjogPFwvc3Ryb25nPjxlbT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+V2hhdCBpcyBteSBuYW1lPzxcL3NwYW4+PFwvZW0+PFwvcD48cD48c3Ryb25nPkFuc3dlcjogPFwvc3Ryb25nPjxlbT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+QWt1bCBTZXRoaTxcL3NwYW4+PFwvZW0+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+SG93ZXZlciwgd2l0aCB0aGUgcmVjZW50IGV4cGxvc2lvbiBpbiBMTE0gZGV2ZWxvcG1lbnQgdGhlcmUgYXJlIG5vdyBMTE1zIHNwZWNpZmljYWxseSBzdWl0ZWQgZm9yIHZhcmlvdXMgdGFza3MuIE91ciBkZW1vIHN1cHBvcnRzIG11bHRpcGxlIExMTXMgdG8gYWxsb3cgYSB1c2VyIHRvIGV4cGVyaW1lbnQgd2l0aCBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBSQUcgY2FuIGJlIHVzZWQuIEtlZXAgaW4gbWluZCB0aGF0IHNpbmNlIHRoZXkgYXJlIGFsbCB0cmFpbmVkIGRpZmZlcmVudGx5LCB0aGV5IHRha2UgcHJvbXB0cyBkaWZmZXJlbnRseS4gVGhlIGRlbW8gYWRoZXJlcyB0byB0aGlzIGJ5IGNoYW5naW5nIHRoZSBwbGFjZWhvbGRlciBwcm9tcHQgdG8gcHJvdmlkZSBhbiBleGFtcGxlIG9mIGhvdyB0aGUgc2VsZWN0ZWQgbW9kZWwgcmVjZWl2ZXMgaW5wdXQuPFwvc3Bhbj48XC9wPiJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJ0ZXh0LWVkaXRvciJ9\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-ec07015 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"ec07015\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h4 class=\\\"light elementor-heading-title elementor-size-medium\\\">Prompting Roberta<\\\/h4>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjExM2FlNTUiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48YSBocmVmPVwiaHR0cHM6XC9cL2h1Z2dpbmdmYWNlLmNvXC9kZWVwc2V0XC9yb2JlcnRhLWJhc2Utc3F1YWQyXCI+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPmRlZXBzZXRcL3JvYmVydGEtYmFzZS1zcXVhZDI8XC9zcGFuPjxcL2E+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+Um9iZXJ0YSBpcyBhIG1vZGVsIHRoYXQgaGFzIGJlZW4gdHJhaW5lZCBmb3IgdGhlIHRhc2sgb2YgUXVlc3Rpb24tQW5zd2VyaW5nIGFzIGRlc2NyaWJlZCBhYm92ZS4gSXQgaXMgcmF0aGVyIHNtYWxsIGF0IDEyNE0gcGFyYW1ldGVycyBidXQgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgaXQgd29ya3Mgd2VsbC4gVGhpcyBtb2RlbCB0YWtlcyBpdHMgcHJvbXB0IGluIGEgc2ltcGxlIHF1ZXN0aW9uIGZvcm0sIHN1Y2ggYXMgXHUyMDFjPGVtPkhvdyBkbyBJIG1ha2UgYSBjb2xsZWN0aW9uIGluIFNvbHI\\\/XHUyMDFkLjxcL2VtPjxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-a6350eb flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"a6350eb\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h4 class=\\\"light elementor-heading-title elementor-size-medium\\\">Prompting Mistral<\\\/h4>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImY1MmEyYTgiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48YSBocmVmPVwiaHR0cHM6XC9cL2h1Z2dpbmdmYWNlLmNvXC9taXN0cmFsYWlcL01pc3RyYWwtN0ItdjAuMVwiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5taXN0cmFsYWlcL01pc3RyYWwtN0ItdjAuMTxcL3NwYW4+PFwvYT48XC9wPjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5NaXN0cmFsIGlzIGEgbW9kZWwgdGhhdCBoYXMgYmVlbiB0cmFpbmVkIGZvciB0aGUgdGFzayBvZiBUZXh0IEdlbmVyYXRpb24uIFRoZXNlIG1vZGVscyBhcmUgdHJhaW5lZCBieSBnaXZpbmcgdGhlbSBhIHBvcnRpb24gb2YgYSBzZW50ZW5jZSBhbmQgYXNraW5nIHRoZW0gdG8gY29tcGxldGUgaXQuIEJlY2F1c2Ugb2YgdGhpcywgaWYgeW91IHdhbnQgTWlzdHJhbCB0byB0ZWxsIHlvdSBob3cgdG8gbWFrZSBhIGNvbGxlY3Rpb24gaW4gU29sciBpdCB3b3VsZCBoYXZlIHRvIGJlIHBocmFzZWQgYXM6IFx1MjAxYzxlbT5BIGNvbGxlY3Rpb24gY2FuIGJlIG1hZGUgaW4gU29sciBieS4uLjxcL2VtPlx1MjAxZC4gTWlzdHJhbCBpcyBhbHNvIGEgbGFyZ2VyIG1vZGVsIHRoYW4gUm9iZXJ0YSBhdCA3LjI0QiBwYXJhbWV0ZXJzIG1ha2luZyBpdCBzZWNvbmQgYmVzdCB0byBHUFQtMyBpbiBvdXIgZGVtby4gPFwvc3Bhbj48XC9wPiJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJ0ZXh0LWVkaXRvciJ9\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-5c75261 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"5c75261\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h4 class=\\\"light elementor-heading-title elementor-size-medium\\\">Prompting GPT-3<\\\/h4>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjM2OGE4NTMiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48YSBocmVmPVwiaHR0cHM6XC9cL3BsYXRmb3JtLm9wZW5haS5jb21cL2RvY3NcL21vZGVsc1wvZ3B0LTMtNS10dXJib1wiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5ncHQtMy41LXR1cmJvLTAxMjU8XC9zcGFuPjxcL2E+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+T2YgY291cnNlIG5vLCBSQUcgZGVtbyB3b3VsZCBiZSBjb21wbGV0ZSB3aXRob3V0IHRoZSBtb3N0IHF1aW50ZXNzZW50aWFsIExMTSBvZiB0aGVtIGFsbDogR1BULTMuIFRoaXMgaXMgT3BlbkFJXHUyMDE5cyBwcm9wcmlldGFyeSBMTE0gd2hpY2ggaXMgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUgYSBjb252ZXJzYXRpb25hbCBMTE0uIEl0IGlzIHRoZSBtb3N0IGZsZXhpYmxlIG9mIHRoZSAzIG1vZGVscyBpbiBob3cgaXQgY2FuIHRha2UgaXRzIHByb21wdHMgYnV0IGlzIHVzdWFsbHkgdXNlZCBzaW1pbGFybHkgdG8gUm9iZXJ0YS4gVGhlIGJpZyBkaWZmZXJlbmNlIG9mIGNvdXJzZSBpcyB0aGF0IEdQVCBkb2VzIHByb2R1Y2UgYW4gYW5zd2VyIFx1MjAxY2Zyb20gc2NyYXRjaFx1MjAxZCByYXRoZXIgdGhhbiBhIHNuaXBwZXQgZnJvbSB0aGUgY29udGV4dCBtZWFuaW5nIHRoYXQgaXQgY2FuIHByb2R1Y2UgXHUyMDFjaGFsbHVjaW5hdGlvbnNcdTIwMWQsIG9yIGNvbXBsZXRlbHkgZmFsc2UgYW5zd2Vycy4gV2hpbGUgR1BUIGRvZXMgcHJvZHVjZSB0aGUgYmVzdCBhbnN3ZXJzLCBtb3N0IGxpa2VseSBkdWUgdG8gaXRzIHNpemUsIGl0IGlzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQgKHRoZSBleGFjdCBzaXplIG9mIHRoZSBtb2RlbCBpcyBub3Qga25vd24gYXMgaXQgaXNuXHUyMDE5dCBzb21ldGhpbmcgd2hpY2ggT3BlbkFJIGhhcyBtYWRlIHB1YmxpYyBhdCB0aGUgdGltZSBvZiB3cml0aW5nLCBidXQgaXQgaXMgZXN0aW1hdGVkIHRvIGJlIGluIHRoZSBodW5kcmVkcyBvZiBiaWxsaW9ucyBvZiBwYXJhbWV0ZXJzKS4gPFwvc3Bhbj48XC9wPiJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJ0ZXh0LWVkaXRvciJ9\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-33a164b flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"33a164b\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">UI Website<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImJiZTE2NTciLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+VGhlIGZpbmFsIGNvbXBvbmVudCB0byB0aWUgaXQgYWxsIHRvZ2V0aGVyIGlzIHRoZSBVSSBXZWJzaXRlLiBUaGlzIGFsbG93cyBhIHVzZXIgdG8gcXVlcnkgdGhlIHN5c3RlbSB3aGlsZSBjb250cm9sbGluZyB0aGUgdmFyaW91cyBwYXJhbWV0ZXJzLiA8XC9zcGFuPjxcL3A+In0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6InRleHQtZWRpdG9yIn0=\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-10bcf30 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-image\\\" data-id=\\\"10bcf30\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"image.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<img width=\\\"1024\\\" height=\\\"571\\\" src=\\\"https:\\\/\\\/kmwllc.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI-1024x571.png\\\" class=\\\"attachment-large size-large wp-image-29888\\\" alt=\\\"\\\" srcset=\\\"https:\\\/\\\/kmwllc.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI-1024x571.png 1024w, https:\\\/\\\/kmwllc.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI-300x167.png 300w, https:\\\/\\\/kmwllc.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI-768x428.png 768w, https:\\\/\\\/kmwllc.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/RAG_UI.png 1040w\\\" sizes=\\\"(max-width: 1024px) 100vw, 1024px\\\" \\\/>\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjM5NjRiNDIiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48Yj5Nb2RlbCBwYW5lbDxiciBcLz48XC9iPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5UaGlzIGlzIGZvciB0aGUgbWFpbiBjb250cm9scyB3aGljaCBpbmNsdWRlcyB0aGUgbW9kZWwsIG51bWJlciBvZiBkb2N1bWVudHMgdG8gcmV0cmlldmUsIHdoZXRoZXIgdG8gdXNlIG5ldXJhbCBzZWFyY2gsIGFuZCBpZiB3ZSB3YW50IGFuIEFJIHJlc3BvbnNlIHRvIGJlIGdlbmVyYXRlZC5cdTAwYTA8XC9zcGFuPjxcL3A+PHA+PGI+U291cmNlIHBhbmVsPGJyIFwvPjxcL2I+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkFzIHRoZSBuYW1lIHN1Z2dlc3RzIHRoaXMgcGFuZWwgYWxsb3dzIGEgdXNlciB0byBzZWxlY3Qgd2hpY2ggZG9jdW1lbnQgc291cmNlcyAoU29sciBvciBPcGVuU2VhcmNoKSBzaG91bGQgYmUgcXVlcmllZC5cdTAwYTA8XC9zcGFuPjxcL3A+PHA+PGI+Q2F0ZWdvcmllcyBwYW5lbDxiciBcLz48XC9iPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5UaGlzIHBhbmVsIGFsbG93cyBhIHVzZXIgdG8gbW9yZSBlZmZpY2llbnRseSBzaWZ0IHRocm91Z2ggdGhlIGRvY3VtZW50cyBieSBhcHBseWluZyBmaWx0ZXJzIGJhc2VkIG9uIHRoZSBjYXRlZ29yeSBvZiB0aGUgZG9jdW1lbnQuIFRoaXMgaXMgcG9wdWxhdGVkIGR5bmFtaWNhbGx5IGJ5IHRoZSBmcm9udCBlbmQgYmFzZWQgb24gdGhlIGNhdGVnb3JpZXMgb2YgdGhlIHJldHVybmVkIGRvY3VtZW50cy48XC9zcGFuPjxcL3A+PHA+PGI+U2VsZWN0aW9uPGJyIFwvPjxcL2I+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPlRoZSBmcm9udCBlbmQgYWxzbyBzdXBwb3J0cyBhIHNlbGVjdGlvbiBtb2RlIGFsbG93aW5nIHRoZSB1c2VyIHRvIG1hbnVhbGx5IHNlbGVjdCB3aGljaCBkb2N1bWVudHMgYXJlIHVzZWQgZm9yIGdlbmVyYXRpb24uIFRvIGVuYWJsZSwgdG9nZ2xlIHRoZSBcdTIwMWNzZWxlY3QgZG9jdW1lbnRzXHUyMDFkIGJ1dHRvbi4gQ2hlY2sgYm94ZXMgd2lsbCBhcHBlYXIgbmV4dCB0byB0aGUgZG9jdW1lbnRzIGluZGljYXRpbmcgaWYgdGhleSB3aWxsIGJlIHVzZWQgdGhlIG5leHQgdGltZSB0aGUgXHUyMDFjU2VhcmNoXHUyMDFkIGJ1dHRvbiBpcyBjbGlja2VkLiBOT1RFOiB3aGVuIHRoaXMgbW9kZSBpcyBvbiwgZnJlc2ggZG9jdW1lbnRzIHdpbGwgbm90IGJlIHJldHVybmVkLlx1MDBhMDxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-527066f flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-spacer\\\" data-id=\\\"527066f\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"spacer.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t\\t\\t<div class=\\\"elementor-spacer\\\">\\n\\t\\t\\t<div class=\\\"elementor-spacer-inner\\\"><\\\/div>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<div class=\\\"elementor-element elementor-element-de60b36 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"de60b36\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h2 class=\\\"elementor-heading-title elementor-size-large\\\">Key Takeaways<\\\/h2>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<div class=\\\"elementor-element elementor-element-aef54c4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"aef54c4\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">Retrieval<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjNiZjEzNjkiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+V2UgcGVyZm9ybWVkIGEgcmVsZXZhbmN5IHRlc3Qgb2YgdGhlIHJlc3VsdHMgdXNpbmcgdGhlIG9wZW4gc291cmNlIHRvb2wgPFwvc3Bhbj48YSBocmVmPVwiaHR0cHM6XC9cL3F1ZXBpZC5jb21cL1wiPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5RdWVwaWQ8XC9zcGFuPjxcL2E+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPi4gVGhpcyB0ZXN0IGNvbXBhcmVkIFJBRyByZXN1bHRzIHVzaW5nIGxleGljYWwgdnMgbmV1cmFsIHNlYXJjaCBhbmQgd2Ugbm90aWNlZCBzb21lIHNpZ25pZmljYW50IGRpZmZlcmVuY2VzLiBTaW5jZSB0aGlzIGlzIHByaW1hcmlseSBhIHF1ZXN0aW9uLWFuc3dlcmluZyBzeXN0ZW0sIHF1ZXJpZXMgd2lsbCBnZW5lcmFsbHkgYmUgZm9ybXVsYXRlZCBhcyBxdWVzdGlvbnMuIE5vIHN1cnByaXNlIHRoZXJlLiBIb3dldmVyLCBkb2N1bWVudGF0aW9uIGlzIGdlbmVyYWxseSBub3Qgd3JpdHRlbiBpbiB0aGF0IHZvaWNlLiBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgZm9sbG93aW5nIHR3byBxdWVyaWVzOjxcL3NwYW4+PFwvcD48cD48ZW0+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPkhvdyBkbyBJIG1ha2UgYSBjb2xsZWN0aW9uIGluIFNvbHI\\\/XHUwMGEwPFwvc3Bhbj48XC9lbT48XC9wPjxwPjxlbT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+SG93IGRvIEkgdXNlIGZhY2V0cyBpbiBTb2xyP1x1MDBhMDxcL3NwYW4+PFwvZW0+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+SW4gdGhlIGZpcnN0IHF1ZXJ5IHdlIHdvdWxkIGxpa2UgdG8gcmV0cmlldmUgZG9jdW1lbnRzIHBlcnRhaW5pbmcgdG8gY29sbGVjdGlvbnMgYW5kIGluIHRoZSBzZWNvbmQgcmV0cmlldmUgb25lcyBwZXJ0YWluaW5nIHRvIGZhY2V0cy4gSG93ZXZlciwgdXNpbmcgbGV4aWNhbCBzZWFyY2ggd2Ugbm90aWNlZCB0aGF0IGJvdGggcXVlcmllcyB3b3VsZCBqdXN0IHJldHVybiB0aGUgc2FtZSBzZXQgb2YgZG9jdW1lbnRzIGZyb20gdGhlIEZBUSBzZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uLiBVcG9uIGZ1cnRoZXIgYW5hbHlzaXMgd2UgcmVhbGl6ZWQgdGhhdCBkdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGUgZG9jdW1lbnRhdGlvbjsgYWxsIHRoZSB3b3JkcyBpbiB0aG9zZSBxdWVyaWVzIGFyZSBhYnVuZGFudCBpbiB0aGUgZG9jdW1lbnRzIG90aGVyIHRoYW4gdGhlIHdvcmQgXHUyMDFjSVx1MjAxZC4gVGh1cywgVEZcL0lERiBpbmNvcnJlY3RseSBhc3NpZ25zIGEgbG90IG9mIHdlaWdodCB0byB0aGUgd29yZCBcdTIwMWNJXHUyMDFkIHdoaWNoIGlzIHdoeSB3ZSBvbmx5IHNlZSBkb2N1bWVudHMgZnJvbSB0aGUgRkFRIHNlY3Rpb246IHRoZSBvbmx5IHNlY3Rpb24gd2hpY2ggY29udGFpbnMgdXNlciBxdWVzdGlvbnMuXHUwMGEwPFwvc3Bhbj48XC9wPjxwPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDQwMDtcIj5OZXVyYWwgc2VhcmNoIGRvZXMgbm90IHN1Y2N1bWIgdG8gdGhpcyBwcm9ibGVtLiBJdCBpcyBoYXJkZXIgdG8gc2VlIHdoeSwgc2luY2UgZXhwbGFpbmFiaWxpdHkgZG9lcyBub3QgeWV0IGV4aXN0IHdpdGggbmV1cmFsIG5ldHdvcmtzLCBidXQgaXQgc2VlbXMgYXMgdGhvdWdoIGVtYmVkZGluZyBtb2RlbHMgYXJlIGJldHRlciBhYmxlIHRvIGRldGVjdCB0aGUgc2lnbmlmaWNhbnQgd29yZHMgaW4gdGhlIGFib3ZlIHF1ZXJpZXMgaW4gdGhpcyBjYXNlLlx1MDBhMDxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-30d72f4 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"30d72f4\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">Prompting<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImYyNGE4N2YiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+V2UgZm91bmQgdGhhdCBwcm9tcHRpbmcgd2FzIGFub3RoZXIgdW5leHBlY3RlZCBodXJkbGUuIFRoZSBvcmlnaW5hbCBwbGFuIHdhcyB0aGF0IHRoZSB1c2VyIHF1ZXN0aW9uIHdvdWxkIGJlIHVzZWQgYXMgYm90aCB0aGUgc2VhcmNoIHF1ZXJ5IGFuZCB0aGUgTExNLiBIb3dldmVyLCB0aGUgcXVlc3Rpb24gZm9ybWF0IHdoaWNoIHByb2R1Y2VzIHRoZSBiZXN0IHJlc3VsdHMgZm9yIHJldHJpZXZhbCBkb2VzIG5vdCBuZWNlc3NhcmlseSBwcm9kdWNlIHRoZSBiZXN0IHJlc3VsdHMgZm9yIGdlbmVyYXRpb24gYW5kIHZpY2UgdmVyc2EuIEluIGZhY3QsIGFzIGVhY2ggbW9kZWwgaXMgdHJhaW5lZCBkaWZmZXJlbnRseSB0aGVyZSBpcyBub3QgZXZlbiBhIGZvcm1hdCB0aGF0IGNvbnNpc3RlbnRseSBwcm9kdWNlcyB0aGUgYmVzdCByZXN1bHRzIGFjcm9zcyBtb2RlbHMuIDxcL3NwYW4+PFwvcD48cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+VGhpcyBpcyBkZWZpbml0ZWx5IGEgcG9pbnQgZm9yIGZ1cnRoZXIgaW1wcm92ZW1lbnQgYnV0IGN1cnJlbnRseSB3ZSBmb3VuZCB0aGF0IG9wdGltYWwgcmVzdWx0cyBjYW4gYmUgYWNoaWV2ZWQgYnkgZmlyc3QgdXNpbmcgdGhlIHN5c3RlbSBhcyBhIHNlYXJjaCBlbmdpbmUgd2l0aCBhIHNlYXJjaCBvcHRpbWl6ZWQgcXVlcnksIHNlbGVjdGluZyB0aGVzZSBkb2N1bWVudHMgaW4gc2VsZWN0aW9uIG1vZGUsIGFuZCB0aGVuIHJlLXJ1bm5pbmcgd2l0aCBhIGdlbmVyYXRpb24gb3B0aW1pemVkIHF1ZXJ5Llx1MDBhMDxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-6b7bef5 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"6b7bef5\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h2 class=\\\"elementor-heading-title elementor-size-large\\\">Conclusion<\\\/h2>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjgyYjcyYzMiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+T3ZlcmFsbCwgd2Ugd2VyZSBhYmxlIHRvIHNob3cgaG93IHJlY2VudCBkZXZlbG9wbWVudHMgaW4gTGFyZ2UgTGFuZ3VhZ2UgTW9kZWxzIGNhbiBpbXByb3ZlIGhvdyB3ZSBpbnRlcmFjdCB3aXRoIHRyYWRpdGlvbmFsIHNlYXJjaCBlbmdpbmVzIHVzaW5nIFJBRy4gQWxvbmcgdGhlIHdheSwgd2UgZXhwbG9yZWQgdmFyaW91cyBjaGFsbGVuZ2VzIHdoaWNoIG1heSBjb21lIHVwIHdoaWxlIHdvcmtpbmcgd2l0aCBSQUcgc3lzdGVtcyBhbmQgb3VyIHJlY29tbWVuZGF0aW9ucyBpbiBkZWFsaW5nIHdpdGggdGhlbS5cdTAwYTA8XC9zcGFuPjxcL3A+PHA+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPk91ciBmaW5hbCBkZW1vbnN0cmF0aW9uIGNhbiBiZSB1c2VkIGJvdGggdG8gcXVlcnkgU29sciBhbmQgT3BlblNlYXJjaCBkb2N1bWVudGF0aW9uLCBidXQgbW9yZSBpbXBvcnRhbnRseSwgYWxsb3dzIGJlZ2lubmVycyBpbiBSQUcgdG8gZXhwZXJpbWVudCB3aXRoIHZhcmlvdXMgaHlwZXJwYXJhbWV0ZXJzIGFuZCBtb2RlbHMgdG8gZ2V0IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgZm9yIGhvdyB0aGlzIGN1dHRpbmcgZWRnZSB0ZWNobm9sb2d5IHdvcmtzLlx1MDBhMDxcL3NwYW4+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-fb27d42 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"fb27d42\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<h3 class=\\\"elementor-heading-title elementor-size-medium\\\">Interested in seeing a Demo?<\\\/h3>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjBlMDVhY2UiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJlZGl0b3IiOiI8cD5JZiB5b3UnZCBsaWtlIHRvIHNlZSB3aGF0IHdlJ3ZlIGJ1aWx0IGluIGFjdGlvbixcdTAwYTAgPGEgaHJlZj1cImh0dHBzOlwvXC9rbXdsbGNjb20uc3RhZ2Uuc2l0ZVwvaW5kZXgucGhwXC9jb250YWN0LXVzXC9cIj5Db250YWN0IFVzITxcL2E+PFwvcD4ifSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoidGV4dC1lZGl0b3IifQ==\\\"]\\t\\t\\t<\\\/div>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t<div class=\\\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-de392a5\\\" data-id=\\\"de392a5\\\" data-element_type=\\\"column\\\" data-e-type=\\\"column\\\">\\n\\t\\t\\t<div class=\\\"elementor-widget-wrap\\\">\\n\\t\\t\\t\\t\\t\\t\\t<\\\/div>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t<div class=\\\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-2315efe\\\" data-id=\\\"2315efe\\\" data-element_type=\\\"column\\\" data-e-type=\\\"column\\\">\\n\\t\\t\\t<div class=\\\"elementor-widget-wrap elementor-element-populated\\\">\\n\\t\\t\\t\\t\\t\\t<div class=\\\"elementor-element elementor-element-f7dee41 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"f7dee41\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"title-h6 elementor-heading-title elementor-size-small\\\">Share Post<\\\/div>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjE4ODAwOTkiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJwaW50ZXJlc3QiOiIiLCJ0dW1ibHIiOiIiLCJ0ZWxlZ3JhbSI6IiIsIndoYXRzYXBwIjoiIiwidmliZXIiOiIiLCJ4aW5nIjoiIiwiaWNvbnNfY29sb3IiOiIjMDBERUZGIn0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6InRoZWdlbS1zb2NpYWwtc2hhcmluZyJ9\\\"]\\t\\t<div class=\\\"elementor-element elementor-element-6308251 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-heading\\\" data-id=\\\"6308251\\\" data-element_type=\\\"widget\\\" data-e-type=\\\"widget\\\" data-widget_type=\\\"heading.default\\\">\\n\\t\\t\\t\\t<div class=\\\"elementor-widget-container\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"title-h6 elementor-heading-title elementor-size-small\\\">More From the KMW Blog<\\\/div>\\t\\t\\t\\t<\\\/div>\\n\\t\\t\\t\\t<\\\/div>\\n\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6IjlkYjFkNWMiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJ0aGVnZW1fZWxlbWVudG9yX3ByZXNldCI6ImNvbXBhY3QtdGlueS0yIiwic291cmNlIjpbInBvc3RzIl0sInNob3dfc2VwYXJhdG9yIjoiIiwic2hvd19jb21tZW50cyI6IiIsInJlYWRtb3JlX2J1dHRvbl90ZXh0IjoiUmVhZCBNb3JlIiwibG9hZG1vcmVfYnV0dG9uX3RleHQiOiJMb2FkIE1vcmUiLCJjYXB0aW9uX2NhdGVnb3JpZXNfaW5fdGV4dCI6ImluICIsImNhcHRpb25fYXV0aG9yX2J5X3RleHQiOiJCeSIsInNvdXJjZV90eXBlIjoiY3VzdG9tIiwiZXhjbHVkZV9ibG9nX3Bvc3RzX3R5cGUiOiJjdXJyZW50Iiwib3JkZXJfYnkiOiJkYXRlIiwicGFnaW5hdGlvbl90eXBlIjoibnVtYmVycyJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJ0aGVnZW0tYmxvZ2xpc3QifQ==\\\"]\\t\\t\\t<\\\/div>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t\\t<\\\/div><\\\/div>\\r\\n\\t\\t<\\\/section>\\r\\n\\t\\t\\t\\t<section class=\\\"elementor-section elementor-top-section elementor-element elementor-element-c4daf12 elementor-section-boxed elementor-section-height-default elementor-section-height-default\\\" data-id=\\\"c4daf12\\\" data-element_type=\\\"section\\\" data-e-type=\\\"section\\\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\\\"elementor-container elementor-column-gap-thegem\\\"><div class=\\\"elementor-row\\\">\\r\\n\\t\\t\\t\\t\\t<div class=\\\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-eaac0ae\\\" data-id=\\\"eaac0ae\\\" data-element_type=\\\"column\\\" data-e-type=\\\"column\\\">\\n\\t\\t\\t<div class=\\\"elementor-widget-wrap elementor-element-populated\\\">\\n\\t\\t\\t\\t[elementor-element k=\\\"9109a976d8649ee6d2c8fef8daebbb8b\\\" data=\\\"eyJpZCI6ImQ2ZDRlNzAiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJwcmV2X2xhYmVsIjoiUHJldmlvdXMgUG9zdCIsIm5leHRfbGFiZWwiOiJOZXh0IFBvc3QiLCJzaG93X2JvcmRlcnMiOiIiLCJ0aXRsZV90eXBvZ3JhcGh5X3R5cG9ncmFwaHkiOiJjdXN0b20iLCJ0aXRsZV90eXBvZ3JhcGh5X2ZvbnRfc2l6ZSI6eyJ1bml0IjoicHgiLCJzaXplIjoxNCwic2l6ZXMiOltdfSwidGl0bGVfdHlwb2dyYXBoeV9mb250X3dlaWdodCI6IjcwMCIsIl9fZ2xvYmFsc19fIjp7ImFycm93X2NvbG9yIjoiZ2xvYmFsc1wvY29sb3JzP2lkPXByaW1hcnkiLCJsYWJlbF9jb2xvciI6Imdsb2JhbHNcL2NvbG9ycz9pZD1zZWNvbmRhcnkifSwiYXJyb3ciOiJmYSBmYS1jYXJldC1sZWZ0Iiwic2hvd19hcnJvdyI6IiJ9LCJlbGVtZW50cyI6W10sIndpZGdldFR5cGUiOiJwb3N0LW5hdmlnYXRpb24ifQ==\\\"]\\t\\t\\t<\\\/div>\\n\\t\\t<\\\/div>\\n\\t\\t\\t\\t\\t<\\\/div><\\\/div>\\r\\n\\t\\t<\\\/section>\\r\\n\\t\\t\",\"scripts\":[],\"styles\":[]}}"]},"jetpack_featured_media_url":"https:\/\/kmwllc.com\/wp-content\/uploads\/2024\/06\/blog_rag.png","menu_order":0,"_links":{"self":[{"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/posts\/29895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/comments?post=29895"}],"version-history":[{"count":10,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/posts\/29895\/revisions"}],"predecessor-version":[{"id":30189,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/posts\/29895\/revisions\/30189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/media\/29903"}],"wp:attachment":[{"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/media?parent=29895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/categories?post=29895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kmwllc.com\/index.php\/wp-json\/wp\/v2\/tags?post=29895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}