Skip to main content

omop-emb

Vector embedding layer for OMOP CDM concepts.

omop-emb generates, stores, and retrieves embeddings for OMOP concepts. It works out of the box with sqlite-vec (no external database required) and scales to PostgreSQL/pgvector for larger deployments. The database is the source of truth; FAISS is an optional read-acceleration sidecar, not a primary store.

Installation

pip install omop-emb                         # sqlite-vec backend (default, no extras needed)
pip install "omop-emb[pgvector]"             # adds PostgreSQL/pgvector support
pip install "omop-emb[faiss-cpu]"            # adds FAISS sidecar support
pip install "omop-emb[pgvector,faiss-cpu]"   # everything

Configuration

omop-emb is configured entirely through oa-configurator (~/.config/omop/config.toml); there are no OMOP_EMB_* environment variables. Set up a CDM database, an embedding model, and a vector store once:

omop-config init
omop-config connections add cdm --dialect postgresql+psycopg --host localhost --database-name omop_cdm
omop-config databases add cdm_db --kind cdm --connection cdm

omop-config providers add local-ollama --provider ollama --base-url http://localhost:11434
omop-config models add embedding-model --provider local-ollama --model nomic-embed-text:v1.5

omop-config databases add emb_db --kind generic --connection cdm
omop-config vector-stores add vector_store --backend-type pgvector --database emb_db

omop-config configure omop_emb   # points OmopEmbConfig at the entries above, prompts for anything unset

omop-config configure omop_emb writes [tools.omop_emb] with cdm_db, embedding_model_name, and vector_store_name (each defaulting to the entry names above, if you use the same names).

Quick start

omop-emb embeddings add-embeddings --model-name embedding-model
omop-emb embeddings search --model-name embedding-model \
    --query "hypertension" --query "type 2 diabetes" \
    --standard-only --domain Condition --k 5

--model-name defaults to the configured embedding_model_name, so it can be omitted once configured. See the CLI reference for the full command list.

pgvector with HNSW index:

omop-emb embeddings add-embeddings
omop-emb maintenance rebuild-index --model-name embedding-model --index-type hnsw --metric-type cosine

Documentation

Full documentation: https://AustralianCancerDataNetwork.github.io/omop-emb

Roadmap

  • sqlite-vec backend (default, zero-config)
  • pgvector backend (PostgreSQL)
  • HNSW index support for pgvector
  • FAISS sidecar (approximate nearest-neighbour read acceleration)
  • Embedding bundle export / import CLI (maintenance export, maintenance import, maintenance build-faiss-cache)
  • In-DB concept filtering (domain, vocabulary, standard status, active status)
  • Transparent FAISS fast path in EmbeddingReaderInterface
  • Extensive backend and registry testing
  • FAISS GPU support
  • pgvectorscale support
  • Vector quantisation for more efficient storage

Download files

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

Source Distribution

omop_emb-2.1.0.tar.gz (235.5 kB view details)

Uploaded Source

Built Distribution

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

omop_emb-2.1.0-py3-none-any.whl (95.2 kB view details)

Uploaded Python 3

File details

Details for the file omop_emb-2.1.0.tar.gz.

File metadata

  • Download URL: omop_emb-2.1.0.tar.gz
  • Upload date:
  • Size: 235.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for omop_emb-2.1.0.tar.gz
Algorithm Hash digest
SHA256 5aaca2bd52859b7db141bc911873a4dead8fe3356b34db8b2eda4f08814ae511
MD5 e2fcd055649fc6616e60fd3c28ea37c0
BLAKE2b-256 3c441b3022eb8b896def2d0978da4958fa270711ddeee736cd1266ef8dc980fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for omop_emb-2.1.0.tar.gz:

Publisher: publish.yml on AustralianCancerDataNetwork/omop-emb

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

File details

Details for the file omop_emb-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: omop_emb-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 95.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for omop_emb-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f9f91f628fd96fc79ecbc33b0e7e0478daecee444368d4eb84603fd8c82e5b8
MD5 a9b6ea414be9e618b1b38b28ea9268b2
BLAKE2b-256 ad9af38c4be9ab59d84c5d0a3acfa64de91049d50e8b0a911c4d107b280e2a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for omop_emb-2.1.0-py3-none-any.whl:

Publisher: publish.yml on AustralianCancerDataNetwork/omop-emb

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

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 files

2.0.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page