开源项目

sie

开源自托管推理引擎,用一个集群统一服务 agent 所需的各类模型,覆盖搜索、文档转 markdown、结构化输出、内容安全与 agent 循环等任务,并提供 OpenAI 兼容 API。亮点是替代多个零散模型服务器的组合,100+ 模型按需加载、支持 K8s 部署与自动伸缩,且已集成 LangChain、LlamaIndex 等主流生态,方便开发者快速接入生产环境。

README

Superlinked 标志

SIE:Superlinked 推理引擎

面向 agent 的自托管推理。你的 agent 调用的每个开放模型,都由你云中的一个集群统一服务。

文档 | 快速开始 | API 参考 | 模型

许可证 PyPI GitHub 星标

⭐ 帮助我们触达更多开发者,壮大 SIE 社区。给这个仓库点个 Star 吧!

关于

SIE 是一个开源推理引擎,通过一个 API 运行支撑每个 agent 任务背后的模型:搜索与检索、文档转 Markdown、结构化输出、内容安全,以及 agent 循环本身。它取代了为每个任务单独部署模型服务器的拼凑式方案,用一个系统提供 100+ 个模型,并按需加载每个模型。

  • 兼容 OpenAI 的 API,可无缝迁移:/v1/embeddings、/v1/chat/completions、/v1/completions、/v1/responses
  • 预配置模型目录:Stella、SPLADE、Qwen3、GLiNER、SigLIP 等;embedding 和检索模型已基于 MTEB 进行基准测试
  • 同时服务多个模型,支持按需加载和 LRU 逐出
  • 为负载均衡网关、KEDA 自动扩缩和 Grafana 仪表盘提供 Kubernetes 与 Helm 部署配置
  • 与 LangChain、LlamaIndex、Haystack、DSPy、CrewAI、Chroma、Qdrant、Weaviate 和 LanceDB 集成

开发

安装 mise,然后在仓库根目录引导带版本管理的 Python、Rust、Node.js 和 Helm 工具链:

./tools/init.sh

常用开发检查和本地服务器可通过 mise 任务运行:

mise run test
mise run lint
mise run typecheck
mise run serve
mise run rust-check
mise run rust-test
mise run gateway-test
mise run server-sidecar-test

Python 工作区使用已提交的根锁定文件。包成员关系在 pyproject.toml 中显式声明;只有在同一次变更中加入了完整源码的包才会进入工作区。原生音频始终是可选构建:安装 cmake,然后运行 mise exec -- uv sync --frozen --project . --all-packages --all-extras。

任务

一个 SIE 集群运行着整个 agent 背后的推理。每个任务由少数几个可替换模型组成;完整集合请浏览 packages/sie_server/models/。

任务 作用 模型
搜索 对上下文进行 embedding、匹配和重排序,以检索到正确上下文。 bge-m3、splade-v3、colbertv2、qwen3-reranker
文档转 Markdown 将 PDF、Office 文件和扫描件转换为干净的 Markdown。 lightonocr、glm-ocr、mineru、paddleocr-vl、docling
结构化输出 符合 schema 的 JSON,可抽取或生成。 gliner2、nuner-zero、qwen3.6-27b
内容防护 输出带概率的安全判定,由你设定阈值。 granite-guardian-2b
运行 agent 循环 使用开放 LLM 规划步骤并调用工具,支持流式输出。 qwen3.6-27b

快速开始

1. 启动服务器

# macOS (Apple Silicon) or Linux, native (requires Python 3.12)
pip install "sie-server[local]" && sie-server serve

# Linux, NVIDIA GPU
docker run --gpus all -p 8080:8080 \
  -v sie-hf-cache:/app/.cache/huggingface \
  ghcr.io/superlinked/sie-server:latest-cuda12-default

# Linux, NVIDIA GPU — Transformers 5 OCR models (LightOnOCR and GLM-OCR)
docker run --gpus all -p 8080:8080 \
  -v sie-hf-cache:/app/.cache/huggingface \
  ghcr.io/superlinked/sie-server:latest-cuda12-transformers5

# Linux, CPU
docker run -p 8080:8080 \
  -v sie-hf-cache:/app/.cache/huggingface \
  ghcr.io/superlinked/sie-server:latest-cpu-default

