MCPcopy
hub / github.com/tirth8205/code-review-graph / _embedding_search

Function _embedding_search

code_review_graph/search.py:212–247  ·  view source on GitHub ↗

Run a vector similarity search using the embedding store. Returns list of ``(node_id, similarity_score)`` tuples. Gracefully returns an empty list if embeddings are not available.

(
    store: GraphStore,
    query: str,
    limit: int = 50,
    model: str | None = None,
    provider: str | None = None,
)

Source from the content-addressed store, hash-verified

210
211
212def _embedding_search(
213 store: GraphStore,
214 query: str,
215 limit: int = 50,
216 model: str | None = None,
217 provider: str | None = None,
218) -> list[tuple[int, float]]:
219 """Run a vector similarity search using the embedding store.
220
221 Returns list of ``(node_id, similarity_score)`` tuples.
222 Gracefully returns an empty list if embeddings are not available.
223 """
224 try:
225 from .embeddings import EmbeddingStore
226 except ImportError:
227 return []
228
229 try:
230 emb_store = EmbeddingStore(store.db_path, provider=provider, model=model)
231 try:
232 if not emb_store.available or emb_store.count() == 0:
233 return []
234
235 results = emb_store.search(query, limit=limit)
236 # Map qualified names back to node IDs
237 id_scores: list[tuple[int, float]] = []
238 for qn, score in results:
239 node = store.get_node(qn)
240 if node:
241 id_scores.append((node.id, score))
242 return id_scores
243 finally:
244 emb_store.close()
245 except Exception as e:
246 logger.warning("Embedding search failed: %s", e)
247 return []
248
249
250# ---------------------------------------------------------------------------

Callers 1

hybrid_searchFunction · 0.85

Calls 5

countMethod · 0.95
searchMethod · 0.95
closeMethod · 0.95
EmbeddingStoreClass · 0.85
get_nodeMethod · 0.80

Tested by

no test coverage detected