- 概要
- スタートアップガイド
- ユーザガイド
-
リファレンス
-
ABEJA Platform CLI
- CONFIG COMMAND
- DATALAKE COMMAND
- DATASET COMMAND
- TRAINING COMMAND
-
MODEL COMMAND
- check-endpoint-image
- check-endpoint-json
- create-deployment
- create-endpoint
- create-model
- create-service
- create-trigger
- create-version
- delete-deployment
- delete-endpoint
- delete-model
- delete-service
- delete-version
- describe-deployments
- describe-endpoints
- describe-models
- describe-service-logs
- describe-services
- describe-versions
- download-versions
- run-local
- run-local-server
- start-service
- stop-service
- submit-run
- update-endpoint
- startapp command
-
ABEJA Platform CLI
- FAQ
- Appendix
run-local-server
説明
本コマンドを実行すると、 --image
で指定した環境をローカル上に構築し、ローカルに存在するモデルを WebAPI として実行します。
※ run-local-server
コマンドを使用するためには、 docker がインストールされている必要があります。
概要
$ abeja model run-local-server [--help]
Usage: abeja model run-local-server [OPTIONS]
Local run commands
Options:
-h, --handler TEXT Model hanlder [required]
-i, --image TEXT Base-image name [required]
-d, --device_type [x86_cpu|x86_gpu|jetson_tx2|raspberry3]
Device type
-e, --environment ENVIRONMENTSTRING
Environment variables
-p, --port PORTNUMBER port number assigned to local server (
arbitrary number in 1 - 65535 )
--no-cache, --no_cache Not use built cache
--v1 Specify if you use old custom runtime image
--help Show this message and exit.
オプション
-h
, --handler
呼び出す関数のパスを指定します。
--handler main:handler
とした場合には、 main.py
のファイル内に定義されている handler
を呼び出します。
呼び出すファイルが src ディレクトリ直下に置かれている場合は、 src.main:handler
になります。
-i
, --image
使用するイメージを指定します。 指定可能なイメージについてはこちらを参照して下さい。
-d
, --device_type
デバイスタイプを指定します。 [x86_cpu, x86_gpu, jetson_tx2, raspberry3]
-e
, --environment
環境変数を指定します。登録された環境変数はコードから参照できるようになります。 例)IMAGE_WIDTH:100
ユーザーの指定可能な環境変数についての詳細は、こちらを参照ください。
-p
, --port
ポート番号を指定します。 1 から 65535 の間の任意の整数値が指定可能です。
--no-cache
, --no_cache
再ビルドを行い、イメージを作り直します。
--v1
18.10
系のカスタムイメージを使用する際にはこのオプションを与える必要があります。
例
ローカルに WebAPI を立ち上げる
前提:
- 以下のような状態になっているものとします。
$ cat main.py
def handler(iter, context):
for data in iter:
yield data
コマンド:
$ abeja model run-local-server -h main:handler -i abeja/all-cpu:18.10
出力:
[info] preparing image : abeja/all-cpu:18.10
[info] building image
Step 1/7 : FROM abeja/all-cpu:18.10
---> a8e1fd359712
Step 2/7 : ADD . /tmp/app
---> bccfa55096b5
Step 3/7 : WORKDIR /tmp/app
---> 781ceeb720b8
Step 4/7 : ENV SERVICE_TYPE HTTP
---> Running in fe0468ea22d9
---> f1c8bb5b505b
Step 5/7 : ENV HANDLER main:handler
---> Running in 3407d8c19b88
---> 971ce380a3a6
Step 6/7 : RUN if test -r requirements.txt; then pip install --no-cache-dir -r requirements.txt; fi
---> Running in ff413a5f3683
---> f1acfe271dfd
Step 7/7 : LABEL "abeja-platform-model-type"='inference' "abeja-platform-requirement-md5"=''
---> Running in 20afeb06abff
---> 67035f4c5d70
Successfully built 67035f4c5d70
Successfully tagged abeja/all-cpu/18.10/local-model:latest
[info] setting up local server
[info] waiting server running
{"log_id": "1ef02adf-c363-4e63-84e1-71f1e9e54bbc", "log_level": "INFO", "timestamp": "2018-07-12T08:00:30.785670+00:00", "source": "model:run.run.203", "requester_id": "-", "message": "start executing model. version:0.10.2", "exc_info": null}
{"log_id": "aa3ee889-ffe5-4c69-929f-769cc05e766d", "log_level": "INFO", "timestamp": "2018-07-12T08:00:30.786656+00:00", "source": "model:run.run.218", "requester_id": "-", "message": "start installing packages from requirements.txt", "exc_info": null}
{"log_id": "3c80881d-da66-4d9c-a077-f3aa857c6208", "log_level": "INFO", "timestamp": "2018-07-12T08:00:30.789035+00:00", "source": "model:run.run.224", "requester_id": "-", "message": "requirements.txt not found, skipping", "exc_info": null}
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
----- Local Server -----
Started successfully!
Endpoint : http://localhost:58670
Handler : main:handler
Image : abeja/all-cpu:18.10
you can now access this http api!
press Ctrl + C to stop
------------------------
確認:
$ curl -H 'Content-Type: application/json' http://localhost:58670 -d '{"val": 12345}'
{"val": 12345}