Jina-Serve:AI 服务框架,从本地开发到生产部署一条龙
Jina-Serve:AI 服务框架,从本地开发到生产部署一条龙
Jina-Serve 在 GitHub 上已经拿到 21,864 Star 了。
Jina AI 开源了这套框架,专门用来构建和部署 AI 推理服务。支持 gRPC、HTTP 和 WebSocket 三种协议,内置流式输出、动态批处理、Docker 集成,还能一行命令推到 JCloud。
1、这玩意儿是干嘛的
一句话:把 AI 模型包装成高性能微服务,从本地开发到 Kubernetes 集群部署全包了。
你用 PyTorch、Transformers 或者其他框架写了个模型,想让别人通过 API 调用,还想支持高并发、流式输出、自动扩缩。这些基础设施的活,Jina-Serve 都帮你干了。你只需要写核心推理逻辑,剩下的网络层、序列化、部署编排都交给它。

2、为什么要用它
做过模型服务化的人都踩过坑。FastAPI 搭个接口简单,但一碰到 gRPC 调用、流式 token 输出、多副本负载均衡、动态 batch 合并这些需求,就得自己拼积木。FastAPI 加 gRPC 插件加 Celery 加 Docker Compose,搭出来的东西能用,但维护起来累人。
Jina-Serve 把这些全收敛到一套 API 里。定义一个 Executor,写清楚用哪个 Deployment 部署,配好 replicas 和 dynamic batching,就搞定了。gRPC、HTTP、WebSocket 三种协议自动支持,不用额外写适配层。

3、快速上手
安装:
pip install jina
定义一个 AI 服务,比如用 StableLM 做文本生成:
from jina import Executor, requests
from docarray import DocList, BaseDoc
from transformers import pipeline
class Prompt(BaseDoc):
text: str
class Generation(BaseDoc):
prompt: str
text: str
class StableLM(Executor):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.generator = pipeline(
'text-generation', model='stabilityai/stablelm-base-alpha-3b'
)
@requests
def generate(self, docs: DocList[Prompt], **kwargs) -> DocList[Generation]:
generations = DocList[Generation]()
prompts = docs.text
llm_outputs = self.generator(prompts)
for prompt, output in zip(prompts, llm_outputs):
generations.append(Generation(prompt=prompt, text=output))
return generations
部署只需要几行:
from jina import Deployment
from executor import StableLM
dep = Deployment(uses=StableLM, timeout_ready=-1, port=12345)
with dep:
dep.block()
也可以换成 YAML 配置部署,跟写 Docker Compose 差不多。客户端调用同样简单,指定端口和输入 schema 就行。
4、流水线和扩展
多个服务可以串成 Flow,文本生成接图片生成,流水线式处理:
from jina import Flow
flow = Flow(port=12345).add(uses=StableLM).add(uses=TextToImage)
with flow:
flow.block()
扩展同样不费劲。YAML 里配 replicas: 2 就开启了多副本并行,加上 uses_dynamic_batching 设置 batch size 和超时时间,自动合并请求提升 GPU 利用率。数据分片通过 shards 配置,适合大批量数据处理场景。
5、部署到生产
本地跑通了,上生产也就几步。
先容器化 Executor,目录里放 executor.py、config.yml、requirements.txt,然后:
jina hub push TextToImage
推到 Executor Hub 之后,可以用 jina export kubernetes 导出 K8s 配置直接 apply,也可以用 jina export docker-compose 导出 Compose 文件。想最省事的话,jina cloud deploy 一行命令推到 JCloud。
6、LLM 流式输出
做对话类应用,流式输出是刚需。用户不想等 10 秒看一个完整回复,想看到 token 一个一个往外蹦。
Jina-Serve 内置了异步流式支持。Executor 里用 async def 加 yield,每次 yield 一个 token,客户端用 client.stream_doc() 逐条接收。gRPC 协议下延迟很低,适合需要实时交互的场景。
7、适合哪些人用
- 训练完模型需要快速封装 API 上线的算法工程师
- 在搭 RAG 管线或者多模型流水线的后端开发者
- 需要把 AI 服务部署到 Kubernetes 的 infra 团队
- 想用 gRPC 做高性能推理服务的团队
Jina-Serve 是 Apache 2.0 协议开源的,可以商用。

浙公网安备 33010602011771号