From 3a473827fc746bdce4999e8da773b90d20540409 Mon Sep 17 00:00:00 2001 From: Kirstin Date: Thu, 20 Nov 2025 13:49:52 +0100 Subject: [PATCH] removed all python-dotenv and just let dev load from env, assuming they know variables have to be exported beforehand --- .../course/essentials/day-0/building-simple-vector-search.md | 2 -- .../content/course/essentials/day-0/pitstop-project.md | 4 +--- .../content/course/essentials/day-0/qdrant-cloud.md | 4 +--- .../content/course/essentials/day-1/embedding-models.md | 2 -- .../content/course/essentials/day-1/pitstop-project.md | 4 +--- .../content/course/essentials/day-2/collection-tuning-demo.md | 3 --- .../content/course/essentials/day-2/filterable-hnsw.md | 2 -- .../content/course/essentials/day-2/pitstop-project.md | 4 +--- .../content/course/essentials/day-2/what-is-hnsw.md | 4 ---- .../content/course/essentials/day-4/large-scale-ingestion.md | 2 -- .../content/course/essentials/day-4/pitstop-project.md | 4 +--- .../essentials/day-4/rescoring-oversampling-indexing.md | 2 -- .../content/course/essentials/day-4/what-is-quantization.md | 2 -- .../content/course/essentials/day-5/colbert-multivectors.md | 2 -- .../content/course/essentials/day-5/pitstop-project.md | 4 +--- .../content/course/essentials/day-5/universal-query-api.md | 2 -- .../content/course/essentials/day-5/universal-query-demo.md | 2 -- .../content/course/essentials/day-6/final-project.md | 4 +--- 18 files changed, 7 insertions(+), 46 deletions(-) diff --git a/qdrant-landing/content/course/essentials/day-0/building-simple-vector-search.md b/qdrant-landing/content/course/essentials/day-0/building-simple-vector-search.md index f1b75db36..94ba840f0 100644 --- a/qdrant-landing/content/course/essentials/day-0/building-simple-vector-search.md +++ b/qdrant-landing/content/course/essentials/day-0/building-simple-vector-search.md @@ -42,9 +42,7 @@ To connect to Qdrant Cloud, you need your cluster URL and API key from your Qdra ```python import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-0/pitstop-project.md b/qdrant-landing/content/course/essentials/day-0/pitstop-project.md index 0d0d7fcda..15bce0c75 100644 --- a/qdrant-landing/content/course/essentials/day-0/pitstop-project.md +++ b/qdrant-landing/content/course/essentials/day-0/pitstop-project.md @@ -29,7 +29,7 @@ A working search system with: ### Prerequisites - Qdrant Cloud cluster (URL + API key) - Python 3.9+ (or Colab) -- Required packages: `qdrant-client`, `python-dotenv`. +- Required packages: `qdrant-client`. ### Models - None. We will create vectors by hand. @@ -52,9 +52,7 @@ For this tutorial, we'll use the **Product Categories** concept. ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-0/qdrant-cloud.md b/qdrant-landing/content/course/essentials/day-0/qdrant-cloud.md index 09177a211..af2cc85d6 100644 --- a/qdrant-landing/content/course/essentials/day-0/qdrant-cloud.md +++ b/qdrant-landing/content/course/essentials/day-0/qdrant-cloud.md @@ -99,14 +99,12 @@ QDRANT_URL=https://YOUR-CLUSTER.cloud.qdrant.io:6333 QDRANT_API_KEY=YOUR_API_KEY ``` -Load the credentials with `dotenv` and create a Qdrant client: +Load the credentials from the environment and create a Qdrant client: ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-1/embedding-models.md b/qdrant-landing/content/course/essentials/day-1/embedding-models.md index 9895f49fe..db3bb4a63 100644 --- a/qdrant-landing/content/course/essentials/day-1/embedding-models.md +++ b/qdrant-landing/content/course/essentials/day-1/embedding-models.md @@ -122,9 +122,7 @@ To create a collection with Named Vectors, you need to specify a configuration f ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-1/pitstop-project.md b/qdrant-landing/content/course/essentials/day-1/pitstop-project.md index 6d34dc705..8d6eceee7 100644 --- a/qdrant-landing/content/course/essentials/day-1/pitstop-project.md +++ b/qdrant-landing/content/course/essentials/day-1/pitstop-project.md @@ -31,7 +31,7 @@ A working semantic search engine that demonstrates: ### Prerequisites - Qdrant Cloud cluster (URL + API key) - Python 3.9+ (or Colab) -- Packages: `qdrant-client`, `sentence-transformers`, `python-dotenv` (optional), `google.colab` (if using Colab) +- Packages: `qdrant-client`, `sentence-transformers`, `google.colab` (if using Colab) ### Models - SentenceTransformer: `all-MiniLM-L6-v2` (384-dim) @@ -62,9 +62,7 @@ Pick something with rich, descriptive text where semantic search adds value: from sentence_transformers import SentenceTransformer from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-2/collection-tuning-demo.md b/qdrant-landing/content/course/essentials/day-2/collection-tuning-demo.md index ef632bccc..7b65674f0 100644 --- a/qdrant-landing/content/course/essentials/day-2/collection-tuning-demo.md +++ b/qdrant-landing/content/course/essentials/day-2/collection-tuning-demo.md @@ -43,7 +43,6 @@ Working with 100K high-dimensional vectors (1536 dimensions from OpenAI's text-e `qdrant-client`: Official Qdrant Python client for vector search operations `tqdm`: Progress bars for bulk operations (essential for 100K upload tracking) `openai`: Generate query embeddings compatible with the dataset -`python-dotenv`: Secure environment variable management ### Set Up API Keys @@ -78,9 +77,7 @@ from tqdm import tqdm import openai import time import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-2/filterable-hnsw.md b/qdrant-landing/content/course/essentials/day-2/filterable-hnsw.md index 10a2d5009..745935955 100644 --- a/qdrant-landing/content/course/essentials/day-2/filterable-hnsw.md +++ b/qdrant-landing/content/course/essentials/day-2/filterable-hnsw.md @@ -64,9 +64,7 @@ At query time, Qdrant uses a query planner to determine the appropriate strategy ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-2/pitstop-project.md b/qdrant-landing/content/course/essentials/day-2/pitstop-project.md index d6ae6f833..aa6534a3d 100644 --- a/qdrant-landing/content/course/essentials/day-2/pitstop-project.md +++ b/qdrant-landing/content/course/essentials/day-2/pitstop-project.md @@ -31,7 +31,7 @@ A performance-optimized version of your Day 1 search engine that demonstrates: * Qdrant Cloud cluster (URL + API key) * Python 3.9+ (or Google Colab) -* Packages: `qdrant-client`, `sentence-transformers`, `python-dotenv`, `numpy` +* Packages: `qdrant-client`, `sentence-transformers`, `numpy` ### Models @@ -54,9 +54,7 @@ from sentence_transformers import SentenceTransformer import time import numpy as np import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-2/what-is-hnsw.md b/qdrant-landing/content/course/essentials/day-2/what-is-hnsw.md index a29d0d989..51894aff3 100644 --- a/qdrant-landing/content/course/essentials/day-2/what-is-hnsw.md +++ b/qdrant-landing/content/course/essentials/day-2/what-is-hnsw.md @@ -140,9 +140,7 @@ Small collections or low-dimensional vectors may not trigger HNSW indexing at al ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: @@ -186,9 +184,7 @@ Let's test the performance. First we upload some toy data to a new collection: import time from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-4/large-scale-ingestion.md b/qdrant-landing/content/course/essentials/day-4/large-scale-ingestion.md index f76f159ef..f653813ef 100644 --- a/qdrant-landing/content/course/essentials/day-4/large-scale-ingestion.md +++ b/qdrant-landing/content/course/essentials/day-4/large-scale-ingestion.md @@ -57,9 +57,7 @@ The foundation of scalable ingestion is a well-designed collection configuration ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) client.recreate_collection( diff --git a/qdrant-landing/content/course/essentials/day-4/pitstop-project.md b/qdrant-landing/content/course/essentials/day-4/pitstop-project.md index b3051abaa..4186136b7 100644 --- a/qdrant-landing/content/course/essentials/day-4/pitstop-project.md +++ b/qdrant-landing/content/course/essentials/day-4/pitstop-project.md @@ -29,7 +29,7 @@ A quantization-optimized search system that demonstrates: * Qdrant Cloud cluster (URL + API key) * Python 3.9+ (or Google Colab) -* Packages: `qdrant-client`, `numpy`, `python-dotenv` +* Packages: `qdrant-client`, `numpy` ### Models @@ -55,9 +55,7 @@ import numpy as np from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-4/rescoring-oversampling-indexing.md b/qdrant-landing/content/course/essentials/day-4/rescoring-oversampling-indexing.md index c45b8ef79..7290d3917 100644 --- a/qdrant-landing/content/course/essentials/day-4/rescoring-oversampling-indexing.md +++ b/qdrant-landing/content/course/essentials/day-4/rescoring-oversampling-indexing.md @@ -46,9 +46,7 @@ For example, in our case with a limit of 4, a candidate that ranked 6th in the i ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-4/what-is-quantization.md b/qdrant-landing/content/course/essentials/day-4/what-is-quantization.md index 8640ba673..9d8f60af9 100644 --- a/qdrant-landing/content/course/essentials/day-4/what-is-quantization.md +++ b/qdrant-landing/content/course/essentials/day-4/what-is-quantization.md @@ -39,9 +39,7 @@ Scalar quantization excels as the production default because it [maintains 99%+ ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-5/colbert-multivectors.md b/qdrant-landing/content/course/essentials/day-5/colbert-multivectors.md index a5351bda0..735b7b975 100644 --- a/qdrant-landing/content/course/essentials/day-5/colbert-multivectors.md +++ b/qdrant-landing/content/course/essentials/day-5/colbert-multivectors.md @@ -57,9 +57,7 @@ To use ColBERT for retrieval, create a collection with a multivector field confi ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-5/pitstop-project.md b/qdrant-landing/content/course/essentials/day-5/pitstop-project.md index b461d4c57..01e5513e6 100644 --- a/qdrant-landing/content/course/essentials/day-5/pitstop-project.md +++ b/qdrant-landing/content/course/essentials/day-5/pitstop-project.md @@ -32,7 +32,7 @@ A hybrid recommendation system using: * Qdrant Cloud cluster (URL + API key) * Python 3.9+ (or Google Colab) -* Packages: `qdrant-client`, `fastembed`, `python-dotenv` +* Packages: `qdrant-client`, `fastembed` ### Models - **Dense**: `sentence-transformers/all-MiniLM-L6-v2` (384-dim) @@ -56,9 +56,7 @@ First, connect to Qdrant and create a clean collection for our recommendation sy from datetime import datetime from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-5/universal-query-api.md b/qdrant-landing/content/course/essentials/day-5/universal-query-api.md index 55df1577b..2f17e0662 100644 --- a/qdrant-landing/content/course/essentials/day-5/universal-query-api.md +++ b/qdrant-landing/content/course/essentials/day-5/universal-query-api.md @@ -17,9 +17,7 @@ First, you retrieve candidates from multiple sources in parallel and fuse their ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-5/universal-query-demo.md b/qdrant-landing/content/course/essentials/day-5/universal-query-demo.md index d39f1daeb..23619a520 100644 --- a/qdrant-landing/content/course/essentials/day-5/universal-query-demo.md +++ b/qdrant-landing/content/course/essentials/day-5/universal-query-demo.md @@ -36,9 +36,7 @@ from datetime import datetime, timedelta from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: diff --git a/qdrant-landing/content/course/essentials/day-6/final-project.md b/qdrant-landing/content/course/essentials/day-6/final-project.md index 32a8b6ceb..f1f1d58e2 100644 --- a/qdrant-landing/content/course/essentials/day-6/final-project.md +++ b/qdrant-landing/content/course/essentials/day-6/final-project.md @@ -43,7 +43,7 @@ This mirrors real-world retrieval challenges where users need precise answers fr ### Prerequisites * Qdrant Cloud cluster (URL + API key) * Python 3.9+ (or Google Colab) -* Packages: `qdrant-client`, `numpy`, `python-dotenv` +* Packages: `qdrant-client`, `numpy` ### Models - **Dense**: `BAAI/bge-small-en-v1.5` (384-dim) or `BAAI/bge-base-en-v1.5` (768-dim) @@ -76,9 +76,7 @@ payload = { ```python from qdrant_client import QdrantClient, models import os -from dotenv import load_dotenv -load_dotenv() client = QdrantClient(url=os.getenv("QDRANT_URL"), api_key=os.getenv("QDRANT_API_KEY")) # For Colab: