Как выставить spaCy как API отдыха? - PullRequest
1 голос
/ 01 апреля 2020

Я заинтересован в использовании библиотеки spaCy python для моего собственного проекта с открытым исходным кодом. То, что я ищу, это API на основе отдыха. Что необходимо или каков рекомендуемый способ выставить API spaCy через общий интерфейс Rest? Я уже посмотрел на spacy services и spacy-api- docker форму проекта jgontrum . Но, похоже, нет официального API для отдыха, и каждый должен сделать это сам. Если да, то как лучше всего обернуть python spaCy метод / скрипт в API отдыха? Кажется, существуют рамки, такие как сокол , обниматься и flask, чтобы помочь мне в этом.

Но является ли рекомендуемый подход для написания моего собственного api-сервера rest с одной из этих платформ или есть что-то, что я наблюдал, и spaCy уже доступен через интерфейс api rest?

1 Ответ

3 голосов
/ 01 апреля 2020

spaCy не сильно привязан к какой-либо структуре, поэтому вы можете выбрать свою любимую и использовать ее. 100


Другой вариант, который вы могли бы рассмотреть - FastAPI . Например, вот простой API распознавания сущностей spaCy:

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}

А автоматизированный пользовательский интерфейс c выглядит следующим образом:

FastAPI docs UI

Отказ от ответственности: я создал FastAPI, и это то, что мы сейчас используем в Explosion (создатели spaCy). 101 ?

...