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.0.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.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: booksmart_core-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 88f92c583db3a790bbdbac79826a9f654968e3146f75857af5be7f3bdb61106e
MD5 638d4069b076351b9a5ae7e0e00893e0
BLAKE2b-256 6d5bf0403d48b90f30731a4602f3480c8bc6f81f7acc413cf7288b9d6d803839

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart_core-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: booksmart_core-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51a247b4d1709a5c05ca83d513bf54f8bcee59e868e163db04416762e487a1bc
MD5 676aa41ab7bfc3108fe094612ce8fe73
BLAKE2b-256 5777c6933e7ae60c4776731c457526a2386c862e4c223722417be8d67b34e3cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for booksmart_core-0.1.0-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