Awesome
<!-- Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://assets.vespa.ai/logos/Vespa-logo-green-RGB.svg"> <source media="(prefers-color-scheme: light)" srcset="https://assets.vespa.ai/logos/Vespa-logo-dark-RGB.svg"> <img alt="#Vespa" width="200" src="https://assets.vespa.ai/logos/Vespa-logo-dark-RGB.svg" style="margin-bottom: 25px;"> </picture>Vespa sample applications
For operational sample applications, see examples/operations. See also PyVespa examples.
Getting started - Basic Sample Applications
Basic album-recommendation
The album-recommendation is the intro application to Vespa. Learn how to configure the schema for simple recommendation and search use cases.
Simple hybrid semantic search
The simple semantic search
application demonstrates indexed vector search using HNSW
,
creating embedding vectors from a transformer language model inside Vespa, and hybrid
text and semantic ranking. This app also demonstrates using native Vespa embedders.
Retrieval Augmented Generation (RAG)
The retrieval-augmented-generation sample application demonstrates how to build an end-to-end RAG pipeline with API-based and local LLMs.
Indexing multiple vectors per field
The Vespa Multi-Vector Indexing with HNSW app demonstrates how to index multiple vectors per document field for semantic search for longer documents.
Vespa streaming mode for naturally partitioned data
The vector-streaming-search app demonstrates how to use vector streaming search. See also blog post.
ColBERT token-level embeddings
The colbert application demonstrates how to use the Vespa colbert-embedder for explainable semantic search with better accuracy than regular text embedding models.
ColBERT token-level embeddings for long documents
The colbert-long application demonstrates how to use the Vespa colbert-embedder for explainable semantic search for longer documents.
SPLADE sparse learned weights for ranking
The splade application demonstrates how to use the Vespa splade-embedder for semantic search using sparse vector representations.
Multilingual semantic search
The multilingual sample application demonstrates multilingual semantic search with multilingual text embedding models.
Customizing embeddings
The custom-embeddings application demonstrates customizing frozen document embeddings for downstream tasks.
More advanced sample applications
News search and recommendation tutorial
The news sample application used in the Vespa tutorial. This application demonstrates basic search functionality.
It also demonstrates how to build a recommendation system where the approximate nearest neighbor search in a shared user/item embedding space is used to retrieve recommended content for a user. This app also demonstrates using parent-child relationships in Vespa.
Billion-scale Image Search
This billion-scale-image-search app demonstrates billion-scale image search using CLIP retrieval. It features separation of compute from storage and query time vector similarity de-duping. PCA dimension reduction and more.
State-of-the-art Text Ranking
This msmarco-ranking application demonstrates how to represent state-of-the-art text ranking using Transformer (BERT) models. It uses the MS Marco passage ranking datasets and features bi-encoders, cross-encoders, and late-interaction models (ColBERT).
See also the more simplistic text-search app that demonstrates traditional text search using BM25/Vespa nativeRank.
Next generation E-Commerce Search
The use-case-shopping app creates an end-to-end E-Commerce shopping engine.
This use case also bundles a frontend application.
It uses the Amazon product data set.
It demonstrates building next generation E-commerce Search using Vespa. See
also the commerce-product-ranking sample application for using
learning-to-rank techniques (Including XGBoost
and LightGBM
) for improving product search ranking.
Search as you type and query suggestions
The incremental-search application demonstrates search-as-you-type functionality, where for each keystroke of the user, it retrieves matching documents. It also demonstrates search suggestions (query auto-completion).
Vespa as ML inference server (model-inference)
The model-inference application demonstrates using Vespa as a stateless ML model inference server where Vespa takes care of distributing ML models to multiple serving containers, offering horizontal scaling and safe deployment. Model versioning and feature processing pipeline.
<!-- [travis](travis) [part-purchases-demo](part-purchases-demo): A sample Vespa application to assist with learning how to group according to the [Grouping Guide](https://docs.vespa.ai/en/grouping.html). [generic-request-processing](generic-request-processing) http-api-using-* -->Note: Applications with pom.xml are Java/Maven projects and must be built before deployment. Refer to the Developer Guide for more information.
Contribute to the Vespa sample applications.