# Qdrant > Documentation for Qdrant ## Pages - [Qdrant Documentation](qdrant-documentation.md) - [https://qdrant.tech/ llms-full.txt](httpsqdranttech-llms-fulltxt.md): Qdrant is a cutting-edge platform focused on delivering exceptional performance and efficiency in vector similarity s... - [[Anchor](https://qdrant.tech/documentation/private-cloud/backups/\#backups) Backups](anchorhttpsqdranttechdocumentationprivate-cloudbackupsbackups-backups.md): To create a one-time backup, create a`QdrantClusterSnapshot`resource: - [[Anchor](https://qdrant.tech/benchmarks/benchmark-faq/\#benchmarks-faq) Benchmarks F.A.Q.](anchorhttpsqdranttechbenchmarksbenchmark-faqbenchmarks-faq-benchmarks-faq.md): Probably, yes. Even if we try to be objective, we are not experts in using all the existing vector databases. - [High-Performance Vector Search at Scale](high-performance-vector-search-at-scale.md): Powering the next generation of AI applications with advanced, open-source vector similarity search technology. - [[Anchor](https://qdrant.tech/documentation/fastembed/\#what-is-fastembed) What is FastEmbed?](anchorhttpsqdranttechdocumentationfastembedwhat-is-fastembed-what-is-fastembed.md): FastEmbed is a lightweight Python library built for embedding generation. It supports popular embedding models and of... - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/\#qdrant-hybrid-cloud) Qdrant Hybrid Cloud](anchorhttpsqdranttechdocumentationhybrid-cloudqdrant-hybrid-cloud-qdrant-hybrid-.md): Seamlessly deploy and manage your vector database across diverse environments, ensuring performance, security, and co... - [[Anchor](https://qdrant.tech/documentation/cloud/\#about-qdrant-managed-cloud) About Qdrant Managed Cloud](anchorhttpsqdranttechdocumentationcloudabout-qdrant-managed-cloud-about-qdrant-m.md): Qdrant Managed Cloud is our SaaS (software-as-a-service) solution, providing managed Qdrant database clusters on the ... - [[Anchor](https://qdrant.tech/documentation/database-tutorials/migration/\#migration) Migration](anchorhttpsqdranttechdocumentationdatabase-tutorialsmigrationmigration-migration.md): Migrating data between vector databases, especially across regions, platforms, or deployment types, can be a hassle. ... - [[Anchor](https://qdrant.tech/documentation/interfaces/\#interfaces) Interfaces](anchorhttpsqdranttechdocumentationinterfacesinterfaces-interfaces.md): Qdrant supports these “official” clients. - [Single node benchmarks (2022)](single-node-benchmarks-2022.md): August 23, 2022 - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/using-multivector-representations/\#how-to-effectively-use-multivector-representations-in-qdrant-for-reranking) How to Effectively Use Multivector Representations in Qdrant for Reranking](anchorhttpsqdranttechdocumentationadvanced-tutorialsusing-multivector-representa.md): Multivector Representations are one of the most powerful features of Qdrant. However, most people don’t use them effe... - [1. Connect to Qdrant server](1-connect-to-qdrant-server.md): client = QdrantClient(" - [Example documents and query](example-documents-and-query.md): documents = [\ - [[Anchor](https://qdrant.tech/documentation/cloud-api/\#qdrant-cloud-api-powerful-grpc-and-flexible-restjson-interfaces) Qdrant Cloud API: Powerful gRPC and Flexible REST/JSON Interfaces](anchorhttpsqdranttechdocumentationcloud-apiqdrant-cloud-api-powerful-grpc-and-fl.md): **Note:** This is not the Qdrant REST or gPRC API of the database itself. For database APIs & SDKs, see our list of [... - [[Anchor](https://qdrant.tech/documentation/private-cloud/configuration/\#private-cloud-configuration) Private Cloud Configuration](anchorhttpsqdranttechdocumentationprivate-cloudconfigurationprivate-cloud-config.md): The Qdrant Private Cloud helm chart has several configuration options. The following YAML shows all configuration opt... - [What is a Sparse Vector? How to Achieve Vector-based Hybrid Search](what-is-a-sparse-vector-how-to-achieve-vector-based-hybrid-search.md): Nirant Kasliwal - [Usage example](usage-example.md): sorted_tokens = extract_and_map_sparse_vector(vec, tokenizer) - [Qdrant client setup](qdrant-client-setup.md): client = QdrantClient(":memory:") - [Define collection name](define-collection-name.md): COLLECTION_NAME = "example_collection" - [Insert sparse vector into Qdrant collection](insert-sparse-vector-into-qdrant-collection.md): point_id = 1 # Assign a unique ID for the point - [Preparing a query vector](preparing-a-query-vector.md): query_text = "Who was Arthur Ashe?" - [Searching for similar documents](searching-for-similar-documents.md): result = client.search( - [Compute sparse and dense vectors](compute-sparse-and-dense-vectors.md): query_indices, query_values = compute_sparse_vector(query_text) - [[Anchor](https://qdrant.tech/documentation/examples/rag-chatbot-red-hat-openshift-haystack/\#private-chatbot-for-interactive-learning) Private Chatbot for Interactive Learning](anchorhttpsqdranttechdocumentationexamplesrag-chatbot-red-hat-openshift-haystack.md): | Time: 120 min | Level: Advanced | | | - [Qdrant 1.7.0 has just landed!](qdrant-170-has-just-landed.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/documentation/private-cloud/logging-monitoring/\#configuring-logging--monitoring-in-qdrant-private-cloud) Configuring Logging & Monitoring in Qdrant Private Cloud](anchorhttpsqdranttechdocumentationprivate-cloudlogging-monitoringconfiguring-log.md): You can access the logs with kubectl or the Kubernetes log management tool of your choice. For example: - [[Anchor](https://qdrant.tech/documentation/guides/administration/\#administration) Administration](anchorhttpsqdranttechdocumentationguidesadministrationadministration-administrat.md): Qdrant exposes administration tools which enable to modify at runtime the behavior of a qdrant instance without chang... - [Deliver Better Recommendations with Qdrant’s new API](deliver-better-recommendations-with-qdrants-new-api.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/documentation/examples/hybrid-search-llamaindex-jinaai/\#chat-with-product-pdf-manuals-using-hybrid-search) Chat With Product PDF Manuals Using Hybrid Search](anchorhttpsqdranttechdocumentationexampleshybrid-search-llamaindex-jinaaichat-wi.md): | Time: 120 min | Level: Advanced | Output: [GitHub](https://github.com/infoslack/qdrant-example/blob/main/HC-demo/HC... - [connect embeddings](connect-embeddings.md): from llama_index.embeddings.jinaai import JinaEmbedding - [connect LLM](connect-llm.md): from llama_index.llms.huggingface import HuggingFaceInferenceAPI - [setting embed_model to Jina and llm model to Mixtral](setting-embed-model-to-jina-and-llm-model-to-mixtral.md): from llama_index.core import Settings - [retriever](retriever.md): retriever = VectorIndexRetriever( - [response synthesizer](response-synthesizer.md): response_synthesizer = get_response_synthesizer( - [query engine](query-engine.md): query_engine = RetrieverQueryEngine( - [[Anchor](https://qdrant.tech/documentation/fastembed/fastembed-rerankers/\#how-to-use-rerankers-with-fastembed) How to use rerankers with FastEmbed](anchorhttpsqdranttechdocumentationfastembedfastembed-rerankershow-to-use-reranke.md): A reranker is a model that improves the ordering of search results. A subset of documents is initially retrieved usin... - [Any\* Embedding Model Can Become a Late Interaction Model... If You Give It a Chance!](any-embedding-model-can-become-a-late-interaction-model-if-you-give-it-a-chance.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/documentation/database-tutorials/huggingface-datasets/\#load-and-search-hugging-face-datasets-with-qdrant) Load and Search Hugging Face Datasets with Qdrant](anchorhttpsqdranttechdocumentationdatabase-tutorialshuggingface-datasetsload-and.md): [Hugging Face](https://huggingface.co/) provides a platform for sharing and using ML models and - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/reranking-hybrid-search/\#reranking-hybrid-search-results-with-qdrant-vector-database) Reranking Hybrid Search Results with Qdrant Vector Database](anchorhttpsqdranttechdocumentationadvanced-tutorialsreranking-hybrid-searchreran.md): Hybrid search combines dense and sparse retrieval to deliver precise and comprehensive results. By adding reranking w... - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/code-search/\#navigate-your-codebase-with-semantic-search-and-qdrant) Navigate Your Codebase with Semantic Search and Qdrant](anchorhttpsqdranttechdocumentationadvanced-tutorialscode-searchnavigate-your-cod.md): | Time: 45 min | Level: Intermediate | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](h... - [Extract the code snippets from the structures to a separate list](extract-the-code-snippets-from-the-structures-to-a-separate-list.md): code_snippets = [\ - [Note: This might take a while since inference happens implicitly.](note-this-might-take-a-while-since-inference-happens-implicitly.md) - [But too many processes may trigger swap memory and hurt performance.](but-too-many-processes-may-trigger-swap-memory-and-hurt-performance.md): client.upload_points("qdrant-sources", points=points, batch_size=64) - [Product Quantization in Vector Search \| Qdrant](product-quantization-in-vector-search-qdrant.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/articles/product-quantization/\#product-quantization-demystified-streamlining-efficiency-in-data-management) Product Quantization Demystified: Streamlining Efficiency in Data Management](anchorhttpsqdranttecharticlesproduct-quantizationproduct-quantization-demystifie.md): Qdrant 1.1.0 brought the support of [Scalar Quantization](https://qdrant.tech/articles/scalar-quantization/), - [[Anchor](https://qdrant.tech/documentation/private-cloud/qdrant-cluster-management/\#managing-a-qdrant-cluster) Managing a Qdrant Cluster](anchorhttpsqdranttechdocumentationprivate-cloudqdrant-cluster-managementmanaging.md): The most minimal QdrantCluster configuration is: - [[Anchor](https://qdrant.tech/documentation/cloud-account-setup/\#setting-up-a-qdrant-cloud-account) Setting up a Qdrant Cloud Account](anchorhttpsqdranttechdocumentationcloud-account-setupsetting-up-a-qdrant-cloud-a.md): There are different ways to register for a Qdrant Cloud account: - [[Anchor](https://qdrant.tech/documentation/examples/rag-contract-management-stackit-aleph-alpha/\#region-specific-contract-management-system) Region-Specific Contract Management System](anchorhttpsqdranttechdocumentationexamplesrag-contract-management-stackit-aleph-.md): | Time: 90 min | Level: Advanced | | | - [[Anchor](https://qdrant.tech/documentation/search-precision/automate-filtering-with-llms/\#automate-filtering-with-llms) Automate filtering with LLMs](anchorhttpsqdranttechdocumentationsearch-precisionautomate-filtering-with-llmsau.md): Our [complete guide to filtering in vector search](https://qdrant.tech/articles/vector-search-filtering/) describes w... - [[Anchor](https://qdrant.tech/documentation/guides/common-errors/\#solving-common-errors) Solving common errors](anchorhttpsqdranttechdocumentationguidescommon-errorssolving-common-errors-solvi.md): Each collection segment needs some files to be open. At some point you may encounter the following errors in your ser... - [Qdrant 1.8.0: Enhanced Search Capabilities for Better Results](qdrant-180-enhanced-search-capabilities-for-better-results.md): David Myriel, Mike Jang - [[Anchor](https://qdrant.tech/articles/qdrant-1.8.x/\#unlocking-next-level-search-exploring-qdrant-180s-advanced-search-capabilities) Unlocking Next-Level Search: Exploring Qdrant 1.8.0’s Advanced Search Capabilities](anchorhttpsqdranttecharticlesqdrant-18xunlocking-next-level-search-exploring-qdr.md): [Qdrant 1.8.0 is out!](https://github.com/qdrant/qdrant/releases/tag/v1.8.0). - [CPU budget, how many CPUs (threads) to allocate for an optimization job.](cpu-budget-how-many-cpus-threads-to-allocate-for-an-optimization-job.md): optimizer_cpu_budget: 0 - [What is a Vector Database?](what-is-a-vector-database.md): Sabrina Aquino - [[Anchor](https://qdrant.tech/documentation/guides/configuration/\#configuration) Configuration](anchorhttpsqdranttechdocumentationguidesconfigurationconfiguration-configuration.md): Qdrant ships with sensible defaults for collection and network settings that are suitable for most use cases. You can... - [Qdrant logs to stdout. You may configure to also write logs to a file on disk.](qdrant-logs-to-stdout-you-may-configure-to-also-write-logs-to-a-file-on-disk.md) - [# Logging format, supports `text` and `json`](logging-format-supports-text-and-json.md) - [format: text](format-text.md): storage: - [Set to true to prevent service from sending usage statistics to the developers.](set-to-true-to-prevent-service-from-sending-usage-statistics-to-the-developers.md) - [Read more: https://qdrant.tech/documentation/guides/telemetry](read-more-httpsqdranttechdocumentationguidestelemetry.md): telemetry_disabled: false - [Required if either service.enable_tls or cluster.p2p.enable_tls is true.](required-if-either-serviceenable-tls-or-clusterp2penable-tls-is-true.md): tls: - [[Anchor](https://qdrant.tech/documentation/concepts/collections/\#collections) Collections](anchorhttpsqdranttechdocumentationconceptscollectionscollections-collections.md): A collection is a named set of points (vectors with a payload) among which you can search. The vector of each point w... - [[Anchor](https://qdrant.tech/documentation/beginner-tutorials/hybrid-search-fastembed/\#build-a-hybrid-search-service-with-fastembed-and-qdrant) Build a Hybrid Search Service with FastEmbed and Qdrant](anchorhttpsqdranttechdocumentationbeginner-tutorialshybrid-search-fastembedbuild.md): | Time: 20 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/qdrant_demo/) | | - [Import client library](import-client-library.md): from qdrant_client import QdrantClient, models - [The file where HybridSearcher is stored](the-file-where-hybridsearcher-is-stored.md): from hybrid_searcher import HybridSearcher - [Create a neural searcher instance](create-a-neural-searcher-instance.md): hybrid_searcher = HybridSearcher(collection_name="startups") - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/hybrid-cloud-setup/\#creating-a-hybrid-cloud-environment) Creating a Hybrid Cloud Environment](anchorhttpsqdranttechdocumentationhybrid-cloudhybrid-cloud-setupcreating-a-hybri.md): The following instruction set will show you how to properly set up a **Qdrant cluster** in your **Hybrid Cloud Enviro... - [[Anchor](https://qdrant.tech/documentation/concepts/points/\#points) Points](anchorhttpsqdranttechdocumentationconceptspointspoints-points.md): The points are the central entity that Qdrant operates with. - [[Anchor](https://qdrant.tech/documentation/examples/cohere-rag-connector/\#implement-custom-connector-for-cohere-rag) Implement custom connector for Cohere RAG](anchorhttpsqdranttechdocumentationexamplescohere-rag-connectorimplement-custom-c.md): | Time: 45 min | Level: Intermediate | | | - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/platform-deployment-options/\#qdrant-hybrid-cloud-hosting-platforms--deployment-options) Qdrant Hybrid Cloud: Hosting Platforms & Deployment Options](anchorhttpsqdranttechdocumentationhybrid-cloudplatform-deployment-optionsqdrant-.md): This page provides an overview of how to deploy Qdrant Hybrid Cloud on various managed Kubernetes platforms. - [[Anchor](https://qdrant.tech/documentation/database-tutorials/bulk-upload/\#bulk-upload-vectors-to-a-qdrant-collection) Bulk Upload Vectors to a Qdrant Collection](anchorhttpsqdranttechdocumentationdatabase-tutorialsbulk-uploadbulk-upload-vecto.md): Uploading a large-scale dataset fast might be a challenge, but Qdrant has a few tricks to help you with that. - [Vector Search as a dedicated service](vector-search-as-a-dedicated-service.md): Andrey Vasnetsov - [[Anchor](https://qdrant.tech/documentation/send-data/data-streaming-kafka-qdrant/\#setup-data-streaming-with-kafka-via-confluent) Setup Data Streaming with Kafka via Confluent](anchorhttpsqdranttechdocumentationsend-datadata-streaming-kafka-qdrantsetup-data.md): **Author:** [M K Pavan Kumar](https://www.linkedin.com/in/kameshwara-pavan-kumar-mantha-91678b21/) , research scholar... - [Set CONFLUENT_HOME to the installation directory:](set-confluent-home-to-the-installation-directory.md): export CONFLUENT_HOME=/path/to/confluent- - [Add Confluent binaries to your PATH](add-confluent-binaries-to-your-path.md): export PATH=$CONFLUENT_HOME/bin:$PATH - [Start the Confluent Platform services:](start-the-confluent-platform-services.md): confluent local start - [Stop the Confluent Platform services:](stop-the-confluent-platform-services.md): confluent local stop - [Step 0: create qdrant_collection](step-0-create-qdrant-collection.md): create_qdrant_collection(collection_name=collection_name, embed_model=embed_model_name) - [Step 1: Connect to MongoDB](step-1-connect-to-mongodb.md): client = MongoClient('mongodb://127.0.0.1:27017/?replicaSet=rs0&directConnection=true') - [Step 2: Select Database](step-2-select-database.md): db = client['qdrant_kafka'] - [Step 3: Select Collection](step-3-select-collection.md): collection = db['docs'] - [Step 4: Create a Document to Insert](step-4-create-a-document-to-insert.md): description = "qdrant is a high available vector search engine" - [Step 5: Insert the Document into the Collection](step-5-insert-the-document-into-the-collection.md): result = collection.insert_one(document) - [Step 6: Print the Inserted Document's ID](step-6-print-the-inserted-documents-id.md): print("Inserted document ID:", result.inserted_id) - [[Anchor](https://qdrant.tech/documentation/fastembed/fastembed-splade/\#how-to-generate-sparse-vectors-with-splade) How to Generate Sparse Vectors with SPLADE](anchorhttpsqdranttechdocumentationfastembedfastembed-spladehow-to-generate-spars.md): SPLADE is a novel method for learning sparse text representation vectors, outperforming BM25 in tasks like informatio... - [This triggers the model download](this-triggers-the-model-download.md): model = SparseTextEmbedding(model_name=model_name) - [Test the function with the first SparseEmbedding](test-the-function-with-the-first-sparseembedding.md): print(json.dumps(get_tokens_and_weights(sparse_embeddings_list[index], tokenizer), indent=4)) - [[Anchor](https://qdrant.tech/documentation/cloud/authentication/\#database-authentication-in-qdrant-managed-cloud) Database Authentication in Qdrant Managed Cloud](anchorhttpsqdranttechdocumentationcloudauthenticationdatabase-authentication-in-.md): This page describes what Database API keys are and shows you how to use the Qdrant Cloud Console to create a Database... - [Alternatively, you can use the `Authorization` header with the `Bearer` prefix](alternatively-you-can-use-the-authorization-header-with-the-bearer-prefix.md): curl \ - [Google Summer of Code 2023 - Web UI for Visualization and Exploration](google-summer-of-code-2023-web-ui-for-visualization-and-exploration.md): Kartik Gupta - [Food Discovery Demo](food-discovery-demo.md): Kacper Łukawski - [Encode query into a vector, model is an instance of](encode-query-into-a-vector-model-is-an-instance-of.md) - [sentence_transformers.SentenceTransformer that loaded CLIP model](sentence-transformerssentencetransformer-that-loaded-clip-model.md): query_vector = model.encode(query).tolist() - [Search for nearest neighbors, client is an instance of](search-for-nearest-neighbors-client-is-an-instance-of.md) - [qdrant_client.QdrantClient that has to be initialized before](qdrant-clientqdrantclient-that-has-to-be-initialized-before.md): response = client.search_groups( - [Retrieve the disliked points based on their ids](retrieve-the-disliked-points-based-on-their-ids.md): disliked_points, _ = client.scroll( - [Calculate a mean vector of disliked points](calculate-a-mean-vector-of-disliked-points.md): disliked_vectors = np.array([point.vector for point in disliked_points]) - [Search for nearest neighbors of the negated mean vector](search-for-nearest-neighbors-of-the-negated-mean-vector.md): response = client.search_groups( - [Create a geo radius filter](create-a-geo-radius-filter.md): query_filter = models.Filter( - [Create .env file based on .env.example](create-env-file-based-on-envexample.md): docker-compose up -d - [[Anchor](https://qdrant.tech/documentation/guides/capacity-planning/\#capacity-planning) Capacity Planning](anchorhttpsqdranttechdocumentationguidescapacity-planningcapacity-planning-capac.md): When setting up your cluster, you’ll need to figure out the right balance of **RAM** and **disk storage**. The best s... - [[Anchor](https://qdrant.tech/documentation/support/\#qdrant-cloud-support-and-troubleshooting) Qdrant Cloud Support and Troubleshooting](anchorhttpsqdranttechdocumentationsupportqdrant-cloud-support-and-troubleshootin.md): All Qdrant Cloud users are welcome to join our [Discord community](https://qdrant.to/discord/). - [[Anchor](https://qdrant.tech/benchmarks/filtered-search-intro/\#filtered-search-benchmark) Filtered search benchmark](anchorhttpsqdranttechbenchmarksfiltered-search-introfiltered-search-benchmark-fi.md): Applying filters to search results brings a whole new level of complexity. - [[Anchor](https://qdrant.tech/documentation/beginner-tutorials/neural-search/\#build-a-neural-search-service-with-sentence-transformers-and-qdrant) Build a Neural Search Service with Sentence Transformers and Qdrant](anchorhttpsqdranttechdocumentationbeginner-tutorialsneural-searchbuild-a-neural-.md): | Time: 30 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/qdrant_demo/tree/sentense-transformers)... - [> (40474, 384)](40474-384.md): 7. Download the saved vectors into a new file named`startup_vectors.npy` - [Import client library](import-client-library-2.md): from qdrant_client import QdrantClient - [payload is now an iterator over startup data](payload-is-now-an-iterator-over-startup-data.md): payload = map(json.loads, fd) - [Load all vectors into memory, numpy array works as iterable for itself.](load-all-vectors-into-memory-numpy-array-works-as-iterable-for-itself.md) - [Other option would be to use Mmap, if you don't want to load all data into RAM](other-option-would-be-to-use-mmap-if-you-dont-want-to-load-all-data-into-ram.md): vectors = np.load("./startup_vectors.npy") - [The file where NeuralSearcher is stored](the-file-where-neuralsearcher-is-stored.md): from neural_searcher import NeuralSearcher - [Create a neural searcher instance](create-a-neural-searcher-instance-2.md): neural_searcher = NeuralSearcher(collection_name="startups") - [[Anchor](https://qdrant.tech/documentation/cloud-quickstart/\#how-to-get-started-with-qdrant-cloud) How to Get Started With Qdrant Cloud](anchorhttpsqdranttechdocumentationcloud-quickstarthow-to-get-started-with-qdrant.md): How to Get Started With Qdrant Cloud - YouTube - [Alternatively, you can use the `Authorization` header with the `Bearer` prefix](alternatively-you-can-use-the-authorization-header-with-the-bearer-prefix-2.md): curl \ - [Qdrant Documentation](qdrant-documentation-2.md): Qdrant is an AI-native vector database and a semantic search engine. You can use it to extract meaningful information... - [Fine Tuning Similar Cars Search](fine-tuning-similar-cars-search.md): Yusuf Sarıgöz - [set seed to deterministically sample train and test categories later on](set-seed-to-deterministically-sample-train-and-test-categories-later-on.md): seed_everything(seed=42) - [dataset will be downloaded to this directory under local directory](dataset-will-be-downloaded-to-this-directory-under-local-directory.md): dataset_path = os.path.join(".", "torchvision", "datasets") - [[Anchor](https://qdrant.tech/documentation/examples/rag-chatbot-scaleway/\#blog-reading-chatbot-with-gpt-4o) Blog-Reading Chatbot with GPT-4o](anchorhttpsqdranttechdocumentationexamplesrag-chatbot-scalewayblog-reading-chatb.md): | Time: 90 min | Level: Advanced | [GitHub](https://github.com/qdrant/examples/blob/langchain-lcel-rag/langchain-lcel... - [Load, chunk and index the contents of the blog.](load-chunk-and-index-the-contents-of-the-blog.md): loader = WebBaseLoader( - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/operator-configuration/\#configuring-qdrant-operator-advanced-options) Configuring Qdrant Operator: Advanced Options](anchorhttpsqdranttechdocumentationhybrid-cloudoperator-configurationconfiguring-.md): The Qdrant Operator has several configuration options, which can be configured in the advanced section of your Hybrid... - [Configuration for the Qdrant operator service monitor to scrape metrics](configuration-for-the-qdrant-operator-service-monitor-to-scrape-metrics.md): serviceMonitor: - [Resource requests and limits for the Qdrant operator](resource-requests-and-limits-for-the-qdrant-operator.md): resources: {} - [Node selector for the Qdrant operator](node-selector-for-the-qdrant-operator.md): nodeSelector: {} - [Tolerations for the Qdrant operator](tolerations-for-the-qdrant-operator.md): tolerations: [] - [Affinity configuration for the Qdrant operator](affinity-configuration-for-the-qdrant-operator.md): affinity: {} - [Configuration for the Qdrant operator (v2)](configuration-for-the-qdrant-operator-v2.md): settings: - [[Anchor](https://qdrant.tech/documentation/fastembed/fastembed-colbert/\#how-to-generate-colbert-multivectors-with-fastembed) How to Generate ColBERT Multivectors with FastEmbed](anchorhttpsqdranttechdocumentationfastembedfastembed-colberthow-to-generate-colb.md): ColBERT is an embedding model that produces a matrix (multivector) representation of input text, - [Qdrant Summer of Code 2024 - ONNX Cross Encoders in Python](qdrant-summer-of-code-2024-onnx-cross-encoders-in-python.md): Huong (Celine) Hoang - [Qdrant 0.10 released](qdrant-010-released.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/documentation/guides/installation/\#installation-requirements) Installation requirements](anchorhttpsqdranttechdocumentationguidesinstallationinstallation-requirements-in.md): The following sections describe the requirements for deploying Qdrant. - [[Anchor](https://qdrant.tech/documentation/cloud-rbac/permission-reference/\#permission-reference)**Permission Reference**](anchorhttpsqdranttechdocumentationcloud-rbacpermission-referencepermission-refer.md): This document outlines the permissions available in Qdrant Cloud. - [[Anchor](https://qdrant.tech/documentation/concepts/snapshots/\#snapshots) Snapshots](anchorhttpsqdranttechdocumentationconceptssnapshotssnapshots-snapshots.md): _Available as of v0.8.4_ - [[Anchor](https://qdrant.tech/documentation/examples/\#examples) Examples](anchorhttpsqdranttechdocumentationexamplesexamples-examples.md): | End-to-End Code Samples | Description | Stack | - [Scalar Quantization: Background, Practices & More \| Qdrant](scalar-quantization-background-practices-more-qdrant.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/articles/scalar-quantization/\#efficiency-unleashed-the-power-of-scalar-quantization) Efficiency Unleashed: The Power of Scalar Quantization](anchorhttpsqdranttecharticlesscalar-quantizationefficiency-unleashed-the-power-o.md): High-dimensional vector embeddings can be memory-intensive, especially when working with - [Q&A with Similarity Learning](qa-with-similarity-learning.md): George Panchuk - [[Anchor](https://qdrant.tech/articles/faq-question-answering/\#question-answering-system-with-similarity-learning-and-quaterion) Question-answering system with Similarity Learning and Quaterion](anchorhttpsqdranttecharticlesfaq-question-answeringquestion-answering-system-wit.md): Many problems in modern machine learning are approached as classification tasks. - [[Anchor](https://qdrant.tech/documentation/overview/vector-search/\#how-does-vector-search-work-in-qdrant) How Does Vector Search Work in Qdrant?](anchorhttpsqdranttechdocumentationoverviewvector-searchhow-does-vector-search-wo.md): If you are still trying to figure out how vector search works, please read ahead. This document describes how vector ... - [[Anchor](https://qdrant.tech/benchmarks/\#benchmarking-vector-databases) Benchmarking Vector Databases](anchorhttpsqdranttechbenchmarksbenchmarking-vector-databases-benchmarking-vector.md): At Qdrant, performance is the top-most priority. We always make sure that we use system resources efficiently so you ... - [[Anchor](https://qdrant.tech/benchmarks/\#filtered-search-benchmark) Filtered search benchmark](anchorhttpsqdranttechbenchmarksfiltered-search-benchmark-filtered-search-benchma.md): Applying filters to search results brings a whole new level of complexity. - [[Anchor](https://qdrant.tech/benchmarks/\#benchmarks-faq) Benchmarks F.A.Q.](anchorhttpsqdranttechbenchmarksbenchmarks-faq-benchmarks-faq.md): Probably, yes. Even if we try to be objective, we are not experts in using all the existing vector databases. - [[Anchor](https://qdrant.tech/documentation/fastembed/fastembed-quickstart/\#how-to-generate-text-embedings-with-fastembed) How to Generate Text Embedings with FastEmbed](anchorhttpsqdranttechdocumentationfastembedfastembed-quickstarthow-to-generate-t.md): pip install fastembed - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/collaborative-filtering/\#use-collaborative-filtering-to-build-a-movie-recommendation-system-with-qdrant) Use Collaborative Filtering to Build a Movie Recommendation System with Qdrant](anchorhttpsqdranttechdocumentationadvanced-tutorialscollaborative-filteringuse-c.md): | Time: 45 min | Level: Intermediate | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](h... - [OMDB API Key - for movie posters](omdb-api-key-for-movie-posters.md): omdb_api_key = os.getenv("OMDB_API_KEY") - [Set Qdrant Client](set-qdrant-client.md): qdrant_client = QdrantClient( - [Function to get movie poster using OMDB API](function-to-get-movie-poster-using-omdb-api.md): def get_movie_poster(imdb_id, api_key): - [Load CSV files](load-csv-files.md): ratings_df = pd.read_csv('data/ratings.csv', low_memory=False) - [Convert movieId in ratings_df and movies_df to string](convert-movieid-in-ratings-df-and-movies-df-to-string.md): ratings_df['movieId'] = ratings_df['movieId'].astype(str) - [Normalize ratings](normalize-ratings.md): ratings_df['rating'] = (rating - rating.mean()) / rating.std() - [Merge ratings with movie metadata to get movie titles](merge-ratings-with-movie-metadata-to-get-movie-titles.md): merged_df = ratings_df.merge( - [Aggregate ratings to handle duplicate (userId, title) pairs](aggregate-ratings-to-handle-duplicate-userid-title-pairs.md): ratings_agg_df = merged_df.groupby(['userId', 'movieId']).rating.mean().reset_index() - [Convert ratings to sparse vectors](convert-ratings-to-sparse-vectors.md): user_sparse_vectors = defaultdict(lambda: {"values": [], "indices": []}) - [Define a data generator](define-a-data-generator.md): def data_generator(): - [Upload points using the data generator](upload-points-using-the-data-generator.md): qdrant_client.upload_points( - [Create sparse vector from my_ratings](create-sparse-vector-from-my-ratings.md): def to_vector(ratings): - [Perform the search](perform-the-search.md): results = qdrant_client.query_points( - [Convert results to scores and sort by score](convert-results-to-scores-and-sort-by-score.md): def results_to_scores(results): - [Convert results to scores and sort by score](convert-results-to-scores-and-sort-by-score-2.md): movie_scores = results_to_scores(results) - [Create HTML to display top 5 results](create-html-to-display-top-5-results.md): html_content = "" - [Semantic Search As You Type](semantic-search-as-you-type.md): Andre Bogus - [[Anchor](https://qdrant.tech/documentation/multimodal-search/\#multilingual--multimodal-search-with-llamaindex) Multilingual & Multimodal Search with LlamaIndex](anchorhttpsqdranttechdocumentationmultimodal-searchmultilingual-multimodal-searc.md): | Time: 15 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/examples/blob/master/multimodal-search/... - [docker run -p 6333:6333 qdrant/qdrant](docker-run-p-63336333-qdrantqdrant.md): client = QdrantClient(url=" - [[Anchor](https://qdrant.tech/documentation/concepts/\#concepts) Concepts](anchorhttpsqdranttechdocumentationconceptsconcepts-concepts.md): Think of these concepts as a glossary. Each of these concepts include a link to - [What is Vector Quantization?](what-is-vector-quantization.md): Sabrina Aquino - [[Anchor](https://qdrant.tech/documentation/concepts/indexing/\#indexing) Indexing](anchorhttpsqdranttechdocumentationconceptsindexingindexing-indexing.md): A key feature of Qdrant is the effective combination of vector and traditional indexes. It is essential to have this ... - [[Anchor](https://qdrant.tech/documentation/cloud/backups/\#backing-up-qdrant-cloud-clusters) Backing up Qdrant Cloud Clusters](anchorhttpsqdranttechdocumentationcloudbackupsbacking-up-qdrant-cloud-clusters-b.md): Qdrant organizes cloud instances as clusters. On occasion, you may need to - [Introducing Qdrant 1.3.0](introducing-qdrant-130.md): David Sertic - [[Anchor](https://qdrant.tech/documentation/guides/distributed_deployment/\#distributed-deployment) Distributed deployment](anchorhttpsqdranttechdocumentationguidesdistributed-deploymentdistributed-deploy.md): Since version v0.8.0 Qdrant supports a distributed deployment mode. - [[Anchor](https://qdrant.tech/documentation/cloud/cluster-access/\#accessing-qdrant-cloud-clusters) Accessing Qdrant Cloud Clusters](anchorhttpsqdranttechdocumentationcloudcluster-accessaccessing-qdrant-cloud-clus.md): Once you [created](https://qdrant.tech/documentation/cloud/create-cluster/) a cluster, and set up an [API key](https:... - [Introducing Gridstore: Qdrant's Custom Key-Value Store](introducing-gridstore-qdrants-custom-key-value-store.md): Luis Cossio, Arnaud Gourlay & David Myriel - [A Complete Guide to Filtering in Vector Search](a-complete-guide-to-filtering-in-vector-search.md): Sabrina Aquino, David Myriel - [[Anchor](https://qdrant.tech/documentation/send-data/qdrant-airflow-astronomer/\#semantic-querying-with-airflow-and-astronomer) Semantic Querying with Airflow and Astronomer](anchorhttpsqdranttechdocumentationsend-dataqdrant-airflow-astronomersemantic-que.md): | Time: 45 min | Level: Intermediate | | | - [[Anchor](https://qdrant.tech/documentation/datasets/\#common-datasets-in-snapshot-format) Common Datasets in Snapshot Format](anchorhttpsqdranttechdocumentationdatasetscommon-datasets-in-snapshot-format-com.md): You may find that creating embeddings from datasets is a very resource-intensive task. - [Optimizing RAG Through an Evaluation-Based Methodology](optimizing-rag-through-an-evaluation-based-methodology.md): Atita Arora - [Import QuotientAI client and connect to QuotientAI](import-quotientai-client-and-connect-to-quotientai.md): from quotientai.client import QuotientClient - [IMPORTANT: be sure to set your API key as an environment variable called QUOTIENT_API_KEY](important-be-sure-to-set-your-api-key-as-an-environment-variable-called-quotient.md) - [You will need this set before running the code below. You may also uncomment the following line and insert your API key:](you-will-need-this-set-before-running-the-code-below-you-may-also-uncomment-the-.md) - [os.environ['QUOTIENT_API_KEY'] = "YOUR_API_KEY"](osenvironquotient-api-key-your-api-key.md): quotient = QuotientClient() - [Create a recipe for the generator model and prompt template](create-a-recipe-for-the-generator-model-and-prompt-template.md): recipe_mistral = quotient.create_recipe( - ['template_string': 'Question: {input_text}\\n\\nContext: {context}\\n\\nAnswer:',](template-string-question-input-textnncontext-contextnnanswer.md) - ['owner_profile_id': None}](owner-profile-id-none.md): To get a list of your existing recipes, you can simply run: - [Kick off an evaluation job](kick-off-an-evaluation-job.md): experiment_1 = run_eval(eval_df, - [We have to create a recipe using the same prompt template and GPT-3.5-turbo](we-have-to-create-a-recipe-using-the-same-prompt-template-and-gpt-35-turbo.md): recipe_gpt = quotient.create_recipe( - ['description': 'GPT-3.5 using a prompt template that includes context.',](description-gpt-35-using-a-prompt-template-that-includes-context.md) - ['template_string': 'Question: {input_text}\\n\\nContext: {context}\\n\\nAnswer:',](template-string-question-input-textnncontext-contextnnanswer-2.md) - ['endpoint': 'https://api.openai.com/v1/chat/completions',](endpoint-httpsapiopenaicomv1chatcompletions.md) - ['description': 'Returns a maximum of 4K output tokens.',](description-returns-a-maximum-of-4k-output-tokens.md) - ['instruction_template_cls': 'NoneType'}}](instruction-template-cls-nonetype.md): Running the evaluations as : - [[Anchor](https://qdrant.tech/documentation/concepts/hybrid-queries/\#hybrid-and-multi-stage-queries) Hybrid and Multi-Stage Queries](anchorhttpsqdranttechdocumentationconceptshybrid-querieshybrid-and-multi-stage-q.md): _Available as of v1.10.0_ - [Hybrid Search Revamped - Building with Qdrant's Query API](hybrid-search-revamped-building-with-qdrants-query-api.md): Kacper Łukawski - [Qrels, or query relevance judgments, keep the ground truth data](qrels-or-query-relevance-judgments-keep-the-ground-truth-data.md): qrels_dict = { "q_1": { "d_12": 5, "d_25": 3 }, - [Runs are built from the search results](runs-are-built-from-the-search-results.md): run_dict = { "q_1": { "d_12": 0.9, "d_23": 0.8, "d_25": 0.7, - [We need to create both objects, and then we can evaluate the run against the qrels](we-need-to-create-both-objects-and-then-we-can-evaluate-the-run-against-the-qrel.md): qrels = Qrels(qrels_dict) - [Calculating the NDCG@5 metric is as simple as that](calculating-the-ndcg5-metric-is-as-simple-as-that.md): evaluate(qrels, run, "ndcg@5") - [The first branch of our search pipeline retrieves 25 documents](the-first-branch-of-our-search-pipeline-retrieves-25-documents.md) - [using the Matryoshka embeddings with multistep retrieval.](using-the-matryoshka-embeddings-with-multistep-retrieval.md): matryoshka_prefetch = models.Prefetch( - [The second branch of our search pipeline also retrieves 25 documents,](the-second-branch-of-our-search-pipeline-also-retrieves-25-documents.md) - [but uses the dense and sparse vectors, with their results combined](but-uses-the-dense-and-sparse-vectors-with-their-results-combined.md) - [using the Reciprocal Rank Fusion.](using-the-reciprocal-rank-fusion.md): sparse_dense_rrf_prefetch = models.Prefetch( - [Why Rust?](why-rust.md): Andre Bogus - [[Anchor](https://qdrant.tech/articles/why-rust/\#building-qdrant-in-rust) Building Qdrant in Rust](anchorhttpsqdranttecharticleswhy-rustbuilding-qdrant-in-rust-building-qdrant-in-.md): Looking at the [github repository](https://github.com/qdrant/qdrant), you can see that Qdrant is built in [Rust](http... - [[Anchor](https://qdrant.tech/documentation/cloud-premium/\#qdrant-cloud-premium-tier) Qdrant Cloud Premium Tier](anchorhttpsqdranttechdocumentationcloud-premiumqdrant-cloud-premium-tier-qdrant-.md): Qdrant Cloud offers an optional premium tier for customers who require additional features and better SLA support lev... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#build-a-graphrag-agent-with-neo4j-and-qdrant) Build a GraphRAG Agent with Neo4j and Qdrant](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jbuild-a-graphrag-.md): | Time: 30 min | Level: Intermediate | Output: [GitHub](https://github.com/qdrant/examples/blob/master/graphrag_neo4j... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#rag--its-challenges) RAG & Its Challenges](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jrag-its-challenge.md): [RAG](https://qdrant.tech/rag/) combines retrieval-based and generative AI to enhance LLMs with relevant, up-to-date ... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#introduction-to-graphrag) Introduction to GraphRAG](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jintroduction-to-g.md): Unlike RAG, which typically relies on document retrieval, GraphRAG builds knowledge graphs (KGs) to capture entities ... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#architecture-overview) Architecture Overview](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jarchitecture-over.md): The architecture has two main components: **Ingestion** and **Retrieval & Generation**. Ingestion processes raw data ... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#implementation) Implementation](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jimplementation-im.md): We’ll walk through a complete pipeline that ingests data into Neo4j and Qdrant, retrieves relevant data, and generate... - [Get credentials from environment variables](get-credentials-from-environment-variables.md): qdrant_key = os.getenv("QDRANT_KEY") - [Initialize Neo4j driver](initialize-neo4j-driver.md): neo4j_driver = GraphDatabase.driver(neo4j_uri, auth=(neo4j_username, neo4j_password)) - [Initialize Qdrant client](initialize-qdrant-client.md): qdrant_client = QdrantClient( - [Try to fetch the collection status](try-to-fetch-the-collection-status.md): try: - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#advantages-of-qdrant--neo4j-graphrag) Advantages of Qdrant + Neo4j GraphRAG](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jadvantages-of-qdr.md): Combining Qdrant with Neo4j in a GraphRAG architecture offers several compelling advantages, particularly regarding r... - [[Anchor](https://qdrant.tech/documentation/examples/graphrag-qdrant-neo4j/\#conclusion) Conclusion](anchorhttpsqdranttechdocumentationexamplesgraphrag-qdrant-neo4jconclusion-conclu.md): GraphRAG with Neo4j and Qdrant marks an important step forward in retrieval-augmented generation. This hybrid approac... - [[Anchor](https://qdrant.tech/documentation/concepts/payload/\#payload) Payload](anchorhttpsqdranttechdocumentationconceptspayloadpayload-payload.md): One of the significant features of Qdrant is the ability to store additional information along with vectors. - [[Anchor](https://qdrant.tech/documentation/private-cloud/private-cloud-setup/\#qdrant-private-cloud-setup) Qdrant Private Cloud Setup](anchorhttpsqdranttechdocumentationprivate-cloudprivate-cloud-setupqdrant-private.md): - **Kubernetes cluster:** To install Qdrant Private Cloud, you need a [standard compliant](https://www.cncf.io/traini... - [[Anchor](https://qdrant.tech/documentation/cloud-rbac/user-management/\#user-management) User Management](anchorhttpsqdranttechdocumentationcloud-rbacuser-managementuser-management-user-.md): 💡 You can access this in **Access Management > User & Role Management** _if available see [this page for details](htt... - [[Anchor](https://qdrant.tech/documentation/search-precision/reranking-semantic-search/\#reranking-in-rag-with-qdrant-vector-database) Reranking in RAG with Qdrant Vector Database](anchorhttpsqdranttechdocumentationsearch-precisionreranking-semantic-searchreran.md): In Retrieval-Augmented Generation (RAG) systems, irrelevant or missing information can throw off your model’s ability... - [[Anchor](https://qdrant.tech/documentation/search-precision/reranking-semantic-search/\#understanding-reranking) Understanding Reranking](anchorhttpsqdranttechdocumentationsearch-precisionreranking-semantic-searchunder.md): This section is broken down into key parts to help you easily grasp the background, mechanics, and significance of re... - [[Anchor](https://qdrant.tech/documentation/search-precision/reranking-semantic-search/\#implementing-vector-search-with-reranking) Implementing Vector Search with Reranking](anchorhttpsqdranttechdocumentationsearch-precisionreranking-semantic-searchimple.md): In this section, you’re going to see how to implement vector search with reranking using Cohere. But first, let’s bre... - [[Anchor](https://qdrant.tech/documentation/beginner-tutorials/search-beginners/\#build-your-first-semantic-search-engine-in-5-minutes) Build Your First Semantic Search Engine in 5 Minutes](anchorhttpsqdranttechdocumentationbeginner-tutorialssearch-beginnersbuild-your-f.md): | Time: 5 - 15 min | Level: Beginner | | | - [[Anchor](https://qdrant.tech/documentation/quickstart/\#how-to-get-started-with-qdrant-locally) How to Get Started with Qdrant Locally](anchorhttpsqdranttechdocumentationquickstarthow-to-get-started-with-qdrant-local.md): In this short example, you will use the Python Client to create a Collection, load data into it and run a basic searc... - [Metric Learning Tips & Tricks](metric-learning-tips-tricks.md): Andrei Vasnetsov - [Filtrable HNSW](filtrable-hnsw.md): Andrei Vasnetsov - [[Anchor](https://qdrant.tech/documentation/cloud/cluster-monitoring/\#monitoring-qdrant-cloud-clusters) Monitoring Qdrant Cloud Clusters](anchorhttpsqdranttechdocumentationcloudcluster-monitoringmonitoring-qdrant-cloud.md): Qdrant Cloud provides you with a set of metrics to monitor the health of your database cluster. You can access these ... - [[Anchor](https://qdrant.tech/documentation/private-cloud/\#qdrant-private-cloud) Qdrant Private Cloud](anchorhttpsqdranttechdocumentationprivate-cloudqdrant-private-cloud-qdrant-priva.md): Qdrant Private Cloud allows you to manage Qdrant database clusters in any Kubernetes cluster on any infrastructure. I... - [Qdrant Blog](qdrant-blog.md): What are you Looking for? - [Layer Recycling and Fine-tuning Efficiency](layer-recycling-and-fine-tuning-efficiency.md): Yusuf Sarıgöz - [Neural Search 101: A Complete Guide and Step-by-Step Tutorial](neural-search-101-a-complete-guide-and-step-by-step-tutorial.md): Andrey Vasnetsov - [[Anchor](https://qdrant.tech/articles/neural-search-tutorial/\#neural-search-101-a-comprehensive-guide-and-step-by-step-tutorial) Neural Search 101: A Comprehensive Guide and Step-by-Step Tutorial](anchorhttpsqdranttecharticlesneural-search-tutorialneural-search-101-a-comprehen.md): Information retrieval technology is one of the main technologies that enabled the modern Internet to exist. - [Import client library](import-client-library-3.md): from qdrant_client import QdrantClient - [payload is now an iterator over startup data](payload-is-now-an-iterator-over-startup-data-2.md): payload = map(json.loads, fd) - [Here we load all vectors into memory, numpy array works as iterable for itself.](here-we-load-all-vectors-into-memory-numpy-array-works-as-iterable-for-itself.md) - [Other option would be to use Mmap, if we don't want to load all data into RAM](other-option-would-be-to-use-mmap-if-we-dont-want-to-load-all-data-into-ram.md): vectors = np.load('./startup_vectors.npy') - [File: neural_searcher.py](file-neural-searcherpy.md): from qdrant_client import QdrantClient - [That is the file where NeuralSearcher is stored](that-is-the-file-where-neuralsearcher-is-stored.md): from neural_searcher import NeuralSearcher - [Create an instance of the neural searcher](create-an-instance-of-the-neural-searcher.md): neural_searcher = NeuralSearcher(collection_name='startups') - [How to Implement Multitenancy and Custom Sharding in Qdrant](how-to-implement-multitenancy-and-custom-sharding-in-qdrant.md): David Myriel - [[Anchor](https://qdrant.tech/articles/multitenancy/\#scaling-your-machine-learning-setup-the-power-of-multitenancy-and-custom-sharding-in-qdrant) Scaling Your Machine Learning Setup: The Power of Multitenancy and Custom Sharding in Qdrant](anchorhttpsqdranttecharticlesmultitenancyscaling-your-machine-learning-setup-the.md): We are seeing the topics of [multitenancy](https://qdrant.tech/documentation/guides/multiple-partitions/) and [distri... - [FastEmbed: Qdrant's Efficient Python Library for Embedding Generation](fastembed-qdrants-efficient-python-library-for-embedding-generation.md): Nirant Kasliwal - [Initialize the client](initialize-the-client.md): client = QdrantClient(":memory:")  # or QdrantClient(path="path/to/db") - [[Anchor](https://qdrant.tech/documentation/guides/usage-statistics/\#usage-statistics) Usage statistics](anchorhttpsqdranttechdocumentationguidesusage-statisticsusage-statistics-usage-s.md): The Qdrant open-source container image collects anonymized usage statistics from users in order to improve the engine... - [Data Privacy with Qdrant: Implementing Role-Based Access Control (RBAC)](data-privacy-with-qdrant-implementing-role-based-access-control-rbac.md): Qdrant Team - [Define your API key and other payload data](define-your-api-key-and-other-payload-data.md): api_key = "your_api_key" - [Example search vector](example-search-vector.md): search_vector = [0.1, 0.2, 0.3, 0.4] - [Example similarity search request](example-similarity-search-request.md): response = qdrant_client.search( - [[Anchor](https://qdrant.tech/documentation/private-cloud/changelog/\#changelog) Changelog](anchorhttpsqdranttechdocumentationprivate-cloudchangelogchangelog-changelog.md): | | | - [[Anchor](https://qdrant.tech/documentation/data-ingestion-beginners/\#send-s3-data-to-qdrant-vector-store-with-langchain) Send S3 Data to Qdrant Vector Store with LangChain](anchorhttpsqdranttechdocumentationdata-ingestion-beginnerssend-s3-data-to-qdrant.md): | Time: 30 min | Level: Beginner | | | - [Initialize the S3 document loader](initialize-the-s3-document-loader.md): loader = S3DirectoryLoader( - [Load documents from the specified S3 bucket](load-documents-from-the-specified-s3-bucket.md): docs = loader.load() - [[Anchor](https://qdrant.tech/documentation/concepts/vectors/\#vectors) Vectors](anchorhttpsqdranttechdocumentationconceptsvectorsvectors-vectors.md): Vectors (or embeddings) are the core concept of the Qdrant Vector Search engine. - [Qdrant under the hood: io\_uring](qdrant-under-the-hood-io-uring.md): Andre Bogus - [within the storage config](within-the-storage-config.md): storage: - [Finding errors in datasets with Similarity Search](finding-errors-in-datasets-with-similarity-search.md): George Panchuk - [[Anchor](https://qdrant.tech/documentation/faq/qdrant-fundamentals/\#frequently-asked-questions-general-topics) Frequently Asked Questions: General Topics](anchorhttpsqdranttechdocumentationfaqqdrant-fundamentalsfrequently-asked-questio.md): | | | | | | - [[Anchor](https://qdrant.tech/documentation/embeddings/\#supported-embedding-providers--models) Supported Embedding Providers & Models](anchorhttpsqdranttechdocumentationembeddingssupported-embedding-providers-models.md): Qdrant supports all available text and multimodal dense vector embedding models as well as vector embedding services ... - [miniCOIL: on the Road to Usable Sparse Neural Retrieval](minicoil-on-the-road-to-usable-sparse-neural-retrieval.md): Evgeniya Sukhodolskaya - [Vector Search Resource Optimization Guide](vector-search-resource-optimization-guide.md): David Myriel - [Qdrant Internals: Immutable Data Structures](qdrant-internals-immutable-data-structures.md): Andrey Vasnetsov - [[Anchor](https://qdrant.tech/documentation/examples/natural-language-search-oracle-cloud-infrastructure-cohere-langchain/\#rag-system-for-employee-onboarding) RAG System for Employee Onboarding](anchorhttpsqdranttechdocumentationexamplesnatural-language-search-oracle-cloud-i.md): Public websites are a great way to share information with a wide audience. However, finding the right information can be - [What are Vector Embeddings? - Revolutionize Your Search Experience](what-are-vector-embeddings-revolutionize-your-search-experience.md): Sabrina Aquino - [Serverless Semantic Search](serverless-semantic-search.md): Andre Bogus - [[..] output omitted for brevity](output-omitted-for-brevity.md): Finished release [optimized] target(s) in 1m 27s - [[..] output omitted for brevity](output-omitted-for-brevity-2.md): Finished release [optimized] target(s) in 1m 27s - [[Anchor](https://qdrant.tech/documentation/examples/rag-chatbot-vultr-dspy-ollama/\#private-rag-information-extraction-engine) Private RAG Information Extraction Engine](anchorhttpsqdranttechdocumentationexamplesrag-chatbot-vultr-dspy-ollamaprivate-r.md): | Time: 90 min | Level: Advanced | | | - [How vector search should be benchmarked?](how-vector-search-should-be-benchmarked.md): January 01, 0001 - [[Anchor](https://qdrant.tech/benchmarks/benchmarks-intro/\#benchmarking-vector-databases) Benchmarking Vector Databases](anchorhttpsqdranttechbenchmarksbenchmarks-introbenchmarking-vector-databases-ben.md): At Qdrant, performance is the top-most priority. We always make sure that we use system resources efficiently so you ... - [[Anchor](https://qdrant.tech/documentation/guides/security/\#security) Security](anchorhttpsqdranttechdocumentationguidessecuritysecurity-security.md): Please read this page carefully. Although there are various ways to secure your Qdrant instances, **they are unsecure... - [Required if either service.enable_tls or cluster.p2p.enable_tls is true.](required-if-either-serviceenable-tls-or-clusterp2penable-tls-is-true-2.md): tls: - [Required if either service.enable_tls or cluster.p2p.enable_tls is true.](required-if-either-serviceenable-tls-or-clusterp2penable-tls-is-true-3.md): tls: - [[Anchor](https://qdrant.tech/documentation/database-tutorials/async-api/\#using-qdrants-async-api-for-efficient-python-applications) Using Qdrant’s Async API for Efficient Python Applications](anchorhttpsqdranttechdocumentationdatabase-tutorialsasync-apiusing-qdrants-async.md): Asynchronous programming is being broadly adopted in the Python ecosystem. Tools such as FastAPI [have embraced this ... - [[Anchor](https://qdrant.tech/documentation/examples/qdrant-dspy-medicalbot/\#building-a-chain-of-thought-medical-chatbot-with-qdrant-and-dspy) Building a Chain-of-Thought Medical Chatbot with Qdrant and DSPy](anchorhttpsqdranttechdocumentationexamplesqdrant-dspy-medicalbotbuilding-a-chain.md): Accessing medical information from LLMs can lead to hallucinations or outdated information. Relying on this type of i... - [Create collection](create-collection.md): if not client.collection_exists(collection_name): - [Final flush](final-flush.md): if points_batch: - [[Anchor](https://qdrant.tech/documentation/beginner-tutorials/\#beginner-tutorials) Beginner Tutorials](anchorhttpsqdranttechdocumentationbeginner-tutorialsbeginner-tutorials-beginner-.md): | | - [Binary Quantization - Vector Search, 40x Faster](binary-quantization-vector-search-40x-faster.md): Nirant Kasliwal - [[Anchor](https://qdrant.tech/articles/binary-quantization/\#optimizing-high-dimensional-vectors-with-binary-quantization) Optimizing High-Dimensional Vectors with Binary Quantization](anchorhttpsqdranttecharticlesbinary-quantizationoptimizing-high-dimensional-vect.md): Qdrant is built to handle typical scaling challenges: high throughput, low latency and efficient indexing. **Binary q... - [on_disk=True and the quantization_config are the areas to focus on](on-disktrue-and-the-quantization-config-are-the-areas-to-focus-on.md): collection_name = "binary-quantization" - [[Anchor](https://qdrant.tech/documentation/guides/monitoring/\#monitoring--telemetry) Monitoring & Telemetry](anchorhttpsqdranttechdocumentationguidesmonitoringmonitoring-telemetry-monitorin.md): Qdrant exposes its metrics in [Prometheus](https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-fo... - [[Anchor](https://qdrant.tech/documentation/cloud-pricing-payments/\#qdrant-cloud-billing--payments) Qdrant Cloud Billing & Payments](anchorhttpsqdranttechdocumentationcloud-pricing-paymentsqdrant-cloud-billing-pay.md): Qdrant database clusters in Qdrant Cloud are priced based on CPU, memory, and disk storage usage. To get a clearer id... - [Is RAG Dead? The Role of Vector Databases in Vector Search \| Qdrant](is-rag-dead-the-role-of-vector-databases-in-vector-search-qdrant.md): David Myriel - [[Anchor](https://qdrant.tech/articles/rag-is-dead/\#is-rag-dead-the-role-of-vector-databases-in-ai-efficiency-and-vector-search) Is RAG Dead? The Role of Vector Databases in AI Efficiency and Vector Search](anchorhttpsqdranttecharticlesrag-is-deadis-rag-dead-the-role-of-vector-databases.md): When Anthropic came out with a context window of 100K tokens, they said: “ _[Vector search](https://qdrant.tech/solut... - [BM42: New Baseline for Hybrid Search](bm42-new-baseline-for-hybrid-search.md): Andrey Vasnetsov - [...](untitled.md): attentions = transformer.auto_model(**features, output_attentions=True).attentions - [│ │ │ └─── [CLS] token is the first one](cls-token-is-the-first-one.md) - [│ │ └─────── First item of the batch](first-item-of-the-batch.md) - [│ └────────── Last transformer layer](last-transformer-layer.md) - [└────────────────────────── Average all 6 attention heads](average-all-6-attention-heads.md): for weight, token in zip(weights, tokens): - [[CLS] : 0.434 // Filter out the [CLS] token](cls-0434-filter-out-the-cls-token.md) - [world : 0.107 // <-- The most important token](world-0107-the-most-important-token.md) - [programming : 0.060 // <-- The third most important token](programming-0060-the-third-most-important-token.md) - [languages : 0.062 // <-- The second most important token](languages-0062-the-second-most-important-token.md) - [[SEP] : 0.047 // Filter out the [SEP] token](sep-0047-filter-out-the-sep-token.md): The resulting formula for the BM42 score would look like this: - [Minimal RAM you need to serve a million vectors](minimal-ram-you-need-to-serve-a-million-vectors.md): Andrei Vasnetsov - [Upload vectors](upload-vectors.md): python run.py --engines qdrant-all-in-ram --datasets glove-100-angular - [Search vectors](search-vectors.md): python run.py --engines qdrant-all-in-ram --datasets glove-100-angular --skip-upload - [Run fio to check the random reads speed](run-fio-to-check-the-random-reads-speed.md): fio --randrepeat=1 \ - [Distance-based data exploration](distance-based-data-exploration.md): Andrey Vasnetsov - [Used to talk to Qdrant](used-to-talk-to-qdrant.md): from qdrant_client import QdrantClient - [Package with original UMAP implementation](package-with-original-umap-implementation.md): from umap import UMAP - [Python implementation for sparse matrices](python-implementation-for-sparse-matrices.md): from scipy.sparse import csr_matrix - [For vizualization](for-vizualization.md): import seaborn as sns - [`_offsets` suffix defines a format of the output matrix.](offsets-suffix-defines-a-format-of-the-output-matrix.md): result = client.search_matrix_offsets( - [Convert distances matrix to python-native format](convert-distances-matrix-to-python-native-format.md): matrix = csr_matrix( - [Distance matrix is always symmetric, but qdrant only computes half of it.](distance-matrix-is-always-symmetric-but-qdrant-only-computes-half-of-it.md): matrix = matrix + matrix.T - [Initialize KMeans with 10 clusters](initialize-kmeans-with-10-clusters.md): kmeans = KMeans(n_clusters=10) - [Generate index of the cluster each sample belongs to](generate-index-of-the-cluster-each-sample-belongs-to.md): cluster_labels = kmeans.fit_predict(matrix) - [[Anchor](https://qdrant.tech/documentation/cloud-rbac/role-management/\#role-management) Role Management](anchorhttpsqdranttechdocumentationcloud-rbacrole-managementrole-management-role-.md): 💡 You can access this in **Access Management > User & Role Management** _if available see [this page for details](htt... - [[Anchor](https://qdrant.tech/documentation/send-data/databricks/\#qdrant-on-databricks) Qdrant on Databricks](anchorhttpsqdranttechdocumentationsend-datadatabricksqdrant-on-databricks-qdrant.md): | Time: 30 min | Level: Intermediate | [Complete Notebook](https://databricks-prod-cloudfront.cloud.databricks.com/pu... - [We'll use the first 100 entries from this dataset and exclude some unused columns.](well-use-the-first-100-entries-from-this-dataset-and-exclude-some-unused-columns.md): dataset = dataset.select(range(100)).remove_columns(["gold_label", "genre"]) - [Define the schema for the new dataframe](define-the-schema-for-the-new-dataframe.md): schema = StructType([\ - [Create the new dataframe with the vectorized data](create-the-new-dataframe-with-the-vectorized-data.md): embeddings_df = spark.createDataFrame(data=embeddings, schema=schema) - [What is Agentic RAG? Building Agents with Qdrant](what-is-agentic-rag-building-agents-with-qdrant.md): Kacper Łukawski - [Building a graph requires defining nodes and building the flow between them with edges.](building-a-graph-requires-defining-nodes-and-building-the-flow-between-them-with.md): builder = StateGraph(AgentState) - [Compiling the graph performs some checks and prepares the graph for execution.](compiling-the-graph-performs-some-checks-and-prepares-the-graph-for-execution.md): compiled_graph = builder.compile() - [Compiled graph might be invoked with the initial state to start.](compiled-graph-might-be-invoked-with-the-initial-state-to-start.md): compiled_graph.invoke({ - [[Anchor](https://qdrant.tech/documentation/database-tutorials/\#database-tutorials) Database Tutorials](anchorhttpsqdranttechdocumentationdatabase-tutorialsdatabase-tutorials-database-.md): | | - [Single node benchmarks](single-node-benchmarks.md): August 23, 2022 - [[Anchor](https://qdrant.tech/documentation/overview/\#introduction) Introduction](anchorhttpsqdranttechdocumentationoverviewintroduction-introduction.md): Vector databases are a relatively new way for interacting with abstract data representations - [[Anchor](https://qdrant.tech/documentation/faq/database-optimization/\#frequently-asked-questions-database-optimization) Frequently Asked Questions: Database Optimization](anchorhttpsqdranttechdocumentationfaqdatabase-optimizationfrequently-asked-quest.md): The primary source of memory usage is vector data. There are several ways to address that: - [[Anchor](https://qdrant.tech/documentation/cloud-getting-started/\#getting-started-with-qdrant-managed-cloud) Getting Started with Qdrant Managed Cloud](anchorhttpsqdranttechdocumentationcloud-getting-startedgetting-started-with-qdra.md): Welcome to Qdrant Managed Cloud! This document contains all the information you need to get started. - [Built for Vector Search](built-for-vector-search.md): Evgeniya Sukhodolskaya & Andrey Vasnetsov - [Optimizing OpenAI Embeddings: Enhance Efficiency with Qdrant's Binary Quantization](optimizing-openai-embeddings-enhance-efficiency-with-qdrants-binary-quantization.md): Nirant Kasliwal - [[Anchor](https://qdrant.tech/documentation/cloud/create-cluster/\#creating-a-qdrant-cloud-cluster) Creating a Qdrant Cloud Cluster](anchorhttpsqdranttechdocumentationcloudcreate-clustercreating-a-qdrant-cloud-clu.md): Qdrant Cloud offers two types of clusters: **Free** and **Standard**. - [[Anchor](https://qdrant.tech/documentation/guides/running-with-gpu/\#running-qdrant-with-gpu-support) Running Qdrant with GPU Support](anchorhttpsqdranttechdocumentationguidesrunning-with-gpurunning-qdrant-with-gpu-.md): Starting from version v1.13.0, Qdrant offers support for GPU acceleration. - [`--gpus=all` flag says to Docker that we want to use GPUs.](gpusall-flag-says-to-docker-that-we-want-to-use-gpus.md) - [`-e QDRANT__GPU__INDEXING=1` flag says to Qdrant that we want to use GPUs for indexing.](e-qdrant-gpu-indexing1-flag-says-to-qdrant-that-we-want-to-use-gpus-for-indexing.md): docker run \ - [`--device /dev/kfd --device /dev/dri` flags say to Docker that we want to use GPUs.](device-devkfd-device-devdri-flags-say-to-docker-that-we-want-to-use-gpus.md) - [`-e QDRANT__GPU__INDEXING=1` flag says to Qdrant that we want to use GPUs for indexing.](e-qdrant-gpu-indexing1-flag-says-to-qdrant-that-we-want-to-use-gpus-for-indexing-2.md): docker run \ - [[Anchor](https://qdrant.tech/documentation/concepts/optimizer/\#optimizer) Optimizer](anchorhttpsqdranttechdocumentationconceptsoptimizeroptimizer-optimizer.md): It is much more efficient to apply changes in batches than perform each change individually, as many other databases ... - [[Anchor](https://qdrant.tech/documentation/cloud/cluster-upgrades/\#updating-qdrant-cloud-clusters) Updating Qdrant Cloud Clusters](anchorhttpsqdranttechdocumentationcloudcluster-upgradesupdating-qdrant-cloud-clu.md): As soon as a new Qdrant version is available. Qdrant Cloud will show you an update notification in the Cluster list a... - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/pdf-retrieval-at-scale/\#scaling-pdf-retrieval-with-qdrant) Scaling PDF Retrieval with Qdrant](anchorhttpsqdranttechdocumentationadvanced-tutorialspdf-retrieval-at-scalescalin.md): | Time: 30 min | Level: Intermediate | Output: [GitHub](https://github.com/qdrant/examples/blob/master/pdf-retrieval-... - [pip install colpali_engine>=0.3.1](pip-install-colpali-engine031.md): from colpali_engine.models import ColPali, ColPaliProcessor - [pip install qdrant-client>=1.12.0](pip-install-qdrant-client1120.md): from qdrant_client import QdrantClient, models - [Image embeddings of shape (batch_size, 1030, 128)](image-embeddings-of-shape-batch-size-1030-128.md): image_embeddings = model(**processed_images) - [(1030, 128)](1030-128.md): image_embedding = image_embeddings[0] # take the first element of the batch - [Now we need to identify vectors that correspond to the image tokens](now-we-need-to-identify-vectors-that-correspond-to-the-image-tokens.md) - [It can be done by selecting tokens corresponding to special `image_token_id`](it-can-be-done-by-selecting-tokens-corresponding-to-special-image-token-id.md) - [(1030, ) - boolean mask (for the first element in the batch), True for image tokens](1030-boolean-mask-for-the-first-element-in-the-batch-true-for-image-tokens.md): mask = processed_images.input_ids[0] == model_processor.image_token_id - [For convenience, we now select only image tokens](for-convenience-we-now-select-only-image-tokens.md) - [and reshape them to (x_patches, y_patches, dim)](and-reshape-them-to-x-patches-y-patches-dim.md) - [(x_patches, y_patches, 128)](x-patches-y-patches-128.md): image_patch_embeddings = image_embedding[mask].view(x_patches, y_patches, model.dim) - [Now we can apply mean pooling by rows and columns](now-we-can-apply-mean-pooling-by-rows-and-columns.md) - [(x_patches, 128)](x-patches-128.md): pooled_by_rows = image_patch_embeddings.mean(dim=0) - [(y_patches, 128)](y-patches-128.md): pooled_by_columns = image_patch_embeddings.mean(dim=1) - [[Optionally] we can also concatenate special tokens to the pooled representations,](optionally-we-can-also-concatenate-special-tokens-to-the-pooled-representations.md) - [(x_patches + 6, 128)](x-patches-6-128.md): pooled_by_rows = torch.cat([pooled_by_rows, image_embedding[~mask]]) - [(y_patches + 6, 128)](y-patches-6-128.md): pooled_by_columns = torch.cat([pooled_by_columns, image_embedding[~mask]]) - [Resulting query embedding is a tensor of shape (22, 128)](resulting-query-embedding-is-a-tensor-of-shape-22-128.md): query_embedding = model(**processed_queries)[0] - [Final amount of results to return](final-amount-of-results-to-return.md): search_limit = 10 - [Amount of results to prefetch for reranking](amount-of-results-to-prefetch-for-reranking.md): prefetch_limit = 100 - [[Anchor](https://qdrant.tech/documentation/fastembed/fastembed-semantic-search/\#using-fastembed-with-qdrant-for-vector-search) Using FastEmbed with Qdrant for Vector Search](anchorhttpsqdranttechdocumentationfastembedfastembed-semantic-searchusing-fastem.md): pip install "qdrant-client[fastembed]>=1.14.2" - [[Anchor](https://qdrant.tech/documentation/guides/multiple-partitions/\#configure-multitenancy) Configure Multitenancy](anchorhttpsqdranttechdocumentationguidesmultiple-partitionsconfigure-multitenanc.md): **How many collections should you create?** In most cases, you should only use a single collection with payload-based... - [[Anchor](https://qdrant.tech/documentation/private-cloud/api-reference/\#api-reference) API Reference](anchorhttpsqdranttechdocumentationprivate-cloudapi-referenceapi-reference-api-re.md): - [qdrant.io/v1](https://qdrant.tech/documentation/private-cloud/api-reference/#qdrantiov1) - [On Unstructured Data, Vector Databases, New AI Age, and Our Seed Round.](on-unstructured-data-vector-databases-new-ai-age-and-our-seed-round.md): Andre Zayarni - [Relevance Feedback in Informational Retrieval](relevance-feedback-in-informational-retrieval.md): Evgeniya Sukhodolskaya - [[Anchor](https://qdrant.tech/documentation/advanced-tutorials/\#advanced-tutorials) Advanced Tutorials](anchorhttpsqdranttechdocumentationadvanced-tutorialsadvanced-tutorials-advanced-.md): | | - [[Anchor](https://qdrant.tech/documentation/agentic-rag-camelai-discord/\#agentic-rag-discord-chatbot-with-qdrant-camel-ai--openai) Agentic RAG Discord ChatBot with Qdrant, CAMEL-AI, & OpenAI](anchorhttpsqdranttechdocumentationagentic-rag-camelai-discordagentic-rag-discord.md): | Time: 45 min | Level: Intermediate | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](h... - [Define collection name](define-collection-name-2.md): collection_name = "qdrant-agent" - [Create a ChatGPT configuration](create-a-chatgpt-configuration.md): config = ChatGPTConfig(temperature=0.2).as_dict() - [Create an OpenAI model using the configuration](create-an-openai-model-using-the-configuration.md): openai_model = ModelFactory.create( - [[Anchor](https://qdrant.tech/documentation/examples/llama-index-multitenancy/\#multitenancy-with-llamaindex) Multitenancy with LlamaIndex](anchorhttpsqdranttechdocumentationexamplesllama-index-multitenancymultitenancy-w.md): If you are building a service that serves vectors for many independent users, and you want to isolate their - [Output: Qdrant is a vector database & vector similarity search engine. 0.60551536](output-qdrant-is-a-vector-database-vector-similarity-search-engine-060551536.md): The description of Qdrant was the best match, even though it didn’t mention large language models - [Output: LlamaIndex is a simple, flexible data framework for connecting custom data sources to large language models. 0.63576734](output-llamaindex-is-a-simple-flexible-data-framework-for-connecting-custom-data.md): The results returned by both retrievers are different, due to the different constraints, so we implemented - [[Anchor](https://qdrant.tech/documentation/web-ui/\#qdrant-web-ui) Qdrant Web UI](anchorhttpsqdranttechdocumentationweb-uiqdrant-web-ui-qdrant-web-ui.md): You can manage both local and cloud Qdrant deployments through the Web UI. - [[Anchor](https://qdrant.tech/documentation/examples/recommendation-system-ovhcloud/\#movie-recommendation-system) Movie Recommendation System](anchorhttpsqdranttechdocumentationexamplesrecommendation-system-ovhcloudmovie-re.md): | Time: 120 min | Level: Advanced | Output: [GitHub](https://github.com/infoslack/qdrant-example/blob/main/HC-demo/HC... - [Search with movies[movies.title.str.contains("Matrix", case=False)].](search-with-moviesmoviestitlestrcontainsmatrix-casefalse.md): my_ratings = { - [[Anchor](https://qdrant.tech/documentation/concepts/search/\#similarity-search) Similarity search](anchorhttpsqdranttechdocumentationconceptssearchsimilarity-search-similarity-sea.md): Searching for the nearest vectors is at the core of many representational learning applications. - [[Anchor](https://qdrant.tech/documentation/guides/quantization/\#quantization) Quantization](anchorhttpsqdranttechdocumentationguidesquantizationquantization-quantization.md): Quantization is an optional feature in Qdrant that enables efficient storage and search of high-dimensional vectors. - [Vector Similarity: Going Beyond Full-Text Search \| Qdrant](vector-similarity-going-beyond-full-text-search-qdrant.md): Luis Cossío - [[Anchor](https://qdrant.tech/articles/vector-similarity-beyond-search/\#vector-similarity-unleashing-data-insights-beyond-traditional-search) Vector Similarity: Unleashing Data Insights Beyond Traditional Search](anchorhttpsqdranttecharticlesvector-similarity-beyond-searchvector-similarity-un.md): When making use of unstructured data, there are traditional go-to solutions that are well-known for developers: - [What is RAG: Understanding Retrieval-Augmented Generation](what-is-rag-understanding-retrieval-augmented-generation.md): Sabrina Aquino - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/hybrid-cloud-cluster-creation/\#creating-a-qdrant-cluster-in-hybrid-cloud) Creating a Qdrant Cluster in Hybrid Cloud](anchorhttpsqdranttechdocumentationhybrid-cloudhybrid-cloud-cluster-creationcreat.md): Once you have created a Hybrid Cloud Environment, you can create a Qdrant cluster in that enviroment. Use the same pr... - [[Anchor](https://qdrant.tech/documentation/beginner-tutorials/retrieval-quality/\#measure-and-improve-retrieval-quality-in-semantic-search) Measure and Improve Retrieval Quality in Semantic Search](anchorhttpsqdranttechdocumentationbeginner-tutorialsretrieval-qualitymeasure-and.md): | Time: 30 min | Level: Intermediate | | | - [Question Answering as a Service with Cohere and Qdrant](question-answering-as-a-service-with-cohere-and-qdrant.md): Kacper Łukawski - [Putting the co.embed API response directly as Qdrant method input](putting-the-coembed-api-response-directly-as-qdrant-method-input.md): qdrant_client.upsert( - [Loading the dataset from HuggingFace hub. It consists of several columns: pubid,](loading-the-dataset-from-huggingface-hub-it-consists-of-several-columns-pubid.md) - [question, context, long_answer and final_decision. For the purposes of our system,](question-context-long-answer-and-final-decision-for-the-purposes-of-our-system.md) - [we’ll use question and long_answer.](well-use-question-and-long-answer.md): dataset = load_dataset("pubmed_qa", "pqa_labeled") - [Generating the embeddings with Cohere client library](generating-the-embeddings-with-cohere-client-library.md): embeddings = cohere_client.embed( - [Connecting to Qdrant Cloud with qdrant-client requires providing the api_key.](connecting-to-qdrant-cloud-with-qdrant-client-requires-providing-the-api-key.md) - [If you use an on-premise instance, it has to be skipped.](if-you-use-an-on-premise-instance-it-has-to-be-skipped.md): qdrant_client = QdrantClient( - [Filling up Qdrant collection with the embeddings generated by Cohere co.embed API](filling-up-qdrant-collection-with-the-embeddings-generated-by-cohere-coembed-api.md): qdrant_client.upsert( - [Finding the position at which Qdrant provided the expected answer for each question.](finding-the-position-at-which-qdrant-provided-the-expected-answer-for-each-quest.md) - [That allows to calculate accuracy@k for different values of k.](that-allows-to-calculate-accuracyk-for-different-values-of-k.md): k_max = 10 - [Prepared answer positions are being used to calculate different values of accuracy@k](prepared-answer-positions-are-being-used-to-calculate-different-values-of-accura.md): for k in range(1, k_max + 1): - [Google Summer of Code 2023 - Polygon Geo Filter for Qdrant Vector Database](google-summer-of-code-2023-polygon-geo-filter-for-qdrant-vector-database.md): Zein Wen - [Metric Learning for Anomaly Detection](metric-learning-for-anomaly-detection.md): Yusuf Sarıgöz - [[Anchor](https://qdrant.tech/documentation/agentic-rag-crewai-zoom/\#agentic-rag-with-crewai--qdrant-vector-database) Agentic RAG With CrewAI & Qdrant Vector Database](anchorhttpsqdranttechdocumentationagentic-rag-crewai-zoomagentic-rag-with-crewai.md): | Time: 45 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/examples/tree/master/agentic_rag_zoom_c... - [[Anchor](https://qdrant.tech/documentation/rag-deepseek/\#5-minute-rag-with-qdrant-and-deepseek) 5 Minute RAG with Qdrant and DeepSeek](anchorhttpsqdranttechdocumentationrag-deepseek5-minute-rag-with-qdrant-and-deeps.md): | Time: 5 min | Level: Beginner | Output: [GitHub](https://github.com/qdrant/examples/blob/master/rag-with-qdrant-dee... - [Fill the environmental variable with your own Deepseek API key](fill-the-environmental-variable-with-your-own-deepseek-api-key.md) - [See: https://platform.deepseek.com/api_keys](see-httpsplatformdeepseekcomapi-keys.md): API_KEY = "" - [Look at the full metaprompt](look-at-the-full-metaprompt.md): print(metaprompt) - [[Anchor](https://qdrant.tech/documentation/concepts/filtering/\#filtering) Filtering](anchorhttpsqdranttechdocumentationconceptsfilteringfiltering-filtering.md): With Qdrant, you can set conditions when searching or retrieving points. - [[Anchor](https://qdrant.tech/documentation/database-tutorials/create-snapshot/\#backup-and-restore-qdrant-collections-using-snapshots) Backup and Restore Qdrant Collections Using Snapshots](anchorhttpsqdranttechdocumentationdatabase-tutorialscreate-snapshotbackup-and-re.md): | Time: 20 min | Level: Beginner | | | - [Create a directory to store snapshots](create-a-directory-to-store-snapshots.md): os.makedirs("snapshots", exist_ok=True) - [[Anchor](https://qdrant.tech/documentation/agentic-rag-langgraph/\#agentic-rag-with-langgraph-and-qdrant) Agentic RAG With LangGraph and Qdrant](anchorhttpsqdranttechdocumentationagentic-rag-langgraphagentic-rag-with-langgrap.md): Traditional Retrieval-Augmented Generation (RAG) systems follow a straightforward path: query → retrieve → generate. ... - [Introducing Qdrant 1.2.x](introducing-qdrant-12x.md): Kacper Łukawski - [Discovery needs context](discovery-needs-context.md): Luis Cossío - [[Anchor](https://qdrant.tech/articles/discovery-search/\#discovery-needs-context) Discovery needs context](anchorhttpsqdranttecharticlesdiscovery-searchdiscovery-needs-context-discovery-n.md): When Christopher Columbus and his crew sailed to cross the Atlantic Ocean, they were not looking for the Americas. Th... - [Qdrant Summer of Code 2024 - WASM based Dimension Reduction](qdrant-summer-of-code-2024-wasm-based-dimension-reduction.md): Jishan Bhattacharya - [[Anchor](https://qdrant.tech/documentation/hybrid-cloud/networking-logging-monitoring/\#configuring-networking-logging--monitoring-in-qdrant-hybrid-cloud) Configuring Networking, Logging & Monitoring in Qdrant Hybrid Cloud](anchorhttpsqdranttechdocumentationhybrid-cloudnetworking-logging-monitoringconfi.md): For security reasons, each database cluster is secured with network policies. By default, database pods only allow eg... - [[Anchor](https://qdrant.tech/documentation/guides/optimize/\#optimizing-qdrant-performance-three-scenarios) Optimizing Qdrant Performance: Three Scenarios](anchorhttpsqdranttechdocumentationguidesoptimizeoptimizing-qdrant-performance-th.md): Different use cases require different balances between memory usage, search speed, and precision. Qdrant is designed ... - [[Anchor](https://qdrant.tech/documentation/cloud/cluster-scaling/\#scaling-qdrant-cloud-clusters) Scaling Qdrant Cloud Clusters](anchorhttpsqdranttechdocumentationcloudcluster-scalingscaling-qdrant-cloud-clust.md): The amount of data is always growing and at some point you might need to upgrade or downgrade the capacity of your cl... - [[Anchor](https://qdrant.tech/documentation/database-tutorials/large-scale-search/\#upload-and-search-large-collections-cost-efficiently) Upload and Search Large collections cost-efficiently](anchorhttpsqdranttechdocumentationdatabase-tutorialslarge-scale-searchupload-and.md): | Time: 2 days | Level: Advanced | | | - [Modern Sparse Neural Retrieval: From Theory to Practice](modern-sparse-neural-retrieval-from-theory-to-practice.md): Evgeniya Sukhodolskaya - [[Anchor](https://qdrant.tech/documentation/concepts/storage/\#storage) Storage](anchorhttpsqdranttechdocumentationconceptsstoragestorage-storage.md): All data within one collection is divided into segments. - [Optimizing Memory for Bulk Uploads](optimizing-memory-for-bulk-uploads.md): Sabrina Aquino - [[Anchor](https://qdrant.tech/articles/indexing-optimization/\#optimizing-memory-consumption-during-bulk-uploads) Optimizing Memory Consumption During Bulk Uploads](anchorhttpsqdranttecharticlesindexing-optimizationoptimizing-memory-consumption-.md): Efficient memory management is a constant challenge when you’re dealing with **large-scale vector data**. In high-vol... - [[Anchor](https://qdrant.tech/documentation/cloud-rbac/\#cloud-rbac) Cloud RBAC](anchorhttpsqdranttechdocumentationcloud-rbaccloud-rbac-cloud-rbac.md): Qdrant Cloud enables you to manage permissions for your cloud resources with greater precision within the Qdrant Clou... - [How Dust Scaled to 5,000+ Data Sources with Qdrant](how-dust-scaled-to-5000-data-sources-with-qdrant.md): Daniel Azoulai - [Introducing Qdrant 0.11](introducing-qdrant-011.md): Kacper Łukawski - [Using LangChain for Question Answering with Qdrant](using-langchain-for-question-answering-with-qdrant.md): Kacper Łukawski - [[Anchor](https://qdrant.tech/articles/langchain-integration/\#streamlining-question-answering-simplifying-integration-with-langchain-and-qdrant) Streamlining Question Answering: Simplifying Integration with LangChain and Qdrant](anchorhttpsqdranttecharticleslangchain-integrationstreamlining-question-answerin.md): Building applications with Large Language Models doesn’t have to be complicated. A lot has been going on recently to ... - [[Anchor](https://qdrant.tech/documentation/examples/rag-customer-support-cohere-airbyte-aws/\#question-answering-system-for-ai-customer-support) Question-Answering System for AI Customer Support](anchorhttpsqdranttechdocumentationexamplesrag-customer-support-cohere-airbyte-aw.md): | Time: 120 min | Level: Advanced | | | - [Create a Cohere client pointing to the AWS instance](create-a-cohere-client-pointing-to-the-aws-instance.md): cohere_client = cohere.Client(...) - [The id returned by the API should be stored for future use](the-id-returned-by-the-api-should-be-stored-for-future-use.md): connector_id = connector_response.connector.id - [[Anchor](https://qdrant.tech/documentation/concepts/explore/\#explore-the-data) Explore the data](anchorhttpsqdranttechdocumentationconceptsexploreexplore-the-data-explore-the-da.md): After mastering the concepts in [search](https://qdrant.tech/documentation/concepts/search/), you can start exploring... - [Extending ChatGPT with a Qdrant-based knowledge base](extending-chatgpt-with-a-qdrant-based-knowledge-base.md): Kacper Łukawski