OpenAI Embeddings API-style local server, runnig on FastAPI.
This API will be compatible with Embeddings - OpenAI API.
This was built & tested on Python 3.10.8, Ubutu20.04/WSL2 but should also work on Python 3.9+.
pip install -r requirements.txt
or
docker compose build
export PYTHONPATH=.
uvicorn main:app --host 0.0.0.0
or
docker compose up
note: Authorization header may be ignored.
example 1: typical usecase, almost identical to OpenAI Embeddings API example
curl http://127.0.0.1:8000/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"input": "Your text string goes here",
"model": "sonoisa/sentence-bert-base-ja-mean-tokens-v2"
}'
example 2: typical usecase, almost identical to OpenAI Embeddings API example
curl http://127.0.0.1:8000/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"input": ["Your text string goes here", "Where is your text string?"]
"model": "sonoisa/sentence-bert-base-ja-mean-tokens-v2"
}'
python -m download_model --model_id sonoisa/sentence-bert-base-ja-mean-tokens-v2 --local_dir model
Everything by morioka is licensed under MIT License.
- 完全オフライン化。手元のファインチューニング済モデルを指定できること
- HuggingFaceモデルをローカルにダウンロード・シンボリックリンクを無効にする| WonderHorn/ふしぎな角笛
- Huggingface Transformersのモデルをオフラインで利用する - Qiita
- 環境変数
export TRANSFORMERS_OFFLINE=1
でよい?
- モデルはホスト側のディレクトリにあるものをマウントして、外から与えて用いられること
- 推論手順が独特の場合、そのコードも外から与えられること
- アプリは /app 以下に配置されている
- /model または /app/model 以下に配置したいがが、 /app を作る前にマウントしてしまわないか?
- bert-as-service (code) のような起動方法をサポートすること
- 例えば
bert-serving-start -model_dir /tmp/english_L-12_H-768_A-12/ -num_worker=4
- 例えば
docker run --runtime nvidia -dit -p 5555:5555 -p 5556:5556 -v $PATH_MODEL:/model -t bert-as-service $NUM_WORKER
- 例えば
Enjoy!