如何将 spaCy 公开为 REST API?

问题描述 投票:0回答:1

我有兴趣在我自己的开源项目中使用 spaCy python 库。我正在寻找的是基于 REST 的 API。通过通用 REST 接口公开 spaCy API 需要什么或推荐的方法是什么?我已经研究过 spaCy 服务spacy-api-docker 项目形成 jgontrum。但好像没有官方的REST API可用,大家只能自己做。如果是这样,将 python spaCy 方法/脚本包装到 REST API 中的最佳方法是什么?似乎有像 falconhugflask 这样的框架可以帮助我做到这一点。

但是,使用这些框架之一编写我自己的 REST API 服务器是推荐的方法吗?还是有一些我已经监督过并且 spaCy 已经可以通过 REST API 接口使用的方法?

python rest spacy
1个回答
10
投票

spaCy 与任何框架都没有紧密的联系,所以你可以选择你最喜欢的并使用它。


您可能考虑的另一个选择是FastAPI。例如,这是一个简单的 spaCy 实体识别 API:

from fastapi import FastAPI
from pydantic import BaseModel
import spacy

nlp_en = spacy.load("en_core_web_sm")
app = FastAPI()


class Data(BaseModel):
    text: str


@app.post("/text/")
def extract_entities(data: Data, lang: str):
    doc_en = nlp_en(data.text)
    ents = []
    for ent in doc_en.ents:
        ents.append({"text": ent.text, "label_": ent.label_})
    return {"message": data.text, "lang": lang, "ents": ents}

自动文档 UI 如下所示:

免责声明:我创建了 FastAPI,这就是我们目前在 Explosion(spaCy 的创建者)使用的。

© www.soinside.com 2019 - 2024. All rights reserved.