fix: linkchecker include filter port mismatch (#2242)

* initial commit; fixed anchor links on internal docs pages

* add back in absolute paths for links in code comments

* fix: update linkchecker include filter to match server port 1314

PR #1629 changed the Hugo server to port 1314 but forgot to update
the --include filter, which still matched port 1313. This caused all
links to be excluded, making the checker a no-op (0 checked, 82277 excluded).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix url rewrite regex so images are not impacted

* Fix links from non-documentation pages

* Fix broken links

* more broken links

* more broken links

* broken link

* Add srcset width descriptor to .lycheeignore

* Ignore URLs that contain a % character

* Anchor regex so it matches the entire URL

---------

Co-authored-by: kanungle <neil.kanungo@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Abdon Pijpelink <abdon.pijpelink@qdrant.com>
This commit is contained in:
Andrey Vasnetsov
2026-03-30 17:21:32 +02:00
committed by GitHub
co-authored by Claude Opus 4.6 kanungle Abdon Pijpelink
parent dc0080fffa
commit 1a40961d62
272 changed files with 872 additions and 879 deletions
@@ -179,11 +179,11 @@ vector_retriever = VectorRetriever(embedding_model=embedding_instance,
qdrant_urls = [
"https://qdrant.tech/documentation/overview",
"https://qdrant.tech/documentation/guides/installation",
"https://qdrant.tech/documentation/concepts/filtering",
"https://qdrant.tech/documentation/concepts/indexing",
"https://qdrant.tech/documentation/guides/distributed_deployment",
"https://qdrant.tech/documentation/guides/quantization"
"/documentation/operations/installation",
"/documentation/search/filtering",
"/documentation/manage-data/indexing",
"/documentation/operations/distributed_deployment",
"/documentation/manage-data/quantization"
# Add more URLs as needed
]
@@ -30,7 +30,7 @@ Let's break down each component of this workflow:
- **S3 Bucket:** This is our starting point—a centralized, scalable storage solution for various file types like PDFs, images, and text.
- **LangChain:** Acting as the pipeline’s orchestrator, LangChain handles extraction, preprocessing, and manages data flow for embedding generation. It simplifies processing PDFs, so you won’t need to worry about applying OCR (Optical Character Recognition) here.
- **Qdrant:** As your vector database, Qdrant stores embeddings and their [payloads](https://qdrant.tech/documentation/concepts/payload/), enabling efficient similarity search and retrieval across all content types.
- **Qdrant:** As your vector database, Qdrant stores embeddings and their [payloads](/documentation/manage-data/payload/), enabling efficient similarity search and retrieval across all content types.
## Prerequisites
@@ -164,7 +164,7 @@ With the release of the [official Qdrant node](https://github.com/qdrant/n8n-nod
An [1/3 Uploading Images to Qdrant Template Workflow](https://n8n.io/workflows/2654-vector-database-as-a-big-data-analysis-tool-for-ai-agents-13-anomaly12-knn/) consists of the following blocks:
1. **Check Collection**: Verifies if a collection with the specified name exists in Qdrant. If not, it creates one.
2. **Payload Index**: Adds a [payload index](https://qdrant.tech/documentation/concepts/indexing/#payload-index) on the `crop_name` payload (metadata) field. This field stores crop class labels, and indexing it improves the speed of filterable searches in Qdrant. It changes the way a vector index is constructed, adapting it for fast vector search under filtering constraints. For more details, refer to this [guide on filtering in Qdrant](https://qdrant.tech/articles/vector-search-filtering/).
2. **Payload Index**: Adds a [payload index](/documentation/manage-data/indexing/#payload-index) on the `crop_name` payload (metadata) field. This field stores crop class labels, and indexing it improves the speed of filterable searches in Qdrant. It changes the way a vector index is constructed, adapting it for fast vector search under filtering constraints. For more details, refer to this [guide on filtering in Qdrant](https://qdrant.tech/articles/vector-search-filtering/).
3. **Fetch Images**: Fetches images from Google Cloud Storage using the [Google Cloud Storage node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlecloudstorage).
4. **Generate IDs**: Assigns UUIDs to each data point.
5. **Embed Images**: Embeds the images using the Voyage API.
@@ -185,7 +185,7 @@ Both methods are demonstrated in the [2/3 Template Workflow for Anomaly Detectio
| **Method** | **Steps** |
|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Medoids** | 1. Sample labeled cluster points from Qdrant. <br> 2. Compute a **pairwise distance matrix** for the cluster using Qdrant's [Distance Matrix API](https://qdrant.tech/documentation/concepts/explore/?q=distance+#distance-matrix). This API helps with scalable cluster analysis and data points relationship exploration. Learn more in [this article](https://qdrant.tech/articles/distance-based-exploration/). <br> 3. For each point, calculate the sum of its distances to all other points. The point with the smallest total distance (or highest similarity for COSINE distance metric) is the medoid. <br> 4. Mark this point as the cluster representative. |
| **Medoids** | 1. Sample labeled cluster points from Qdrant. <br> 2. Compute a **pairwise distance matrix** for the cluster using Qdrant's [Distance Matrix API](/documentation/search/explore/?q=distance+#distance-matrix). This API helps with scalable cluster analysis and data points relationship exploration. Learn more in [this article](https://qdrant.tech/articles/distance-based-exploration/). <br> 3. For each point, calculate the sum of its distances to all other points. The point with the smallest total distance (or highest similarity for COSINE distance metric) is the medoid. <br> 4. Mark this point as the cluster representative. |
| **Perfect Representative** | 1. Define textual descriptions for each cluster (e.g., AI-generated). <br> 2. Embed these descriptions using Voyage. <br> 3. Find the image embedding closest to the description one. <br> 4. Mark this image as the cluster representative. |
**3. Defining the Cluster Border**
@@ -47,7 +47,7 @@ pip install "qdrant-client[fastembed]>=1.14.1"
[Qdrant](https://qdrant.tech) will act as a knowledge base providing the context information for the prompts we'll be sending to the LLM.
You can get a free-forever Qdrant cloud instance at http://cloud.qdrant.io. Learn about setting up your instance from the [Quickstart](https://qdrant.tech/documentation/quickstart-cloud/).
You can get a free-forever Qdrant cloud instance at http://cloud.qdrant.io. Learn about setting up your instance from the [Quickstart](https://qdrant.tech/documentation/cloud-quickstart/).
```python
@@ -2,7 +2,6 @@
title: "Video Anomaly Detection Part 1: Architecture, Twelve Labs, and NVIDIA VSS"
weight: 40
partition: ecosystem
social_preview_image: /articles_data/video-anomaly-edge/preview/social_preview.jpg
aliases:
- /articles/video-anomaly-edge/
- /articles/video-anomaly-edge-part-1/
@@ -2,7 +2,6 @@
title: "Video Anomaly Detection Part 2: Edge-to-Cloud Pipeline"
weight: 45
partition: ecosystem
social_preview_image: /articles_data/video-anomaly-edge/preview/social_preview.jpg
aliases:
- /articles/video-anomaly-edge-part-2/
---
@@ -2,7 +2,6 @@
title: "Video Anomaly Detection Part 3: Scoring, Governance, and Deployment"
weight: 50
partition: ecosystem
social_preview_image: /articles_data/video-anomaly-edge/preview/social_preview.jpg
aliases:
- /articles/video-anomaly-edge-part-3/
---