Commit 7690b4b8 authored by Jan Reimes's avatar Jan Reimes
Browse files

🔥 refactor(3gpp-ai): remove dead code from AI package

Remove unused methods, properties, and imports across 3gpp-ai:
- cli: _build_workspace_members (unreachable sync wrapper)
- config: ai_cache_dir property
- lightrag/config: pg_uri property
- lightrag/processor: process_folder method
- lightrag/seeder: seed_tdoc, seed_working_group, get_stats methods
- lightrag/shared_storage: 8 unused WorkspaceIndex methods
- lightrag/pg0_manager: is_running, running (context manager)
- operations/metrics: by_type method
- operations/workspace_registry: get_active method
parent fe457281
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ tdoc-crawler query-tdocs --agenda "*atias*" --start-date 2018
3gpp-ai workspace create atias
:: 3gpp-ai workspace activate atias
3gpp-ai workspace add-members --kind tdocs --agenda "*atias*" --start-date 2017
3gpp-ai workspace add-members S4-260109 --kind tdocs
3gpp-ai workspace add-members 26131 26132 26260 26261 21905 --kind specs --release 19
3gpp-ai workspace add-members 26260 --kind specs --release 18.1.0
3gpp-ai workspace add-members 26260 26261 --kind specs --release 18.0.0
+0 −32
Original line number Diff line number Diff line
@@ -363,38 +363,6 @@ async def _process_single_item(
    return member, None, was_converted, was_md_extracted


def _build_workspace_members(
    *,
    workspace: str,
    items: list[str],
    source_kind: SourceKind,
    checkout: bool,
    release: str | None,
) -> tuple[list[Any], list[tuple[str, str]]]:
    manager = resolve_cache_manager()
    members: list[Any] = []
    skipped: list[tuple[str, str]] = []

    async def _build_members() -> tuple[list[Any], list[tuple[str, str]]]:
        for item in items:
            member, skip_reason, _, _ = await _process_single_item(
                item=item,
                workspace=workspace,
                source_kind=source_kind,
                checkout=checkout,
                release=release,
                convert_pdf=False,  # Conversion handled separately in CLI
                manager=manager,
            )
            if skip_reason:
                skipped.append((item, skip_reason))
            else:
                members.append(member)
        return members, skipped

    return asyncio.run(_build_members())


def _resolve_process_file(path: Path) -> Path | None:
    """Resolve the actual document file from a path or directory.

+0 −8
Original line number Diff line number Diff line
@@ -8,7 +8,6 @@ from typing import Literal

import litellm
from pydantic import Field, field_validator, model_validator
from tdoc_crawler.config import resolve_cache_manager
from tdoc_crawler.models import BaseConfigModel

DEFAULT_EMBEDDING_MODEL = "sentence-transformers/all-MiniLM-L6-v2"
@@ -111,13 +110,6 @@ class AiConfig(BaseConfigModel):
        description="Level of graph query answer generation (simple|medium|advanced)",
    )

    @property
    def ai_cache_dir(self) -> Path:
        # Use CacheManager to resolve the embedding directory
        # e.g., ~/.tdoc-crawler/.ai/sentence-transformers/all-MiniLM-L6-v2
        # The ai_embed_dir method handles the provider/model subdirectory structure
        return resolve_cache_manager(self.cache_manager_name).ai_embed_dir(self.embedding_model)

    @classmethod
    def from_env(cls, **overrides: str | int | Path | None) -> AiConfig:
        """Create config from environment variables."""
+0 −5
Original line number Diff line number Diff line
@@ -161,11 +161,6 @@ class DatabaseConfig(BaseSettings):
        description="pg0 database name",
    )

    @property
    def pg_uri(self) -> str:
        """Return PostgreSQL connection URI for pg0."""
        return f"postgresql://postgres:postgres@localhost:{self.pg0_port}/{self.pg0_database}"

    model_config = SettingsConfigDict(env_prefix="LIGHTRAG_DB_")


+1 −24
Original line number Diff line number Diff line
@@ -4,9 +4,6 @@ This module manages pg0 lifecycle for PostgreSQL-backed LightRAG storage.
pg0 is a zero-config embedded PostgreSQL with pgvector extension.
"""

from collections.abc import Generator
from contextlib import contextmanager

from tdoc_crawler.logging import get_logger

try:
@@ -82,34 +79,14 @@ class Pg0Manager:
        if self._pg and self._started:
            self._pg.stop()
            logger.info("pg0 stopped")
            self._started = False

    def is_running(self) -> bool:
        """Check if pg0 is currently running."""
        return self._started
            self._started = False

    @property
    def uri(self) -> str:
        """Return PostgreSQL connection URI."""
        return f"postgresql://postgres:postgres@localhost:{self.port}/{self.database}"

    @contextmanager
    def running(self) -> Generator[str]:
        """Context manager for pg0 lifecycle.

        Yields:
            PostgreSQL connection URI.

        Example:
            >>> manager = Pg0Manager()
            >>> with manager.running() as uri:
            ...     # use PostgreSQL
        """
        try:
            yield self.start()
        finally:
            self.stop()


class Pg0Error(Exception):
    """Raised when pg0 fails to start or connect."""
Loading