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.

Contact us

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