Back to the catalog

destinations

Bundle OKF 0.1 · 17 conceitos · DatacationOrg/llms4eu

Open source Repository Open in the app JSON README (API)

About

# destinations

* [Bazilika Lurške Marije, Brestanica](bazilika-lurske-marije-brestanica.md) - A monumental three-nave neo-Romanesque minor basilica and parish church in Brestanica, Slovenia, built between 1908 and 1914, dedicated to Our Lady of Lourdes, and known as the 'Slovenian Lourdes'.
* [Brestanica](brestanica.md) - A settlement in Slovenia near Krško, historically known as Rajhenburg, situated at the confluence of the Sava River and Brestanica stream, dominated by Rajhenburg Castle, and first mentioned in 895.
* [Celeja](celeia.md) - Celeja (Municipium Claudium Celeia) was a Roman city located in the area of present-day Celje, Slovenia, that flourished as a major colony and crossroads from the 1st century BC to the 6th century AD.
* [Cerkev sv. Boštjana, Brestanica](cerkev-sv-bostjana-brestanica.md) - A church in Brestanica, Slovenia, built on a hill at the confluence of the Brestanica and Senovo streams, whose last thorough renovation in 1996 disproved assumptions about its co

Details

Kind
OKF bundles
Topic
Marketing & analytics
Publisher
datacationorg
Origin
okf_github
Category
dados
Version
0.1
Open pull requests
5
Last push
2026-09-07T15:46:35Z
Repository state
ativo
Language
Python
Added
2026-09-09 12:03:57
Updated
2026-09-09 12:03:57
Origin id
DatacationOrg/llms4eu:data/okf/tourism/destinations/index.md

README

# LLMs4EU - Tourism - RAG

Local RAG for tourism places. SQLite stores canonical content, and Chroma stores
derived vector indexes. Both run entirely inside the Python environment.

## Requirements

- [uv](https://docs.astral.sh/uv/)
- [just](https://just.systems/)
- [Ollama](https://ollama.com/) — only needed for `just ask`, `just scrape`,
  and `just eval-generate`

## Setup

```bash
uv sync --extra dev   # install all dependencies
cp .env.example .env  # set local paths (defaults work out of the box)
```

```bash
ollama pull gemma4:e4b
# Optional for eval question generation:
ollama pull gemma4:26b-a4b-it-q4_K_M
ollama pull gpt-oss:20b
```

## Usage

```bash
just init        # load seed data into SQLite
just index       # embed places and rebuild Chroma
just ask What place is best for a quiet forest walk near water?  # retrieve + LLM answer
just scrape https://example.com  # crawl a site, ingest into SQLite, reindex
just scrape-web  # start the local scraping UI
just eval-index qwen  # rebuild the default qwen chunk vector index
just test        # run the non-LLM test suite
```

Search defaults to top 10 final results. Override per query:

```bash
uv run python -m src.rag.search "lake picnic" --limit 5
```

Experimental retrieval eval over scraped Markdown pages:

```bash
just eval-chunks
just eval-index qwen
just eval-generate 10
just eval qwen,sparse
just eval qwen4b_rerank,qwen4b_hybrid,qwen4b_hybrid_rerank
```

## Shape

```text
data/           tracked seed fixture
sql/            one-table schema, portable to SQLite and Postgres
src/db/         SQLite initialize and place queries
src/preprocess/ rebuild derived data from SQL rows
src/indexing/   provider-shaped vector indexing
src/vector_store/  Chroma collection, upsert, vector search
src/retrieval/  chunk retrieval methods and catalog
src/rag/        place search and answer scripts
src/eval/       chunked raw-page retrieval evaluation
src/scraping/   crawler, transform, ingest, scraping UI
src/shared/     schema, embeddings, env, LLM helper
tests/          data contract, retrieval, scrape transform
```

Durable reference databases live under `data/db/` with descriptive names such
as `pages.db`. Regenerable vector cache artifacts live under
`data/cache/chroma/`. SQLite page chunks are the source of truth for chunk text;
Chroma collections are derived indexes over those chunks. Use `.env` overrides
for private scratch paths under `.local/`.

---

## Roadmap

This repo focuses on building a clean, portable place database as the foundation
for a larger RAG system.

**Current:** SQLite + Chroma, everything local, no services needed.

**Next step:** swap storage backends for larger shared runs:
- SQLite → **Supabase** (free tier, under 500 MB, shared across teams)
- Chroma → **Qdrant** (free tier, managed vector index)

The SQL schema and module boundaries are designed to make that swap small.
Before scaling up, we need to align with other teams on what data collection
tools and shared infrastructure are available.

## Docs

- [docs/architecture-decisions.md](docs/architecture-decisions.md): durable decisions and why they matter.
- [experiments/indexing/README.md](experiments/indexing/README.md): retrieval experiments and evaluation protocol.
- [docs/retrieval-results-agentic.md](docs/retrieval-results-agentic.md): current agentic retrieval report.

More