notebook
This commit is contained in:
+12
-5
@@ -411,7 +411,8 @@ def search(
|
||||
|
||||
try:
|
||||
# ── Full-text search ──
|
||||
conditions = ["deleted = FALSE", "fts @@ plainto_tsquery('simple', %s)"]
|
||||
conditions = ["deleted = FALSE",
|
||||
"fts @@ plainto_tsquery('simple', kb_immutable_unaccent(%s))"]
|
||||
params: list[Any] = [query]
|
||||
|
||||
if types:
|
||||
@@ -427,14 +428,17 @@ def search(
|
||||
conditions.append("importance >= %s")
|
||||
params.append(min_importance)
|
||||
if not include_sessions:
|
||||
conditions.append("mem_type != 'summary' OR session_id IS NOT NULL")
|
||||
# Vyřaď session summaries (summary + session_id), ale ponech
|
||||
# samostatné summary záznamy. POZOR na závorky — bez nich by se
|
||||
# OR navázalo na celý WHERE a obešlo všechny ostatní filtry.
|
||||
conditions.append("(mem_type != 'summary' OR session_id IS NULL)")
|
||||
|
||||
where = " AND ".join(conditions)
|
||||
rows = conn.execute(
|
||||
f"""
|
||||
SELECT id, mem_type, title, content, summary, tags,
|
||||
project, source, session_id, importance, created_at,
|
||||
ts_rank(fts, plainto_tsquery('simple', %s)) AS score
|
||||
ts_rank(fts, plainto_tsquery('simple', kb_immutable_unaccent(%s))) AS score
|
||||
FROM kb_memories
|
||||
WHERE {where}
|
||||
ORDER BY score DESC, importance DESC
|
||||
@@ -446,8 +450,11 @@ def search(
|
||||
fts_ids = {r["id"] for r in rows}
|
||||
results = [_row_to_dict(r) for r in rows]
|
||||
|
||||
# ── Vector search (pouze pokud semantic=True) ──
|
||||
query_emb = get_embedding(query) if semantic else None
|
||||
# ── Vector search ──
|
||||
# Spustí se když semantic=True, NEBO jako automatický fallback,
|
||||
# pokud full-text nic nenašel (synonyma / významová shoda).
|
||||
need_semantic = semantic or not rows
|
||||
query_emb = get_embedding(query) if need_semantic else None
|
||||
if query_emb:
|
||||
try:
|
||||
import numpy as np
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
- [Pracovat v maintree](feedback_worktree.md) — vždy pracuj v `U:/janssen/`, ne ve worktree větvích
|
||||
- [Proaktivně navrhuj lepší API](feedback_proactive_suggestions.md) — když vidím optimalizovatelný kus pipeline a znám lepší standard (delta, CDC, webhooks…), nabídnu to, ne čekám
|
||||
- [Průběžně komentovat postup](feedback_narrate_progress.md) — nemizet do tichých tool callů, psát co dělám a proč
|
||||
- [Statistiky emailů přes MCP, ne SSH](feedback_use_mcp_emaily.md) — pro dotazy nad `emaily` db první volba MCP `emaily`, ne paramiko gymnastika
|
||||
- [Projekt Covance UCO3001](project_covance.md) — report vzorků studie 77242113UCO3001, skript `create_report.py`, zdroj + logika OK statusů
|
||||
- [EDC import do MongoDB](project_edc_mongo.md) — skript `medidata/edc_import.py`, import Data Listing + QueryDetails CSV do MongoDB (192.168.1.76), kolekce `queries` + `queries_snapshots` pro tracking vývoje queries v čase
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: feedback_narrate_progress
|
||||
description: "Průběžně komentovat co dělám, nemizet na dlouho do tichých tool callů"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: feedback
|
||||
originSessionId: 82eef5d6-e90f-4973-8006-61d79b0c640f
|
||||
---
|
||||
|
||||
Uživatel psychicky špatně snáší dlouhé ticho během práce. Když něco dělám déle (víc tool callů, SSH, delší příkaz), průběžně píšu co zrovna dělám a proč — krátká věta před každou akcí — místo dlouhého tichého bloku, po kterém se ptá „co se děje?".
|
||||
|
||||
**Why:** Bez průběžného komentáře neví, jestli pracuju nebo to zamrzlo, a stresuje ho to.
|
||||
|
||||
**How to apply:** Před delší akcí napiš jednu větu co se chystám udělat. U sekvence tool callů krátce hlásej postup. Nenech ho čekat naslepo. Souvisí s [[feedback_proactive_suggestions]].
|
||||
@@ -30,4 +30,6 @@ Klíčové: `msal`, `asn1crypto`, `pymongo`, `psycopg`, `extract-msg`, `beautifu
|
||||
|
||||
**Logy:** `/mnt/user/Scripts/logs/pipeline_YYYYMMDD_HHMM.log`, symlink `pipeline_latest.log`, retence 30 dní.
|
||||
|
||||
**Centrální logging (2026-06-09):** wrapper `0_run_pipeline` posílá do Grafana Loki (přes [[central-logging]] gateway) **každý řádek konzole** každého kroku — `app="email_pipeline"`, pole `logger=step.<id>`. Klient `central_logging*.py` zkopírován do `/scripts/`. Token+gateway NEjsou v kontejneru — dány přes `os.environ.setdefault` přímo ve wrapperu (kroky je dědí jako subprocesy). Grafana dotaz: `{app="email_pipeline"}`.
|
||||
|
||||
Souvisí s [[graph-email-import]], [[project-mcp-emaily]].
|
||||
|
||||
Reference in New Issue
Block a user