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+
  • mise for task management
  • Git
Terminal window
git clone https://github.com/superlinked/sie.git
cd sie
# Install mise (if not already installed)
curl https://mise.run | sh
# Install dependencies
mise install
sie/
├── packages/
│ ├── sie_sdk/ # Python SDK
│ ├── sie_server/ # GPU inference server
│ ├── sie_router/ # Load-balancing router
│ └── sie_ts_sdk/ # TypeScript SDK
├── integrations/
│ ├── sie_langchain/ # LangChain adapter
│ ├── sie_llamaindex/ # LlamaIndex adapter
│ ├── sie_haystack/ # Haystack adapter
│ ├── sie_crewai/ # CrewAI adapter
│ ├── sie_dspy/ # DSPy adapter
│ └── sie_chroma/ # Chroma adapter
├── deploy/
│ ├── helm/ # Kubernetes Helm charts
│ └── terraform/ # GCP/AWS Terraform modules
└── notebooks/ # Jupyter notebooks

Terminal window
# Run tests for a specific package
mise run test packages/sie_sdk
mise run test packages/sie_server
# Run integration tests (requires a running SIE server)
mise run test integrations/sie_langchain
TypeRequires ServerWhen to Run
Unit testsNoEvery PR
Integration testsYesWhen changing SDK/server interface
Docker testsDockerWhen changing Dockerfiles
GPU testsGPU workerWhen changing inference pipeline

Terminal window
# Format code
mise run lint -f
# Type checking
mise run typecheck

SIE uses standard Python formatting and type annotations throughout.


See Adding Models for the full guide. In summary:

  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 quality targets with sie-bench
  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 mise run lint -f && mise run typecheck
  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.