From f0d441ffe91daa7d95bfe9c6fcbb079c7aee6fdd Mon Sep 17 00:00:00 2001 From: EC2 Default User Date: Thu, 26 Jun 2025 10:32:36 +0000 Subject: [PATCH] use LW in search --- src/memory/api/search/search.py | 19 ++++++++++++------- src/memory/common/db/models/source_items.py | 8 ++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/memory/api/search/search.py b/src/memory/api/search/search.py index efb9e67..f876b0b 100644 --- a/src/memory/api/search/search.py +++ b/src/memory/api/search/search.py @@ -6,18 +6,23 @@ import asyncio import logging from typing import Optional -from memory.api.search.embeddings import search_embeddings -from memory.api.search.bm25 import search_bm25 -from memory.api.search.utils import SearchFilters, SearchResult - -from memory.api.search.utils import group_chunks, with_timeout -from memory.common import extract +from memory.common import extract, settings from memory.common.collections import ( ALL_COLLECTIONS, MULTIMODAL_COLLECTIONS, TEXT_COLLECTIONS, ) -from memory.common import settings +from memory.api.search.embeddings import search_embeddings + +if settings.ENABLE_BM25_SEARCH: + from memory.api.search.bm25 import search_bm25 + +from memory.api.search.utils import ( + SearchFilters, + SearchResult, + group_chunks, + with_timeout, +) logger = logging.getLogger(__name__) diff --git a/src/memory/common/db/models/source_items.py b/src/memory/common/db/models/source_items.py index 8a0c45e..509e702 100644 --- a/src/memory/common/db/models/source_items.py +++ b/src/memory/common/db/models/source_items.py @@ -21,7 +21,7 @@ from sqlalchemy import ( Text, func, ) -from sqlalchemy.dialects.postgresql import JSONB, TSVECTOR, UUID +from sqlalchemy.dialects.postgresql import JSONB, TSVECTOR from sqlalchemy.orm import relationship from memory.common import settings @@ -31,7 +31,6 @@ import memory.common.formatters.observation as observation from memory.common.db.models.source_item import ( SourceItem, - Chunk, SourceItemPayload, clean_filename, chunk_mixed, @@ -576,6 +575,11 @@ class ForumPost(SourceItem): def _chunk_contents(self) -> Sequence[extract.DataChunk]: return chunk_mixed(cast(str, self.content), cast(list[str], self.images)) + @classmethod + def get_collections(cls) -> list[str]: + # Very sad that I didn't keep the names consistent... Qdrant doesn't allow renaming collections + return ["forum"] + class MiscDoc(SourceItem): __tablename__ = "misc_doc"