Skip to main content

Booksmart's book-ingestion pipeline: parsing, structure, extraction, summaries, embeddings — as durable Stage functions consumers drive with their own Runner.

Project description

booksmart-core

Booksmart's book-ingestion pipeline as a typed library: parsing, structure detection, profile generation, knowledge extraction, summaries, and embeddings — exposed as durable, synchronous Stage functions that a consumer drives with its own Runner (see ADR 0002).

Core owns the domain: the ORM models, a single dialect-neutral Alembic history (SQLite and Postgres), object storage, the provider abstractions (Anthropic / OpenAI / Gemini, plus deterministic fakes), and the Qdrant vector store. It reads no environment on import — a consumer constructs Settings and owns engine and session lifecycle.

Consumers:

  • booksmart — the local CLI (SQLite, embedded Qdrant).
  • booksmart-api — an Inngest-backed service (Postgres) that wraps each Stage in a durable step.
from booksmart_core.database import create_engine, upgrade_to_head
from booksmart_core.runner import execute_run

upgrade_to_head(url)
run_id = execute_run(session_factory, storage_root, book_id, "full")

Search

booksmart_core.search.search is the read side of the embedding pipeline, and the single seam every consumer's search surface sits on — the CLI's search command and booksmart-api's HTTP endpoint call it with the same arguments, against embedded and served Qdrant respectively.

from booksmart_core.search import search

hits = search(session, vector_store, embedder, "how do deep modules help?", limit=5)

It embeds the query with the collection's locked model (refusing a mismatch, ADR 0001), ANN-searches Qdrant, and resolves each hit back to its detached ORM row.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

booksmart_core-0.1.1.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

booksmart_core-0.1.1-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file booksmart_core-0.1.1.tar.gz.

File metadata

  • Download URL: booksmart_core-0.1.1.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for booksmart_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 420feeca22987dec689995c488c3f318a7f7e55497754d4cd7b5b18026ecf1ad
MD5 1caed1ca3b4ba2bf3796da8a464b3de4
BLAKE2b-256 b8a4ff723a9105a4e6e8439768236b3d28cf3432f0653bb17fcde173a7b190c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart_core-0.1.1.tar.gz:

Publisher: publish.yml on dworznik/booksmart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file booksmart_core-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: booksmart_core-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for booksmart_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 164d164d3319e6c96b8ef10b4e584dda7357b7e1ef6d13a447e7a27c9c0a3590
MD5 124fd2ad680281d9298b1ceacb749d19
BLAKE2b-256 ff2e2a0b52ad167a3ab8419f1857e12ab7b766be409d02e83c901f4ad3388acf

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart_core-0.1.1-py3-none-any.whl:

Publisher: publish.yml on dworznik/booksmart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page