データ入力をAIで代行するWebサービス「QuickScan」をリリースした【個人開発】
2018年11月26日
開発経緯
何故このようなWebサービスを開発しようと思い立ったのか話しますと、 既存のデータ入力の代行サービスはネット上に複数存在しているのですが、 そのほとんどが最低請求金額や法人のみで気軽に利用出来ませんでした。
それなら「自分でWebサービスを作ればいい」という考えに行き着き、気軽に利用出来る「QuickScan」をオープンβとしてリリースしました。
リリースしたもの
QuickScan - データ入力をAIで代行するWebサービス
主な機能
-
会員登録機能
-
ログイン機能
-
スキャニング機能
-
ファイル削除機能
-
クロッパー機能
-
パスワード変更機能
-
アカウント削除機能
-
チャット機能
バックエンド
- Nginx
- 軽量でリバースプロキシが利用可能なWebサーバー
- Django
- 大規模なPythonのWebフレームワーク
- Flask
- 軽量なPythonのWebフレームワーク
- Chainer
- Darknet
- 怪しい名前の物体検出フレームワーク
フロントエンド
- Bootstrap4
- Font Awesome
- 豊富な量のアイコンが使えるWebアイコンフォント
こだわった点
その1 高負荷に耐えられるサービスとする為にChainerやDarknetなどの処理は、 Flaskのサーバー機能でAPI化して常時GPU上に学習データを置いて待ち時間を無くした上で、 Celeryの非同期処理で実行し、タイムロスを極力削減しユーザーのストレスを緩和しました。 そしてDoS攻撃などを想定して秒間200アクセスを捌けるサーバーをNginxで構築しています。
その2 セキュリティ対策を万全にする為に最近β版から正式版になったreCAPTCHA v3でBOTや総当たり攻撃を無効化し、 サーバー側の設定やDjangoパッケージを利用してSQLインジェクションやXSSなどの攻撃に対して防いでいます。 そして、データ流出を防ぐ為にもSSLで暗号化した上でQualys SSL Server Testで評価A+を達成 しました。
今後の進展
今回オープンβとしてリリースしましたが将来的に追加したい機能や項目などはまだあり、それらを全て実装させた上で有料化した正式サービスを開始したいと思っております。
現状では文字認識で約2000種の文字しか認識出来ませんが、 JIS第1~2水準の漢字やその他の文字をカバーする予定です。
英語や英数字などの横幅が狭い文字は範囲が認識しづらいので、対応出来るのは日本語で書かれた一般的な書類のみなのですが、オープンβでデータセットを集めて精度向上を実現する予定です。
振り返ってみて
このプロジェクトを開始させたのが2018年7月初旬だったわけですが、 開発が想定よりかなり遅れてしまいリリースが伸びてしまいました。
このサービスは個人規模のサーバーで運用されている訳ですが、 テキスト化の精度向上のために膨大な時間を学習に割り当てていましたが、 その学習時間で機能を追加して結果的に満足の仕上がりになりました。
開発終盤ではAmazon EC2を利用するようになりました、 正直開発を始めた頃から利用するべきと思いましたが、 総額で100ドルも使ったので金銭面を考えると躊躇しますね。
最後に一言
ぜひ利用していただいてフィードバックや宣伝をしてもらえると大変助かります。
稀にサービスが正常に動作しない時がありますが、その時は時間を置いて下さい。