Skip to content
This repository has been archived by the owner on Feb 5, 2024. It is now read-only.

mti-nxt/kao-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TensorFlowにFlaskベースのAPIでアクセスするベース

  • FlaskというWEBフレームワークを利用しています
    • swagger.ymlは connexionベースでやろうとしていた時の名残で飾りです。
  • 基本的にはdocker-composeで起動する想定になっています
  • とりあえず適当にtensorflow.Session().run()だけしてみています

ディレクトリ構成

├── Dockerfile          ...tensorflow+flaskでAPIを動かすイメージの定義
├── README.md
├── docker-compose.yml    ...とりあえずローカルで動かすためのcompose定義
├── dockerignore
├── nginx               ...リクエストを受けるNginx
│   ├── Dockerfile
│   └── nginx.conf
└── src
    ├── app.py          ...起動ファイル。(今はベタにここに全部書いてあります)
    ├── guniconf.py
    └── swagger.yaml

使い方

起動方法

$ docker-compose up

で起動し、 http://localhost:8080/healthcheck でとりあえず起動確認。
(Win/Macはdocker-machineのIP 192.168.99.100)

止め方

Ctrl+Cで止まった風に見えますが、

$ docker-compose down

で、止めてください。(docker-composeのバージョンによるのかも)

アーキテクチャメモ

Dockerベース

See:

Python2ベース

Googleから公式に配布されているDockerイメージgcr.io/tensorflow/tensorflowはPython2.7ベースなのでそれに乗っかる。

src以下をコンテナにマウント

./src -> /opt/tensor-api のマウントをdocker-compose.ymlに定義してあります。 ローカルで動かすときにいちいちdocker-compose buildするの面倒かなーと思って。

apiテストするときのコマンド

$ base64 -i input.jpg -o ./sampledata
$ curl -X POST -H "Content-Type: text/plain" -d @sampledata localhost:8080/api/face