GMS Asistent — Changelog  ·  ← chat   admin

Changelog

Všechny podstatné změny projektu GMS Asistent (chatbot pro vyhledávání zboží

na gms.cz). Formát dle Keep a Changelog.

Konvence: každý release má verzi + datum a čas (Europe/Prague). Časy F1–F3
odpovídají git commitům.

[0.5.2] – 2026-06-19 17:28 – Changelog na webu, UI drobnosti

Added

app/mdrender.py – minimální Markdown→HTML bez závislostí). Odkazy

„Changelog" a „Admin" v hlavičce chatu.

Změněno

Pozn. (infrastruktura)

certů); dry-run obnovy gms.x86.cz = success.

[0.5.1] – 2026-06-19 17:23 – Recall a HTTPS

Zlepšeno

od LLM (dobrá diakritika) + celého dotazu (zachová kontext jako teplota/médium).

„najdi hadici na benzin" → opět 5 výsledků (dřív 1); „pryž nad 150 °C" → 5.

Ověřeno cílenými testy (benzín/polyamid/pryž 150°C/voda = 5, banán = 0).

Nasazení

443 SSL blok + redirect 80→443 v nginx-proxy-manager:/data/nginx/custom/http.conf.

Ověřeno z internetu: https://gms.x86.cz → 200, http → 301. Cert expiruje

2026-09-17, automatická obnova přes cron na droidu (certbot renew + reload).

[0.5.0] – 2026-06-19 17:06 – F4: Relevance přes evaluaci 55 otázek, robustnost, TEST/rproxy

Zlepšeno (iterativně přes scripts/eval2.py – 55 reálných zákaznických otázek po kategoriích)

těsnící desky, podlahoviny, profily, tyče, technické plasty) – přestaly se

chybně zahazovat dotazy typu „polyamidová tyč", „pryž nad 150 °C".

spolehlivější relevance (false-negativy zmizely).

produkt, LLM poradí obecně a doptá se (bez výmyslu produktů). Mimo-obor →

stručná hláška bez volání LLM.

Robustnost

(automatický exponenciální backoff, respektuje retry-after); zmenšen prompt

odpovědi (méně tokenů). Eval harness má pacing.

Výsledky evaluace (55 otázek, LLM-soudce spokojenosti)

baselinepo iteracích
spokojenost3.73/54.20/5 (+12,6 %)
slabé odpovědi (≤2/5)121
nejslabší kategoriePlasty 2.0, Pryže 3.3vše ≥ 4.0

Nasazení / infrastruktura

/data/nginx/custom/http.conf → 192.168.254.199:45080). HTTPS = TODO

(Let's Encrypt přes NPM GUI).

[0.4.0] – 2026-06-19 15:16 – F3: Logování, admin, multi-turn, evaluace relevance

Added

přežije re-ingestaci): každý chat se ukládá (zpráva, extrakce, výsledky, odpověď,

časy, ok/error, session_id).

/api/logs/{id} (chráněné DEBUG_PASSWORD): procházení diskuzí, detail,

filtr podle session, „Kopírovat odkaz na log", deep-linky.

LLM extrakce dostává historii → zákazník může postupně upřesňovat (5× pokračovat).

banán, auto) → vrací NIC (radši nic než nerelevantní).

relevantní ~0.43+, nesmysly ~0.30–0.39).

zadání, multi-turn), LLM-soudce spokojenosti.

výpis až 5 produktů s odkazy; default limit 5.

Opraveno (přes iterace eval harness)

(dřív vracel keyword balast).

slova (ta embedovala špatně) → opravena regrese vágních dotazů.

Výsledky evaluace (21 diskuzí, LLM-soudce)

baselinepo iteracích
správné chování18/21 (86 %)21/21 (100 %)
spokojenost (relevantní)3.56/53.72/5
spokojenost (celkem)3.48/53.71/5

– přijdou z plné DB.

Analýza PDF (závěr)

smíšené (i .jpg, právní prohlášení). body_text už pokrývá podstatu.

Selektivně jen pro produkty s prázdným popisem. Větší přínos = ceny + kategorie.

[0.3.0] – 2026-06-19 14:31 – F2: Sémantika, relevance, ověřeno v Dockeru

Added

(OpenAI text-embedding-3-small, 1536 dim) do products.embedding (pgvector),

HNSW index. Pro všech 5 665 produktů spočítáno.

(MIN_SIM=0.30) – přirozený dotaz řadí embeddingy, rozměry zůstávají tvrdým

filtrem; fulltext (FTS) je fallback. → vrací jen relevantní výsledky.

https://www.gms.cz/?query=<název>; asistent ho uvádí jako markdown odkaz.

Ověřeno v běžícím Dockeru (PostgreSQL+pgvector)

343 878 hodnot parametrů**.

NBR/FUB/CLC…, FKM ponorná), žádné navijáky/pistole/požární hadice. ✓

s odkazy). Klíče v .env (negitováno).

Opraveno

Pozn.

eshopové hledání podle názvu; přesné URL doplníme z plné DB.

[0.2.0] – 2026-06-19 14:00 – F1: Microservice (FastAPI + PostgreSQL + AI)

Rozhodnutí (odsouhlaseno zadavatelem)

model claude-opus-4-8).

Added

pgvector embedding, tsvector fulltext s unaccent). ID jako TEXT

(katalogové kódy vč. SERVICE*, NV260347 – o žádnou položku nepřijdeme).

přes COPY, stavba fulltextu, doplnění cen z Heureka feedu.

rozměrů nad parsovanými čísly (na úrovni produktu i SKU).

extrakce omezení + generace odpovědi nad dohledanými daty (lazy import SDK).

ochrana), volitelné heslo pro debug UI.

(chráněné), /api/chat (LLM + debug info), debug UI na /.

(extrahované filtry, časy, nalezené produkty/SKU/rozměry).

scripts/fetch_feeds.sh.

12 prochází.

Ověřeno

klíčů (smoke test TestClient: /api/health 200, UI na /, čisté 503/502).

45 592 SKU, 343 878 hodnot parametrů, 0 sirotků).

Čeká na zadavatele (blokuje finální ověření)

hybrid search + build image.

[0.1.0] – 2026-06-19 13:40 – F0: Průzkum a datový základ

Added

docs/, static/, tests/).

„nesmí odhadovat“: uchovává raw hodnotu, numeriku parsuje jen když je

jednoznačná (rozsahy, české čárky, převod MPa/kPa→bar), jinak ponechá text.

+ FTS5 fulltext bez diakritiky).

zabezpečené API, debug UI, nasazení).

Zjištění z dat (ověřeno)

ponechán jako přesný text.

Partnerské feedy (přidáno, bohatší zdroj)

popisy, 9 324 PDF datasheetů, 12 481 obrázků, vazby skupin a souvisejících.

(produkty i SKU), ø 6,7 parametru/položku.

Infrastruktura (poznámky)

na RPROXY → HTTPS do Docker kontejneru.