feat(maria): depozit local, in afara oglinzii Drive
Dictionarul de erori Oracle pus in `documents/` ar fi disparut in 10 minute: `rclone sync` sterge de acolo tot ce nu exista in Drive. Aceeasi problema o avea si butonul de adaugare document din dashboard — documentul traia pana la urmatorul tur de sincronizare, ceea ce README-ul mentiona ca pe o ciudatenie, nu ca pe un bug. Acum sunt doua directoare cu un singur spatiu de nume: `documents/` (oglinda Drive) si `documents-local/` (ce nu vine din Drive). La acelasi nume castiga Drive-ul — e sursa comuna a echipei, iar copia locala poate fi o versiune veche uitata acolo. Dashboard-ul scrie in cel local si marcheaza documentele „local". Recalibrat cu dictionarul indexat (169 chunk-uri): 19/19, cele patru intrebari Oracle noi ies la 0,73-0,75. Reindexarea a durat cat cele 29 de chunk-uri noi, nu cat toate 169 — refolosirea vectorilor isi face treaba (log: "29 embeddings noi, 140 refolosite"). Verificat pe canalul viu: o escaladare cu captura chiar pleaca pe WhatsApp, imagine + rezumat + referinta, si apare in dashboard. 73 pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
@@ -17,6 +17,10 @@ _DEFAULT_DIR = pathlib.Path.home() / ".maria-bridge"
|
||||
|
||||
STATE_DIR: pathlib.Path = pathlib.Path(os.environ.get("MARIA_BRIDGE_DIR") or _DEFAULT_DIR)
|
||||
DOCS_DIR: pathlib.Path = STATE_DIR / "documents"
|
||||
# Documente care NU vin din Drive. `rclone sync` sterge din DOCS_DIR tot ce nu
|
||||
# exista in Drive, deci orice fisier pus acolo de mana dispare la urmatorul tur.
|
||||
# Ce sta aici e in afara oglinzii si supravietuieste.
|
||||
DOCS_LOCAL_DIR: pathlib.Path = STATE_DIR / "documents-local"
|
||||
INDEX_FILE: pathlib.Path = STATE_DIR / "rag_index.json"
|
||||
LOCK_FILE: pathlib.Path = STATE_DIR / ".rag.lock"
|
||||
LOG_DIR: pathlib.Path = STATE_DIR / "logs"
|
||||
@@ -87,11 +91,12 @@ def parse_env(text: str) -> dict[str, str]:
|
||||
|
||||
def reload(base_dir: str | os.PathLike | None = None) -> dict[str, str]:
|
||||
"""Recalculeaza caile si reciteste env-ul. Returneaza dictionarul incarcat."""
|
||||
global STATE_DIR, DOCS_DIR, INDEX_FILE, LOCK_FILE, LOG_DIR, ENV_FILE, AUTH_DIR, _env
|
||||
global STATE_DIR, DOCS_DIR, DOCS_LOCAL_DIR, INDEX_FILE, LOCK_FILE, LOG_DIR, ENV_FILE, AUTH_DIR, _env
|
||||
if base_dir is None:
|
||||
base_dir = os.environ.get("MARIA_BRIDGE_DIR") or _DEFAULT_DIR
|
||||
STATE_DIR = pathlib.Path(base_dir)
|
||||
DOCS_DIR = STATE_DIR / "documents"
|
||||
DOCS_LOCAL_DIR = STATE_DIR / "documents-local"
|
||||
INDEX_FILE = STATE_DIR / "rag_index.json"
|
||||
LOCK_FILE = STATE_DIR / ".rag.lock"
|
||||
LOG_DIR = STATE_DIR / "logs"
|
||||
|
||||
Reference in New Issue
Block a user