gitmyhub

wagtail-vector-index

Python ★ 22 updated 1y ago

Store Wagtail pages & Django models as embeddings in vector databases

Adds AI-powered semantic search and content recommendations to Wagtail websites by converting content into meaning-based numbers and finding closest matches to user queries.

PythonDjangoWagtailpgvectorQdrantWeaviatesetup: moderatecomplexity 3/5

Wagtail Vector Index helps you add AI-powered search and content recommendations to websites built with Wagtail, a popular content management system. Instead of relying on traditional keyword matching, it lets visitors search your site using plain English and get results based on meaning. It can also power "related articles" suggestions and other similarity-based features.

Here is the core idea: every piece of content on your site gets converted into a set of numbers that captures its meaning, something called an "embedding." These numbers are stored in a specialized database designed to find similar content quickly. When someone searches for something, their query gets turned into numbers too, and the system finds the content whose numbers are closest to what they asked for. This approach understands that "how to bake bread" and "bread recipes" are about the same thing, even without shared keywords.

This tool is built for developers and teams already using Wagtail or Django (the framework Wagtail runs on) to power their websites. A news organization could use it to let readers find articles by describing a topic in their own words. A documentation site could surface help pages based on what a user actually means, not just exact word matches. An educational platform could recommend courses or lessons similar to what a student just finished.

The project supports several different specialized databases for storing these embeddings, including options like pgvector, Qdrant, and Weaviate, giving teams flexibility in choosing infrastructure. It works with specific versions of Wagtail, Django, and Python, so teams need to ensure compatibility before integrating. The README does not go into detail on setup or configuration beyond what is needed for contributing to the project itself.

Where it fits