[project] name = "semif-serve" version = "0.1.4" description = "HTTP wrapper around SemIf's direct and shared option-logit scorers" requires-python = ">=3.12" dependencies = [ "fastapi==0.118.0", "uvicorn==0.37.0", ] [project.optional-dependencies] # The real engine. Pulls torch 2.10.0 (cu128) and transformers 5.17.0 through SemIf's exact pins. model = [ "semif-phase1 @ git+https://github.com/TheoLeeCJ/SemIf-OpenJev@23cf1f39fc9534fe81437200959b6dfc7106e45a", # Same pin SemIf declares, taken from the cu128 index: SemIf's committed predictions report # torch 2.10.0+cu128, and cu128 carries sm_120 kernels for the Blackwell cards. "torch==2.10.0", ] # Qwen3.5's fast kernels. Without them transformers runs its reference PyTorch paths # ("correct but much slower"). Trialled 2026-09-27; adopted only if parity with upstream holds. fast = [ "flash-linear-attention==0.5.2", "causal-conv1d @ https://github.com/Dao-AILab/causal-conv1d/releases/download/v1.7.0/causal_conv1d-1.7.0+cu12torch2.10cxx11abiTRUE-cp312-cp312-linux_x86_64.whl ; sys_platform == 'linux' and platform_machine == 'x86_64'", ] [dependency-groups] dev = ["pytest==8.4.2", "httpx==0.28.1"] [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"] [tool.pytest.ini_options] testpaths = ["tests"] [[tool.uv.index]] name = "pytorch-cu128" url = "https://download.pytorch.org/whl/cu128" explicit = true [tool.uv.sources] torch = { index = "pytorch-cu128" }