From 0d3407e6643fba51d2cee512a0ffab38aa351656 Mon Sep 17 00:00:00 2001 From: Vladimir Buzalka Date: Sun, 7 Jun 2026 06:53:53 +0200 Subject: [PATCH] =?UTF-8?q?Default=20search=20without=20Voyage=20AI=20?= =?UTF-8?q?=E2=80=94=20semantic=3DFalse=20by=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full-text search is the default (fast, no API calls). Pass semantic=True explicitly when vector similarity is needed. Co-Authored-By: Claude Sonnet 4.6 --- Knowledgebase/server.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Knowledgebase/server.py b/Knowledgebase/server.py index a67a1d1..c926b93 100644 --- a/Knowledgebase/server.py +++ b/Knowledgebase/server.py @@ -388,10 +388,12 @@ def search( limit: int = 10, min_importance: float = 0.0, include_sessions: bool = False, + semantic: bool = False, ) -> str: """ - Hybridní vyhledávání v paměti. - Kombinuje full-text (vždy) + vektorové sémantické (pokud embeddingy dostupné). + Vyhledávání v paměti. + Default: full-text (tsvector) — rychlé, bez API volání. + semantic=True: přidá vektorové sémantické vyhledávání přes Voyage AI (pomalejší). query: přirozený jazyk nebo klíčová slova types: ['fact','decision','preference','summary','document','email','project','person'] @@ -444,8 +446,8 @@ def search( fts_ids = {r["id"] for r in rows} results = [_row_to_dict(r) for r in rows] - # ── Vector search (nativní pgvector, <=> cosine distance) ── - query_emb = get_embedding(query) + # ── Vector search (pouze pokud semantic=True) ── + query_emb = get_embedding(query) if semantic else None if query_emb: try: import numpy as np @@ -520,6 +522,7 @@ def get_context( project: Optional[str] = None, limit: int = 8, include_preferences: bool = True, + semantic: bool = False, ) -> str: """ Vrátí nejrelevantnější paměti pro daný kontext/téma. @@ -537,6 +540,7 @@ def get_context( project=project, limit=limit, min_importance=0.3, + semantic=semantic, ) parts.append("=== RELEVANTNÍ PAMĚTI ===\n" + main_result)