Concrete embedding, vector-store, and reranker backends for AI-Parrot
Project description
ai-parrot-embeddings
Concrete backend implementations for the AI-Parrot retrieval stack: embedding models, vector stores, and rerankers.
What's in this package
This satellite contributes modules to three subsystems of the
parrot.* namespace:
parrot.embeddings.{google, huggingface, openai}— embedding backendsparrot.stores.{postgres, pgvector, milvus, arango, bigquery, faiss_store}— vector storesparrot.rerankers.{local, llm}— rerankers
The abstract base classes (EmbeddingModel, AbstractStore, AbstractReranker),
the registries (EmbeddingRegistry), the dispatch maps (supported_embeddings,
supported_stores), and all shared types (parrot.stores.models.Document,
SearchResult, etc.) remain in the ai-parrot core package.
Import contract
This package uses PEP 420 implicit namespace packages. Its modules ship
directly under the existing parrot.* namespace — no separate top-level.
Existing imports continue to work unchanged once installed:
from parrot.embeddings.huggingface import SentenceTransformerModel # from satellite
from parrot.stores.pgvector import PgVectorStore # from satellite
from parrot.embeddings import EmbeddingRegistry # from core
from parrot.stores import AbstractStore, supported_stores # from core
No code changes are needed in user projects after upgrading from
ai-parrot[embeddings] to ai-parrot-embeddings[...].
Install
| Goal | Command |
|---|---|
| Core framework only (no backends) | pip install ai-parrot |
| One backend | pip install ai-parrot-embeddings[pgvector] |
| Multiple backends | pip install ai-parrot-embeddings[pgvector,milvus,huggingface] |
| Embeddings + vector stores | pip install ai-parrot-embeddings[huggingface,pgvector] |
| Rerankers | pip install ai-parrot-embeddings[reranker-local] |
| Everything | pip install ai-parrot-embeddings[all] |
| Legacy all-in-one (unchanged) | pip install ai-parrot[all] |
Extras
| Extra | Pulls in | Enables |
|---|---|---|
huggingface |
sentence-transformers, tokenizers, safetensors, einops, accelerate, peft, xformers, simsimd, bm25s, rank_bm25, sentencepiece |
parrot.embeddings.huggingface.SentenceTransformerModel |
google |
google-genai, google-cloud-aiplatform |
parrot.embeddings.google.GoogleEmbeddingModel |
openai |
openai, tiktoken |
parrot.embeddings.openai.OpenAIEmbeddingModel |
pgvector |
pgvector==0.4.1 |
parrot.stores.postgres.PgVectorStore, parrot.stores.pgvector.PgVectorStore |
milvus |
pymilvus, milvus-lite |
parrot.stores.milvus.MilvusStore |
arango |
python-arango-async |
parrot.stores.arango.ArangoDBStore |
bigquery |
google-cloud-bigquery |
parrot.stores.bigquery.BigQueryStore |
faiss |
(no extra deps; faiss-cpu ships with ai-parrot core) |
parrot.stores.faiss_store.FAISSStore |
chroma |
chromadb |
(reserved for future ChromaStore) |
reranker-local |
sentence-transformers, tokenizers, safetensors |
parrot.rerankers.local.LocalCrossEncoderReranker |
reranker-llm |
(no extra deps; uses existing LLM clients) | parrot.rerankers.llm.LLMReranker |
all |
All of the above | Full retrieval stack |
Development
git clone https://github.com/phenobarbital/ai-parrot
cd ai-parrot
source .venv/bin/activate
uv pip install -e packages/ai-parrot -e packages/ai-parrot-embeddings
uv run pytest packages/ai-parrot-embeddings/tests/
Or for the full workspace (if no pre-existing dependency conflicts):
uv sync --all-packages
Architecture
This package uses PEP 420 implicit namespace packages (not the
parrot_<name>.* + sys.meta_path redirector pattern used by
ai-parrot-tools, -loaders, -pipelines). The satellite ships no
__init__.py files at parrot/, parrot/embeddings/, parrot/stores/,
or parrot/rerankers/. Python's import machinery merges the satellite's
directory entries with the host's regular packages at import time, because
the host's sub-package __init__.py files call pkgutil.extend_path.
Design rationale
- Spec:
sdd/specs/ai-parrot-embeddings.spec.md - Proposal:
sdd/proposals/ai-parrot-embeddings.proposal.md - Feature: FEAT-201
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_parrot_embeddings-0.1.6.tar.gz.
File metadata
- Download URL: ai_parrot_embeddings-0.1.6.tar.gz
- Upload date:
- Size: 77.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59fcc74a09d2ed897083d7438dc79f4979299b4fd59b7fe671bcb20f2be8be79
|
|
| MD5 |
2148f8d8ca5ec3e56da80f8b56852e4a
|
|
| BLAKE2b-256 |
f700f3a65635cfa04c7cf7abdbf8f03e0751c8c8969cd9739d7ba694221811ce
|
Provenance
The following attestation bundles were made for ai_parrot_embeddings-0.1.6.tar.gz:
Publisher:
release.yml on phenobarbital/ai-parrot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_parrot_embeddings-0.1.6.tar.gz -
Subject digest:
59fcc74a09d2ed897083d7438dc79f4979299b4fd59b7fe671bcb20f2be8be79 - Sigstore transparency entry: 1710762570
- Sigstore integration time:
-
Permalink:
phenobarbital/ai-parrot@39e1f81265f6e7ff103e0e14ecee64502219c598 -
Branch / Tag:
refs/tags/0.25.5 - Owner: https://github.com/phenobarbital
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@39e1f81265f6e7ff103e0e14ecee64502219c598 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ai_parrot_embeddings-0.1.6-py3-none-any.whl.
File metadata
- Download URL: ai_parrot_embeddings-0.1.6-py3-none-any.whl
- Upload date:
- Size: 77.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
115d9ce410e0f47ad937135b05d6be3a0eb8b36abf28f25346c6fdebdc31014d
|
|
| MD5 |
fc44c2ea6b396fcdf2abffedeb2a79e6
|
|
| BLAKE2b-256 |
ad159bb0b2c1b8f0653a260e55e8355c10c4678f3d6557b1ccf77252cd06109c
|
Provenance
The following attestation bundles were made for ai_parrot_embeddings-0.1.6-py3-none-any.whl:
Publisher:
release.yml on phenobarbital/ai-parrot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_parrot_embeddings-0.1.6-py3-none-any.whl -
Subject digest:
115d9ce410e0f47ad937135b05d6be3a0eb8b36abf28f25346c6fdebdc31014d - Sigstore transparency entry: 1710762743
- Sigstore integration time:
-
Permalink:
phenobarbital/ai-parrot@39e1f81265f6e7ff103e0e14ecee64502219c598 -
Branch / Tag:
refs/tags/0.25.5 - Owner: https://github.com/phenobarbital
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@39e1f81265f6e7ff103e0e14ecee64502219c598 -
Trigger Event:
release
-
Statement type: