fix all course links

This commit is contained in:
kanungle
2026-03-16 23:04:33 -07:00
parent 67855885be
commit 1b1908c566
14 changed files with 22 additions and 22 deletions
@@ -135,7 +135,7 @@ collection_info = client.get_collection(collection_name)
print("Collection info:", collection_info)
```
Expected output: Detailed collection information showing `points_count=2`, vector configuration, and [HNSW](https://qdrant.tech/articles/filterable-hnsw/) settings.
Expected output: Detailed collection information showing `points_count=2`, vector configuration, and [HNSW](/articles/filterable-hnsw/) settings.
## Step 8: Run Your First Similarity Search
@@ -450,7 +450,7 @@ In Qdrant, this metadata lives in the **payload** - a JSON object attached to ea
### What Metadata Enables
**Disclaimer**: For performance reasons, filterable fields must be indexed using the [Payload Index](https://qdrant.tech/documentation/concepts/indexing/#payload-index).
**Disclaimer**: For performance reasons, filterable fields must be indexed using the [Payload Index](/documentation/concepts/indexing/#payload-index).
**1. Filtered Search (Exact Match)**
You can filter results based on exact metadata values, which is perfect for categorical data.
@@ -165,4 +165,4 @@ If you are training your own model or designing custom features, use these guide
* **Dot product** accounts for magnitude and direction.
4. **Experiment:** Qdrant allows you to set distance metrics per named vector, making it easy to A/B test different metrics on your specific data.
Reference: [Distance Metrics in Qdrant Documentation](https://qdrant.tech/documentation/concepts/search/#metrics)
Reference: [Distance Metrics in Qdrant Documentation](/documentation/concepts/search/#metrics)
@@ -170,7 +170,7 @@ Choosing the right embedding source is a critical decision that balances cost, p
### 1. On-Premise, Optimized: FastEmbed by Qdrant
[FastEmbed](https://qdrant.tech/documentation/fastembed/) is Qdrant's optimized embedding solution designed for on-premise, high-speed generation with minimal dependencies. It delivers low-latency, CPU-friendly embedding generation using quantized model weights and ONNX Runtime, making it up to 50% faster than traditional PyTorch-based models while maintaining competitive accuracy.
[FastEmbed](/documentation/fastembed/) is Qdrant's optimized embedding solution designed for on-premise, high-speed generation with minimal dependencies. It delivers low-latency, CPU-friendly embedding generation using quantized model weights and ONNX Runtime, making it up to 50% faster than traditional PyTorch-based models while maintaining competitive accuracy.
The default model for standalone use, [`BAAI/bge-small-en-v1.5`](https://huggingface.co/BAAI/bge-small-en-v1.5), is lightweight at ~67MB compared to 300MB+ for many Hugging Face models. While the `qdrant-client` integration allows you to specify any compatible model, using the default is a great way to get started quickly.
@@ -233,7 +233,7 @@ While vectors capture the essence of data, payloads hold structured metadata for
Payloads can store textual data (descriptions, tags, categories), numerical values (dates, prices, ratings), and complex structures (nested objects, arrays). When searching for dog images, for example, the vector finds visually similar images while payload filters narrow results to images taken within the last year, tagged with "vacation," or meeting specific rating criteria.
Learn more: [Payload Documentation](https://qdrant.tech/documentation/concepts/payload/)
Learn more: [Payload Documentation](/documentation/concepts/payload/)
### Payload Types
@@ -303,7 +303,7 @@ Here are some of the most common condition types:
<aside role="alert"> This list covers the most common conditions available at the time of this course. Qdrant is constantly evolving, and new filtering capabilities may have been added.
For the complete, most up-to-date list of all available filtering conditions, please refer to the **[official Filtering documentation](https://qdrant.tech/documentation/concepts/filtering/#filtering-conditions)**.</aside>
For the complete, most up-to-date list of all available filtering conditions, please refer to the **[official Filtering documentation](/documentation/concepts/filtering/#filtering-conditions)**.</aside>
### Filtering Capabilities Reference
@@ -381,7 +381,7 @@ client.create_payload_index(
When filters are highly selective, Qdrant's query planner may bypass vector indexing entirely and use payload indexes for faster results.
For comprehensive filtering examples and advanced usage patterns, see the [Filtering Documentation](https://qdrant.tech/documentation/concepts/filtering/) and [Complete Guide to Filtering in Vector Search](https://qdrant.tech/articles/vector-search-filtering/).
For comprehensive filtering examples and advanced usage patterns, see the [Filtering Documentation](/documentation/concepts/filtering/) and [Complete Guide to Filtering in Vector Search](/articles/vector-search-filtering/).
## Key Takeaways
@@ -349,4 +349,4 @@ encoder_large = SentenceTransformer("all-mpnet-base-v2") # Larger, potentially
encoder_fast = SentenceTransformer("all-MiniLM-L12-v2") # Different size/speed tradeoff
```
**Ready for Day 2?** Tomorrow you'll learn how Qdrant makes vector search lightning-fast through [HNSW](https://qdrant.tech/articles/filterable-hnsw/) indexing and how to optimize for production workloads.
**Ready for Day 2?** Tomorrow you'll learn how Qdrant makes vector search lightning-fast through [HNSW](/articles/filterable-hnsw/) indexing and how to optimize for production workloads.
@@ -124,7 +124,7 @@ Similarity("cheese for pizza", "Grated hard cheese")
Computing and maintaining per-term IDF for every term in the corpus can be annoying.
> Qdrant maintains **collection-level** IDF for sparse vectors and applies it for you during scoring.
Enable the [IDF modifier](https://qdrant.tech/documentation/concepts/indexing/#idf-modifier) in the collection configuration:
Enable the [IDF modifier](/documentation/concepts/indexing/#idf-modifier) in the collection configuration:
{{< code-snippet path="/documentation/headless/snippets/create-collection/sparse-vector-idf/" >}}
@@ -334,7 +334,7 @@ Instead of assigning word weights solely based on the corpus statistics, we coul
In practice, authors of sparse neural retrievers often start from dense encoders and adapt them to produce sparse text representations: similar in shape to bag‑of‑words, but with **weights produced by a machine learning model**.
If you’re interested in details, you can check out ["Modern Sparse Neural Retrieval: From Theory to Practice"](https://qdrant.tech/articles/modern-sparse-neural-retrieval/) article.
If you’re interested in details, you can check out ["Modern Sparse Neural Retrieval: From Theory to Practice"](/articles/modern-sparse-neural-retrieval/) article.
Probably the most famous and used model in the field of modern sparse neural retrieval is called the Sparse Lexical and Expansion Model or SPLADE.
@@ -383,7 +383,7 @@ client.create_collection(
The FastEmbed library provides **SPLADE++**; one of the latest models in the SPLADE family.
> **<font color='red'>Update:</font>** Since the release of [Qdrant Cloud Inference](https://qdrant.tech/blog/qdrant-cloud-inference-launch/), you can move SPLADE++ embedding inference from local execution (as shown in this notebook) to the Qdrant Cloud, reducing latency and centralizing resource usage.
> **<font color='red'>Update:</font>** Since the release of [Qdrant Cloud Inference](/blog/qdrant-cloud-inference-launch/), you can move SPLADE++ embedding inference from local execution (as shown in this notebook) to the Qdrant Cloud, reducing latency and centralizing resource usage.
As a result, this step looks mostly identical to using BM25 in Qdrant.
@@ -435,7 +435,7 @@ SPLADE **expands** the input by adding contextually relevant tokens and simultan
For example, "*mac and cheese*" will be expanded to: "*mac and cheese dairy apple dish & variety brand food made , foods difference eat restaurant or*", resulting in a SPLADE-generated sparse representation with **17 non-zero values**.
If you’d like to experiment with SPLADE's expansion behavior, check out our documentation on [using SPLADE in FastEmbed](https://qdrant.tech/documentation/fastembed/fastembed-splade/). It includes a utility function to decode SPLADE++ sparse representations back into tokens with their corresponding weights.
If you’d like to experiment with SPLADE's expansion behavior, check out our documentation on [using SPLADE in FastEmbed](/documentation/fastembed/fastembed-splade/). It includes a utility function to decode SPLADE++ sparse representations back into tokens with their corresponding weights.
#### Sparse Neural Retrieval with SPLADE++ & Qdrant
@@ -477,12 +477,12 @@ SPLADE models are a strong choice for sparse neural retrieval, but they have lim
We’ve been exploring sparse neural retrieval as a promising approach for domains where keyword-based matching is useful, but traditional methods like BM25 fall short due to their lack of semantic understanding.
We’ve developed and open-sourced two custom sparse neural retrievers, both built on top of the BM25 formula.
You can find all the details in the following articles: [BM42 Sparse Neural Retriever](https://qdrant.tech/articles/bm42/) and [miniCOIL Sparse Neural Retriever](https://qdrant.tech/articles/minicoil/).
You can find all the details in the following articles: [BM42 Sparse Neural Retriever](/articles/bm42/) and [miniCOIL Sparse Neural Retriever](/articles/minicoil/).
Both models can be used with FastEmbed and Qdrant in the same way we demonstrated with BM25 and SPLADE++ in this tutorial.
- FastEmbed handle for **BM42**: `Qdrant/bm42-all-minilm-l6-v2-attentions`
- FastEmbed handle for **miniCOIL**: `Qdrant/minicoil-v1` (here's the detailed guide ["How to use miniCOIL"](https://qdrant.tech/documentation/fastembed/fastembed-minicoil/))
- FastEmbed handle for **miniCOIL**: `Qdrant/minicoil-v1` (here's the detailed guide ["How to use miniCOIL"](/documentation/fastembed/fastembed-minicoil/))
## Key Takeaways
@@ -124,7 +124,7 @@ This combined strategy of a hybrid storage configuration and streaming ingestion
This architecture strikes a balance by keeping infrastructure costs low by minimizing RAM usage while maintaining fast and accurate search performance. By understanding and applying these ingestion strategies, you can confidently scale your Qdrant-powered applications to handle real-world data volumes.
> Learn more in a complete hands-on guide in our **[Large-Scale Search tutorial](https://qdrant.tech/documentation/database-tutorials/large-scale-search/)**.
> Learn more in a complete hands-on guide in our **[Large-Scale Search tutorial](/documentation/database-tutorials/large-scale-search/)**.
> **Check out the reference implementation:**
> [qdrant/laion-400m-benchmark on GitHub](https://github.com/qdrant/laion-400m-benchmark)
@@ -17,7 +17,7 @@ Explore the Qdrant ecosystem and learn how to integrate with leading AI and data
Learn about the Qdrant ecosystem and integration strategies.
[**➡️ Partner Integrations**](https://qdrant.tech/partners/)
[**➡️ Partner Integrations**](/partners/)
---
@@ -73,7 +73,7 @@ When you query "What is Qdrant?" with a Qdrant website link, the system:
- [CAMEL Qdrant Integration](https://docs.camel-ai.org/cookbooks/applications/customer_service_Discord_bot_with_agentic_RAG#integrating-qdrant-for-large-files-to-build-a-more-powerful-discord-bot):
Official CAMEL documentation for integrating Qdrant with Discord bots and agentic RAG. Learn about Auto-Retrieval, vector storage, and building powerful customer service bots.
- [Qdrant & CAMEL Integration Guide](https://qdrant.tech/documentation/frameworks/camel/):
- [Qdrant & CAMEL Integration Guide](/documentation/frameworks/camel/):
Official Qdrant documentation on integrating with CAMEL-AI. Learn how to use Qdrant as a storage mechanism for ingesting and retrieving semantically similar data in your multi-agent systems.
⭐ **Show your support!** Give CAMEL a star on their GitHub repository: [github.com/camel-ai/camel](https://github.com/camel-ai/camel)
@@ -84,7 +84,7 @@ This architecture extends beyond movie recommendations to various domains:
- [Haystack Qdrant Integration](https://haystack.deepset.ai/integrations/qdrant-document-store):
Official Haystack documentation for using Qdrant as a document store. Learn about installation, usage, and connecting to Qdrant Cloud clusters.
- [Qdrant & Haystack Integration Guide](https://qdrant.tech/documentation/frameworks/haystack/):
- [Qdrant & Haystack Integration Guide](/documentation/frameworks/haystack/):
Official Qdrant documentation on integrating with Haystack. Learn how to build powerful NLP pipelines with vector search capabilities.
⭐ **Show your support!** Give Haystack a star on their GitHub repository: [github.com/deepset-ai/haystack](https://github.com/deepset-ai/haystack)
@@ -122,7 +122,7 @@ This architecture enables various sophisticated use cases:
- [Build a RAG System with Jina Embeddings and Qdrant](https://jina.ai/news/build-a-rag-system-with-jina-embeddings-and-qdrant/):
Official Jina AI guide on building RAG systems with Jina Embeddings v2 and Qdrant. Learn how to create retrieval-augmented generation engines using LlamaIndex and multimodal embeddings.
- [Jina AI & Qdrant Integration Guide](https://qdrant.tech/documentation/embeddings/jina-embeddings/):
- [Jina AI & Qdrant Integration Guide](/documentation/embeddings/jina-embeddings/):
Official Qdrant documentation on integrating Jina AI embeddings with Qdrant. Learn how to implement multimodal search with text and image embeddings.
⭐ **Show your support!** Give Jina AI a star on their GitHub repository: [github.com/jina-ai/jina](https://github.com/jina-ai/jina)
@@ -111,7 +111,7 @@ This architecture enables various sophisticated use cases:
- [LlamaIndex Qdrant Integration](https://docs.llamaindex.ai/en/stable/examples/vector_stores/qdrant_hybrid/):
Official LlamaIndex documentation for using Qdrant as a vector store. Learn about hybrid search, vector storage configuration, and query examples.
- [Qdrant & LlamaIndex Integration Guide](https://qdrant.tech/documentation/frameworks/llama-index/):
- [Qdrant & LlamaIndex Integration Guide](/documentation/frameworks/llama-index/):
Official Qdrant documentation on integrating with LlamaIndex. Learn how to build sophisticated RAG applications and AI agents with function calling capabilities.
⭐ **Show your support!** Give LlamaIndex a star on their GitHub repository: [github.com/run-llama/llama_index](https://github.com/run-llama/llama_index)
@@ -116,7 +116,7 @@ This monitoring architecture enables various enterprise use cases:
## Resources
- [Optimizing RAG Through an Evaluation-Based Methodology](https://qdrant.tech/articles/rapid-rag-optimization-with-qdrant-and-quotient/):
- [Optimizing RAG Through an Evaluation-Based Methodology](/articles/rapid-rag-optimization-with-qdrant-and-quotient/):
Learn how to optimize RAG systems using Qdrant and Quotient through systematic evaluation. Covers experimentation with chunking, retrieval strategies, and model selection.
- [Building High-Quality RAG Applications with Qdrant and Quotient](https://blog.quotientai.co/building-high-quality-rag-applications-with-qdrant-and-quotient/):
@@ -93,7 +93,7 @@ This architecture enables various enterprise use cases:
- [Unstructured Qdrant Destination](https://docs.unstructured.io/ui/destinations/qdrant):
Official Unstructured documentation for sending processed data to Qdrant. Learn about Qdrant Cloud integration, collection setup, and workflow configuration.
- [Qdrant & Unstructured Integration Guide](https://qdrant.tech/documentation/frameworks/unstructured/):
- [Qdrant & Unstructured Integration Guide](/documentation/frameworks/unstructured/):
Official Qdrant documentation for Unstructured.io integration, covering setup and best practices for document processing pipelines.
⭐ **Show your support!** Give Unstructured a star on their GitHub repository: [github.com/Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured)