<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Day 5: Advanced APIs on Qdrant - Vector Database</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/</link><description>Recent content in Day 5: Advanced APIs on Qdrant - Vector Database</description><generator>Hugo</generator><language>en-us</language><managingEditor>info@qdrant.tech (Andrey Vasnetsov)</managingEditor><webMaster>info@qdrant.tech (Andrey Vasnetsov)</webMaster><atom:link href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/index.xml" rel="self" type="application/rss+xml"/><item><title>Multivectors for Late Interaction Models</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/colbert-multivectors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/colbert-multivectors/</guid><description>&lt;div class="date">
 &lt;img class="date-icon" src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/icons/outline/date-blue.svg" alt="Calendar" /> Day 5 
&lt;/div>

&lt;h1 id="multivectors-for-late-interaction-models">Multivectors for Late Interaction Models&lt;/h1>
&lt;div class="video">
&lt;iframe 
 src="https://www.youtube.com/embed/8ptlXSsSEPk?si=TzsWlastazBQPWWb"
 frameborder="0"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
 referrerpolicy="strict-origin-when-cross-origin"
 allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;br/>
&lt;p>Many embedding models represent data as a single vector. Transformer-based encoders achieve this by pooling the per-token vector matrix from the final layer into a single vector. That works great for most cases. But when your documents get more complex, cover multiple topics, or require context sensitivity, that one-size-fits-all compression starts to break down. You lose granularity and semantic alignment (though chunking and learned pooling mitigate this to an extent).&lt;/p></description></item><item><title>The Universal Query API</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/universal-query-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/universal-query-api/</guid><description>&lt;div class="date">
 &lt;img class="date-icon" src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/icons/outline/date-blue.svg" alt="Calendar" /> Day 5 
&lt;/div>

&lt;h1 id="the-universal-query-api">The Universal Query API&lt;/h1>
&lt;p>Picture this: a customer types &amp;ldquo;leather jackets&amp;rdquo; into your store&amp;rsquo;s search bar. You want to show items that match the style semantically - so a bomber jacket surfaces even if it doesn&amp;rsquo;t mention &amp;ldquo;leather jackets&amp;rdquo; verbatim - but you also need to enforce your business rules. Only products under $200, only items in stock, only jackets released within the past year. Traditionally, you&amp;rsquo;d fire off a search, gather results, then apply filters and glue code. With Qdrant&amp;rsquo;s &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/hybrid-queries/">Universal Query API&lt;/a>, all of that happens in one declarative request.&lt;/p></description></item><item><title>Demo: Universal Query for Hybrid Retrieval</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/universal-query-demo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/universal-query-demo/</guid><description>&lt;div class="date">
 &lt;img class="date-icon" src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/icons/outline/date-blue.svg" alt="Calendar" /> Day 5 
&lt;/div>

&lt;h1 id="demo-universal-query-for-hybrid-retrieval">Demo: Universal Query for Hybrid Retrieval&lt;/h1>
&lt;p>In this hands-on demo, we&amp;rsquo;ll build a research paper discovery system using the arXiv dataset that showcases the full power of Qdrant&amp;rsquo;s Universal Query API. You&amp;rsquo;ll see how to combine dense semantics, sparse keywords, and ColBERT reranking to help researchers find exactly the papers they need - all in a single query.&lt;/p>
&lt;p>&lt;strong>Follow along in Colab:&lt;/strong> &lt;a href="https://colab.research.google.com/github/qdrant/examples/blob/master/course/day_5/universal-query-demo.ipynb">
&lt;img src="https://colab.research.google.com/assets/colab-badge.svg" style="display:inline; margin:0;" alt="Open In Colab"/>
&lt;/a>&lt;/p>
&lt;h2 id="the-challenge-intelligent-research-discovery">The Challenge: Intelligent Research Discovery&lt;/h2>
&lt;p>Imagine you&amp;rsquo;re a machine learning researcher looking for &amp;ldquo;transformer architectures for multimodal learning with attention mechanisms.&amp;rdquo; You need to:&lt;/p></description></item><item><title>Project: Building a Recommendation System</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/pitstop-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/course/essentials/day-5/pitstop-project/</guid><description>&lt;div class="date">
 &lt;img class="date-icon" src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/icons/outline/date-blue.svg" alt="Calendar" /> Day 5 
