Shodo.incの校正APIを試してみた

Photo by Chivalry Creative on Unsplash

Shodo.incの校正APIをブログに組み込んでみた。

Shodo.incとは

AIが文脈や日本語を把握して校正してくれるサービス。今年5月ごろ、校正APIがないか探しているときに見つけたサービスだったが、そのころまだAPIは公開されていなかった。

このブログにtextlintのルールを追加し、記事を書くたびにルール調整をしていた。今年9月、ついにShodoのAI校正APIが一般公開されたという記事をみてとてもテンションが上がったことを覚えている。

API公開から約1ヶ月が経ってしまったが、ブログに組み込む調査を先週から始めて導入できた!

API概要

校正APIは、ファイルやテキストをパラメータにセットすることで校正してくれる。リクエストしたら校正ID(lint_id)が返ってくる。校正IDでステータスを確認し、校正完了するまでポーリングする方式。

ポーリング方式だと、CIで利用するのは少し面倒。何かライブラリもしくはラッパーがないか探してみたところ最終的にやりたいことがかなうものを見つけた。それが以下2つ。

Songmu/goshodo

校正APIをラップして呼び出してくれるGo製CLIツール。Shodo APIのROOT URLとAPI TOKENを環境変数にセットして、校正したいテキストファイルを指定するだけで校正結果をリスト表示してくれる。ポーリング部分などを隠蔽されているためとても使いやすい!

Songmu/action-shodo-lint

GitHub Actionで校正APIをコールして、校正APIの指摘箇所をPull Requestに変更提案を追加してくれるカスタムアクション。上のgoshodoやreviewdogというコード管理ツールにレビューコメントを追加できるツールも利用している。

たとえば以下のような変更提案が届く。

校正APIの指摘をPRのレビューコメントとして追加される

まさにこれがしたかった。むしろ考えていた以上にとてもリッチな形で実現できたのでとても満足。 しばらくtextlintと平行運用した上で、問題なければShodo.incで運用していこうと思う。

以下GitHub Actionのyamlで導入できる。ポイントはGitHub Environmentを使っているため、Environment名を指定すること。指定したEnvironmentのsecretにSHODO_API_TOKENSHODO_API_ROOT を追加。Shodo.incで発行した値をそれぞれにセットする。 GITHUB_TOKEN は自動追加されるためそのままでよい。

name: shodo-lint
on: [pull_request]
jobs:
  shodo:
    name: runner / shodo
    environment: env_name
    runs-on: ubuntu-latest
    steps:
    - uses: Songmu/action-shodo-lint@main
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        api_token: ${{ secrets.SHODO_API_TOKEN }}
        api_root: ${{ secrets.SHODO_API_ROOT }}

校正作業がとても快適になった。

駄文

会社PCをWinからMacに変えてもらった。Win機用のコードやマウスとさようならできた。個人PCと周辺機器(キーボードとかマジックパッドなど)を共用できるようになったため、とても机がスッキリしたのですがすがしい。

MacBook Proが「MagSafeだやったー!」と浮かれていたら、MagSafeだったころのMacBook AirのMagSafeとは幅が違い、持っていたMagSafeアダプターが使えないことに気がついてショック。残念。

See Also