lllin000_PaperForge/paperforge/embedding/__init__.py
LLLin000 0dfbf2a68d feat: PR 8 — Object Vector Retrieval (paperforge_objects collection)
New paperforge_objects collection in ChromaDB for figure/table caption
vector search, completing the memory layer retrieval triad:

  paperforge_fulltext → legacy_chunk
  paperforge_body     → body_unit
  paperforge_objects  → object_unit (NEW)

Changes:
- manifest.py: compute_object_units_hash(), manifest records both hashes
- _chroma.py: _COLLECTION_NAMES includes paperforge_objects
- builder.py: get_object_units_for_embedding() + embed_object_units()
- status.py: object_chunk_count, total_chunks
- state_snapshot.py: write_vector_runtime() extended with new fields
- search.py: 3rd collection, dict-based source mapping, object_kind/label
- __init__.py: exports for new functions
- commands/embed.py: _has_object_units_in_db, body+object structured
  path routing with dual-hash resume, extended counters
- Test fix: test_build_paper_manifest data complete for hash functions

Verification: 20 object vectors embedded, all per-paper counts match,
status total consistent (58266 = 57435 + 811 + 20),
object caption queries return object_unit results via merge_retrieve.
Unit tests: 153 pass, 1 skip.
2026-07-06 19:58:46 +08:00

44 lines
1.3 KiB
Python

from __future__ import annotations
from paperforge.embedding._chroma import (
delete_paper_vectors,
get_collection,
get_vector_db_path,
)
from paperforge.embedding.backends import (
ChromaBackend,
VectorBackend,
get_vector_backend,
)
from paperforge.embedding.build_state import (
get_vector_build_state_path,
mark_vector_build_state,
read_vector_build_state,
write_vector_build_state,
)
from paperforge.embedding.builder import embed_body_units, embed_paper, get_body_units_for_embedding, get_object_units_for_embedding, embed_object_units
from paperforge.embedding.preflight import _preflight_check
from paperforge.embedding.search import merge_retrieve, retrieve_chunks
from paperforge.embedding.status import get_embed_status
__all__ = [
"ChromaBackend",
"VectorBackend",
"delete_paper_vectors",
"embed_body_units",
"embed_paper",
"get_body_units_for_embedding",
"embed_object_units",
"get_collection",
"get_embed_status",
"get_object_units_for_embedding",
"get_vector_backend",
"get_vector_build_state_path",
"get_vector_db_path",
"mark_vector_build_state",
"merge_retrieve",
"read_vector_build_state",
"retrieve_chunks",
"write_vector_build_state",
"_preflight_check",
]