&lt;/div>

&lt;h1 id="project-building-a-recommendation-system">Project: Building a Recommendation System&lt;/h1>
&lt;p>Bring together dense, sparse, and multivectors in one atomic Universal Query. You&amp;rsquo;ll retrieve candidates, fuse signals, rerank with ColBERT, and apply business filters - in a single request.&lt;/p>
&lt;h2 id="your-mission">Your Mission&lt;/h2>
&lt;p>Build a complete recommendation system using Qdrant’s Universal Query API with dense, sparse, and ColBERT multivectors in one request.&lt;/p>
&lt;p>&lt;strong>Estimated Time:&lt;/strong> 90 minutes&lt;/p>
&lt;h2 id="what-youll-build">What You&amp;rsquo;ll Build&lt;/h2>
&lt;p>A hybrid recommendation system using:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Multi-vector architecture&lt;/strong> with dense, sparse, and ColBERT vectors&lt;/li>
&lt;li>&lt;strong>Universal Query API&lt;/strong> for atomic multi-stage search&lt;/li>
&lt;li>&lt;strong>RRF fusion&lt;/strong> for combining candidates&lt;/li>
&lt;li>&lt;strong>ColBERT reranking&lt;/strong> for fine-grained relevance scoring&lt;/li>
&lt;li>&lt;strong>Business rule filtering&lt;/strong> at multiple pipeline stages&lt;/li>
&lt;li>&lt;strong>Production-ready patterns&lt;/strong> for recommendation systems&lt;/li>
&lt;/ul>
&lt;h2 id="setup">Setup&lt;/h2>
&lt;h3 id="prerequisites">Prerequisites&lt;/h3>
&lt;ul>
&lt;li>Qdrant Cloud cluster (URL + API key)&lt;/li>
&lt;li>Python 3.9+ (or Google Colab)&lt;/li>
&lt;li>Packages: &lt;code>qdrant-client&lt;/code>, &lt;code>fastembed&lt;/code>&lt;/li>
&lt;/ul>
&lt;h3 id="models">Models&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Dense&lt;/strong>: &lt;code>sentence-transformers/all-MiniLM-L6-v2&lt;/code> (384-dim)&lt;/li>
&lt;li>&lt;strong>Sparse&lt;/strong>: &lt;code>prithivida/Splade_PP_en_v1&lt;/code> (SPLADE)&lt;/li>
&lt;li>&lt;strong>Multivector&lt;/strong>: &lt;code>colbert-ir/colbertv2.0&lt;/code> (128-dim tokens)&lt;/li>
&lt;/ul>
&lt;h3 id="dataset">Dataset&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Scope&lt;/strong>: A small set of sample items (e.g., 10-20 movies).&lt;/li>
&lt;li>&lt;strong>Payload Fields&lt;/strong>: &lt;code>title&lt;/code>, &lt;code>description&lt;/code>, &lt;code>category&lt;/code>, &lt;code>genre&lt;/code>, &lt;code>year&lt;/code>, &lt;code>rating&lt;/code>, &lt;code>user_segment&lt;/code>, &lt;code>popularity_score&lt;/code>, &lt;code>release_date&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Filters Used&lt;/strong>: &lt;code>category&lt;/code>, &lt;code>user_segment&lt;/code>, &lt;code>release_date&lt;/code>, &lt;code>popularity_score&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="build-steps">Build Steps&lt;/h2>
&lt;h3 id="step-1-set-up-the-hybrid-collection">Step 1: Set Up the Hybrid Collection&lt;/h3>
&lt;h4 id="initialize-client-and-collection">Initialize Client and Collection&lt;/h4>
&lt;p>First, connect to Qdrant and create a clean collection for our recommendation system:&lt;/p></description></item></channel></rss>