Docker 镜像按 bundle 区分,因此依赖不兼容的模型族可以保持隔离。LightOnOCR 或 GLM-OCR 请使用 transformers5 镜像;default 镜像特意不提供这些模型。

# in a second terminal
curl http://localhost:8080/readyz   # expect: ok

服务器开箱即用,原生提供 OpenAI API,embedding 和生成都可以通过它调用(集群网关提供 /v1/chat/completions、/v1/completions 和 /v1/responses)。首次调用只需 curl 即可:

curl http://localhost:8080/v1/embeddings \
  -H 'Content-Type: application/json' \
  -d '{"model": "sentence-transformers/all-MiniLM-L6-v2", "input": "Hello world"}'
# {"object": "list", "data": [{"object": "embedding", "embedding": [-0.0344, 0.0310, ...

每个模型的首次调用会下载其权重(进度显示在服务器终端中)。后续调用会跳过下载;推理延迟取决于模型、任务、硬件和 batch size。

2. 安装 SDK

pip install sie-sdk                # Python
npm install @superlinked/sie-sdk   # TypeScript (pnpm and yarn work too)

3. 生成 embeddings、重排序并抽取实体

from sie_sdk import SIEClient
from sie_sdk.types import Item

client = SIEClient("http://localhost:8080")

# Generate embeddings
result = client.encode("sentence-transformers/all-MiniLM-L6-v2", Item(text="Hello world"))
print(result["dense"].shape)  # (384,)

# Rerank search results
scores = client.score(
    "cross-encoder/ms-marco-MiniLM-L-6-v2",
    Item(text="What is machine learning?"),
    [Item(text="ML learns from data."), Item(text="The weather is sunny.")],
)
print(scores["scores"][0])  # {'item_id': 'item-0', 'score': -7.1, 'rank': 0}

# Extract entities
result = client.extract(
    "urchade/gliner_multi-v2.1",
    Item(text="Tim Cook is the CEO of Apple."),
    labels=["person", "organization"],
)
print(result["entities"][0])
# {'text': 'Tim Cook', 'label': 'person', 'score': 0.992, 'start': 0, 'end': 8, ...}

文本生成运行在 GPU 生成镜像上;先停止之前的服务器,然后在同一端口启动此镜像:

# Linux, NVIDIA GPU (for generation on Apple Silicon via MLX, see the docs below)
docker run --gpus all -p 8080:8080 \
  -v sie-hf-cache:/app/.cache/huggingface \
  ghcr.io/superlinked/sie-server:latest-cuda12-sglang
result = client.generate(
    "Qwen/Qwen3-0.6B",
    "Reply with a single word: the capital of France.",
    max_new_tokens=16,
    temperature=0.0,
)
print(result["text"])  # Paris

有关在 Apple Silicon (MLX) 上生成、TypeScript 详解以及介于这两者之间的各种配置,请参阅 快速开始指南、TypeScript SDK 文档 和 SDK 参考。


生产环境

同样的代码可以对接生产集群。SIE 自带负载均衡网关和 Kubernetes 部署层,包括 Helm charts、KEDA 自动扩缩(可缩容到零)和 Grafana 仪表盘。公开的 Terraform 模块分别维护,用于 阿里云 ACK、EKS、AKS 和 GKE。不只是服务器,而是整个技术栈。全部基于 Apache 2.0。

# pick one values overlay: values-ack.yaml / values-aws.yaml / values-aks.yaml / values-gke.yaml
# (pin a chart version for reproducible installs, e.g. --version 0.6.18)
helm upgrade --install sie-cluster oci://ghcr.io/superlinked/charts/sie-cluster \
  --namespace sie --create-namespace \
  --set hfToken.create=true \
  --set hfToken.value=YOUR_HF_TOKEN \
  -f https://raw.githubusercontent.com/superlinked/sie/main/deploy/helm/sie-cluster/values-gke.yaml

参见 部署指南。

遥测:SIE 会收集匿名使用数据(版本、操作系统、架构、GPU 类型),以了解采纳情况。不会

开源项目superlinked2026-09-02原文

相关内容