diff --git a/haiku_rag_slim/haiku/rag/app.py b/haiku_rag_slim/haiku/rag/app.py index 9efd3418..072d1768 100644 --- a/haiku_rag_slim/haiku/rag/app.py +++ b/haiku_rag_slim/haiku/rag/app.py @@ -19,11 +19,11 @@ from rich.progress import ( from rich.syntax import Syntax from haiku.rag.client import HaikuRAG, RebuildMode -from haiku.rag.client.models import SearchType from haiku.rag.config import AppConfig, Config from haiku.rag.mcp import create_mcp_server from haiku.rag.monitor import FileWatcher, S3Watcher from haiku.rag.store.models.document import Document +from haiku.rag.store.models.chunk import SearchType if TYPE_CHECKING: from haiku.rag.store.models import SearchResult diff --git a/haiku_rag_slim/haiku/rag/cli.py b/haiku_rag_slim/haiku/rag/cli.py index 44c3750e..64a93ccd 100644 --- a/haiku_rag_slim/haiku/rag/cli.py +++ b/haiku_rag_slim/haiku/rag/cli.py @@ -15,7 +15,6 @@ from dotenv import find_dotenv, load_dotenv load_dotenv(find_dotenv(usecwd=True)) from haiku.rag.app import HaikuRAGApp # noqa: E402 -from haiku.rag.client.models import SearchType # noqa: E402 from haiku.rag.config import ( # noqa: E402 AppConfig, find_config_file, @@ -28,6 +27,7 @@ from haiku.rag.store.exceptions import ( # noqa: E402 MigrationRequiredError, ReadOnlyError, ) +from haiku.rag.store.models.chunk import SearchType # noqa: E402 from haiku.rag.utils import is_up_to_date # noqa: E402 _cli = typer.Typer( diff --git a/haiku_rag_slim/haiku/rag/client/__init__.py b/haiku_rag_slim/haiku/rag/client/__init__.py index 5282f57a..537c5e18 100644 --- a/haiku_rag_slim/haiku/rag/client/__init__.py +++ b/haiku_rag_slim/haiku/rag/client/__init__.py @@ -13,12 +13,11 @@ from urllib.parse import urlparse import httpx -from haiku.rag.client.models import SearchType from haiku.rag.config import AppConfig, Config from haiku.rag.converters import get_converter from haiku.rag.reranking import get_reranker from haiku.rag.store.engine import Store -from haiku.rag.store.models.chunk import Chunk, SearchResult +from haiku.rag.store.models.chunk import Chunk, SearchResult, SearchType from haiku.rag.store.models.document import Document from haiku.rag.store.models.document_item import extract_items from haiku.rag.store.repositories.chunk import ChunkRepository diff --git a/haiku_rag_slim/haiku/rag/client/models.py b/haiku_rag_slim/haiku/rag/client/models.py deleted file mode 100644 index 7737fd8a..00000000 --- a/haiku_rag_slim/haiku/rag/client/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from typing import Literal - -SearchType = Literal["vector", "fts", "hybrid"] diff --git a/haiku_rag_slim/haiku/rag/client/search.py b/haiku_rag_slim/haiku/rag/client/search.py index c0e71228..d9d6c33a 100644 --- a/haiku_rag_slim/haiku/rag/client/search.py +++ b/haiku_rag_slim/haiku/rag/client/search.py @@ -1,9 +1,8 @@ import base64 from typing import TYPE_CHECKING -from haiku.rag.client.models import SearchType from haiku.rag.reranking import get_reranker -from haiku.rag.store.models.chunk import Chunk, SearchResult +from haiku.rag.store.models.chunk import Chunk, SearchResult, SearchType if TYPE_CHECKING: from PIL import Image as PILImage diff --git a/haiku_rag_slim/haiku/rag/store/models/chunk.py b/haiku_rag_slim/haiku/rag/store/models/chunk.py index 76e2a932..4d448742 100644 --- a/haiku_rag_slim/haiku/rag/store/models/chunk.py +++ b/haiku_rag_slim/haiku/rag/store/models/chunk.py @@ -1,4 +1,4 @@ -from typing import TYPE_CHECKING +from typing import Literal, TYPE_CHECKING from pydantic import BaseModel, PrivateAttr @@ -113,6 +113,9 @@ class Chunk(BaseModel): return ChunkMetadata.model_validate(self.metadata) +SearchType = Literal["vector", "fts", "hybrid"] + + class SearchResult(BaseModel): """Search result with optional provenance information for citations. diff --git a/haiku_rag_slim/haiku/rag/store/repositories/chunk.py b/haiku_rag_slim/haiku/rag/store/repositories/chunk.py index 91b94206..96a8bbf2 100644 --- a/haiku_rag_slim/haiku/rag/store/repositories/chunk.py +++ b/haiku_rag_slim/haiku/rag/store/repositories/chunk.py @@ -10,9 +10,8 @@ if TYPE_CHECKING: from lancedb.index import FTS from lancedb.rerankers import RRFReranker -from haiku.rag.client.models import SearchType from haiku.rag.store.engine import Store, query_to_pydantic -from haiku.rag.store.models.chunk import Chunk +from haiku.rag.store.models.chunk import Chunk, SearchType logger = logging.getLogger(__name__)