RepoMistral AIMistral AIpublished May 20, 2026seen 6d

mistralai/search-starter-app

Jinja

Open original ↗

Captured source

source ↗
published May 20, 2026seen 6dcaptured 14hhttp 200method plain

mistralai/search-starter-app

Description: Base template to build, manage and improve search engines

Language: Jinja

License: MIT

Stars: 5

Forks: 0

Open issues: 0

Created: 2026-05-20T15:37:12Z

Pushed: 2026-06-03T07:47:54Z

Default branch: main

Fork: no

Archived: no

README:

search-starter-app

Copier template for bootstrapping Mistral Search Toolkit projects.

Built on the SDK in mistralai/search/toolkit — ingestion pipelines, Vespa indexing, and hybrid retrieval.

Prerequisites

This repo is a [Copier](https://copier.readthedocs.io/) template — a Python CLI that scaffolds a new project from template/ (not the French verb *copier*).

Install Copier once (pick one):

uv tool install copier

Or run it without a global install via uv:

uvx copier copy gh:mistralai/search-starter-app my-search-project

You also need Docker for local Vespa and uv in the generated project.

Usage

copier copy gh:mistralai/search-starter-app my-search-project

From a local git checkout:

copier copy ./search-starter-app my-search-project

Optional wrapper (same as copier copy, no extra flags):

./search-starter-app/scripts/setup my-search-project

Copier uses the latest git tag of the template (not uncommitted files). After changing the template, commit and tag a new release so copier copy ./search-starter-app picks up the changes.

Initial setup asks for Mistral API key and collection name. The destination folder is the project name (pyproject.toml, README, Vespa container). Ports default to 18080 / 19072 in .env.

Template Structure

template/
├── .env.jinja
├── pyproject.toml.jinja
├── README.md.jinja
├── Makefile.jinja # → Makefile in generated project
├── docker-compose.yaml.jinja
├── sample_data/hello.txt
├── .agents/skills/search/ # Search Toolkit agent skill
└── src/
├── entrypoints/
│ ├── ingest.py # Pipeline → VespaSearchIndex (file or directory)
│ └── search.py # QueryEngine → VectorRetriever
└── vespa_app/
├── __init__.py # VespaApp definition
└── migrations/ # mistral-vespa migrate (hybrid query profile)

Quick start (after copier copy)

These commands run in the generated project. The repo root Makefile is only for template CI.

cd my-search-project
make setup-vespa
make ingest path=sample_data/hello.txt
make search query="hello world"
make bruno # optional: API files under vespa/bruno/vespa/

Port selection is intentionally not part of the initial Copier questions. Generated projects default to 18080 / 19072; if needed later, users can edit .env (VESPA_QUERY_PORT, VESPA_CONFIG_PORT) without re-generating the project.

Variables

| Variable | Description | | ------------------ | ------------------------------------------------ | | (destination path) | Project name = folder you pass to copier copy | | mistral_api_key | Mistral API key (written to .env, git-ignored) | | collection_name | Vespa collection / schema name |

Generated .env also sets default Vespa ports and WORKSPACE_ROOT=..

Notability

notability 2.0/10

Trivial starter app with minimal traction