この記事はAI校正Shodo Advent Calendar 2024 6日目の記事です。
はじめに
弊社では、 PyPI にて shodo
を提供しています。
shodo
ではコマンドラインインターフェイス(以下、 CLI )とライブラリとしての shodo を提供しています。
インストール自体はとてもシンプルで pip
コマンドでインストール可能です。
$ pip install shodo
また、 pip
自体は、最近の Python ではデフォルトでインストールされ実行できます。*1
しかしながら、 Python のインストールが必須となるほか、最近の macOS では Python がプリインストールされていなかったりとすぐに pip
を実行できるような環境を用意できない方がいるかもしれません。*2
Docker コンテナーならすぐに実行できるような人はいると思います。*3
Docker イメージの紹介
Docker イメージは Docker Hub および GitHub Container Registry から取得可能です。
またバージョンについては、 shodo
の PyPI のバージョンに揃えてあるので、 PyPI のバージョンに合わせて使用したいバージョンを docker pull してください。
Docker Hub
https://hub.docker.com/r/nnsnodnb/shodo
$ docker pull nnsnodnb/shodo:latest
GitHub Container Registry
$ docker pull ghcr.io/nnsnodnb/shodo:latest
また、イメージの定義も GitHub で公開しています。 Star ください!!
何の捻りもないですが shodo + docker
で「 shodocker 」です!よろしくお願いします!!!!
Docker コンテナーの使用方法
今回は、すでに docker pull
済みで Docker Hub を例に説明します。
認証
Shodo API については以下にドキュメントがあるので参照してください。
ここでは詳細な説明は省きますが、 shodo
CLI は以下の2つのパターンで認証を行えるようになっています。
- 環境変数を参照する認証
- 認証ファイルによる認証
環境変数を参照する場合は SHODO_API_ROOT
と SHODO_API_TOKEN
を設定する必要があります。
認証ファイルによる認証については、通常の場合は shodo login
で認証ファイルを保存すると作成されます。また認証ファイルは ~/.config/shodo/credentials
に保存されます。
- 環境変数を参照する認証
$ docker run -it \ -e SHODO_API_ROOT=my-shodo-api-root \ -e SHODO_API_TOKEN=my-shodo-api-token \ nnsnodnb/shodo:latest lint
- 認証ファイルによる認証
$ docker run -it \ -v ~/.config/shodo/credentials:/shodo/credentials \ nnsnodnb/shodo:latest lint
上記のようにすることで Shodo API との認証が可能になります。
コマンドの実行
shodo
CLI は login
lint
download
のコマンドを提供しています。
login
コマンドは Docker コンテナーということもありここでの使用はあまり推奨しません。*4
lint
および download
コマンドについては、通常のように実行ができます。
lint
の実行
インタラクティブに実行をしたい場合は、以下のように実行します。校正する文章の入力が完了したら Windows の場合は、 Ctrl + Z
、 macOS もしくは Linux の場合は ctrl + D
で校正をリクエストできます。
$ docker run -it \ -e SHODO_API_ROOT=my-shodo-api-root \ -e SHODO_API_TOKEN=my-shodo-api-token \ nnsnodnb/shodo:latest lint 飛行機の欠便があり、運行状況が変わった。 # ユーザーの入力です
テキストファイルを校正したい場合は、コンテナー内の /shodo/
にマウントします。
$ docker run -t \ -e SHODO_API_ROOT=my-shodo-api-root \ -e SHODO_API_TOKEN=my-shodo-api-token \ -v $(pwd)/README.md:/shodo/README.md \ nnsnodnb/shodo:latest lint /shodo/README.md
download
の実行
投稿および画像をダウンロードする場合は、 download
コマンドを使用します。
ダウンロード先を指定しない場合は、コンテナー内の /shodo/docs
にダウンロードがされ、これをホストマシンにマウントすることでホストマシンにも画像やブログ記事を保存ができます。
$ docker run \ -e SHODO_API_ROOT=my-shodo-api-root \ -e SHODO_API_TOKEN=my-shodo-api-token \ -v $(pwd):/shodo/docs \ nnsnodnb/shodo:latest download
おわりに
ぜひ、 Shodo を使った AI 校正で快適な執筆ライフをノシ