Skip to content
Why did we open-source our inference engine? Read the post

Contributing

SIE is open-source under the Apache 2.0 license. Contributions are welcome.

  • Python 3.12
  • uv
  • Git

The repository root is a virtual Python workspace. From the repository root, install and verify every workspace member with the committed lock:

git clone https://github.com/superlinked/sie.git
cd sie
uv python install 3.12
uv lock --check
uv sync --frozen --all-packages
sie/
├── packages/
│ ├── sie_sdk/ # Python SDK
│ ├── sie_server/ # GPU inference server
│ ├── sie_gateway/ # Rust inference gateway
│ ├── sie_config/ # Config control plane
│ ├── sie_server_sidecar/ # Rust worker sidecar
│ ├── sie_telemetry/ # Telemetry facade
│ ├── sie_audio_prep/ # Audio preprocessing
│ ├── sie_mcp/ # MCP server
│ └── sie_ts_sdk/ # TypeScript SDK
├── integrations/ # Framework and vector-store adapters
│ ├── sie_langchain/ # LangChain adapter
│ ├── sie_llamaindex/ # LlamaIndex adapter
│ ├── sie_chroma/ # Chroma adapter
│ └── ... # See integrations/ for the full set
├── deploy/
│ ├── helm/ # Kubernetes Helm charts
│ └── k8s/ # Raw Kubernetes manifests
└── examples/ # Example apps and notebooks

Tests run via pytest against the committed lock:

uv run --frozen --project . --no-sync pytest -c pyproject.toml
TypeRequires ServerWhen to Run
Unit testsNoEvery PR
Integration testsYesWhen changing SDK/server interface
Docker testsDockerWhen changing Dockerfiles
GPU testsGPU workerWhen changing inference pipeline

Formatting and linting use ruff, and type checking uses ty; both are configured in the root pyproject.toml. SIE uses standard Python formatting and type annotations throughout.


See Adding Models for the full guide. The short version:

  1. Create a YAML config in packages/sie_server/models/
  2. Map to an existing adapter (or write a new one in packages/sie_server/src/sie_server/adapters/)
  3. Add the model’s task declarations to its config YAML
  4. Submit a PR

  1. Create the package directory under integrations/:

    integrations/sie_myframework/
    ├── src/sie_myframework/
    │ ├── __init__.py
    │ └── embeddings.py
    ├── tests/
    │ ├── test_embeddings.py
    │ └── test_integration.py
    └── pyproject.toml
  2. Implement the framework primitives:

    • encode() → framework’s embedding interface
    • score() → framework’s reranker/compressor interface
    • extract() → framework’s tool/extractor interface
  3. Use shared test fixtures from integrations/conftest.py:

    • mock_sie_client - mocked SIEClient for unit tests
    • sie_server_url - real server URL for integration tests
  4. Add tests and submit a PR


  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-change
  3. Make your changes with tests
  4. Run uv run --frozen --project . --no-sync pytest -c pyproject.toml
  5. Submit a pull request

SIE is licensed under Apache 2.0. By contributing, you agree that your contributions will be licensed under the same terms.

Contact us

Tell us about your use case and we'll get back to you shortly.