Open-source foundation of the Compair collaboration platform.
Project description
Compair Core
Compair Core is the open-source foundation of the Compair platform. It bundles the shared data models, FastAPI application, email utilities, and local-only helpers so that you can run Compair in a self-hosted or evaluation environment without premium cloud integrations.
The premium cloud offering (available at https://www.compair.sh/) layers on premium services (premium models, OCR, storage, etc.). Core gracefully falls back to local behaviour when those packages are not present.
Repository Layout
| Path | Purpose |
|---|---|
compair/ |
Core runtime (ORM models, tasks, embeddings, feedback). |
server/ |
FastAPI app factory and dependency providers used by both editions. |
compair_email/ |
Console mailer + minimal templates for account verification and password reset. |
docs/ |
Additional documentation (see docs/editions.md for an overview of the two editions). |
Installing
pip install compair-core
This installs the package as a dependency so you can embed Compair into your own FastAPI instance or reuse the models in scripts. The core library exposes hooks for the private cloud extension that Compair itself uses for hosted deployments.
Installing from source
You can also install directly from GitHub (handy for pinning to a specific commit or branch):
pip install "git+https://github.com/RocketResearch-Inc/compair_core.git@main"
For local development:
git clone https://github.com/RocketResearch-Inc/compair_core.git
cd compair_core
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Containers
Container definitions and build pipelines live outside this public package:
- The core container lives alongside the private CI workflow in the
compair_cloudrepository (Dockerfile.core). It installs this package from PyPI and runs the FastAPI factory with SQLite defaults. - A cloud container (
Dockerfile.cloud) is built from a private cloud extension that enables premium features. For more information, please visit https://www.compair.sh/.
Configuration
Key environment variables for the core edition:
COMPAIR_EDITION(core) – corresponds to this core local implementation.COMPAIR_DATABASE_URL– optional explicit SQLAlchemy URL (e.g.postgresql+psycopg2://user:pass@host/db). When omitted, Compair falls back to a local SQLite file.COMPAIR_DB_DIR/COMPAIR_DB_NAME– directory and filename for the bundled SQLite database (default:~/.compair-core/data/compair.db). LegacyCOMPAIR_SQLITE_*variables remain supported.COMPAIR_LOCAL_MODEL_URL– endpoint for your local embeddings/feedback service (defaults tohttp://local-model:9000).COMPAIR_EMAIL_BACKEND– the core mailer logs emails to stdout; cloud overrides this with transactional delivery.COMPAIR_REQUIRE_AUTHENTICATION(true) – set tofalseto run the API in single-user mode without login or account management. When disabled, Compair auto-provisions a local user, group, and long-lived session token so you can upload documents immediately.COMPAIR_SINGLE_USER_USERNAME/COMPAIR_SINGLE_USER_NAME– override the email-style username and display name that are used for the auto-provisioned local user in single-user mode.COMPAIR_INCLUDE_LEGACY_ROUTES(false) – opt-in to the full legacy API surface (used by the hosted product) when running the core edition. Leave unset to expose only the streamlined single-user endpoints in Swagger.COMPAIR_EMBEDDING_DIM– force the embedding vector size stored in the database (defaults to 384 for core, 1536 for cloud). Keep this in sync with whichever embedding model you configure.COMPAIR_VECTOR_BACKEND(auto) – set topgvectorwhen running against PostgreSQL with the pgvector extension, orjsonto store embeddings as JSON (the default for SQLite deployments).COMPAIR_GENERATION_PROVIDER(local) – choose how feedback is produced. Options:local(call the bundled FastAPI service),openai(use ChatGPT-compatible APIs with an API key),http(POST the request to a custom endpoint), orfallback(skip generation and surface similar references only).COMPAIR_OPENAI_API_KEY/COMPAIR_OPENAI_MODEL– when using the OpenAI provider, supply your API key and optional model name (defaults togpt-4o-mini). The fallback kicks in automatically if the key or SDK is unavailable.COMPAIR_GENERATION_ENDPOINT– HTTP endpoint invoked whenCOMPAIR_GENERATION_PROVIDER=http; the service receives a JSON payload (document,references,length_instruction) and should return{"feedback": ...}.COMPAIR_OCR_ENDPOINT– endpoint the backend calls for OCR uploads (defaults to the bundled Tesseract wrapper athttp://local-ocr:9001/ocr-file). Provide your own service by overriding this URL.
See compair_core/server/settings.py for the full settings surface.
Developing Locally
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
uvicorn compair_core.server.app:create_app --factory --reload
The API will be available at http://127.0.0.1:8000 and supports the Swagger UI at /docs.
Tests / Linting
Core currently ships with a syntax sanity check (python -m compileall ...). You can add pytest or other tooling as needed.
Release and packaging steps are documented in docs/maintainers.md.
Reporting Issues
Please open GitHub issues or PRs against this repository. If you are a Compair Cloud customer, reach out through your support channel for issues related to premium features.
Project details
Release history Release notifications | RSS feed
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 compair_core-0.4.3.tar.gz.
File metadata
- Download URL: compair_core-0.4.3.tar.gz
- Upload date:
- Size: 62.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
063b198adf80d56f21508d7486132d16177a81acda58b9667ab983dab9bf4355
|
|
| MD5 |
1a51fe13b9f11ea4fd1ef89646681046
|
|
| BLAKE2b-256 |
5372b2a33d979329e8afffad7da66c9c8459afb7b5c4c68f02d706ca8b79826b
|
File details
Details for the file compair_core-0.4.3-py3-none-any.whl.
File metadata
- Download URL: compair_core-0.4.3-py3-none-any.whl
- Upload date:
- Size: 68.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67924db972cd51fc726c258b561cb8a5af3fff4f592c7150e8bd04dfc1d47f2f
|
|
| MD5 |
00798fe5626c0403196bef305e1b3581
|
|
| BLAKE2b-256 |
ea884de80774d09325160d7915b9f7f1d954938aa424e4afea6b69ae07e51e77
|