全体フロー概要
法人番号からWebAPIを用いて企業名、所在地を取得し、代表者の情報を生成AIに推測させ、契約書テンプレート(Googleドキュメント)に埋めるツールをMakeを使って作成しました。
- Google Sheets: 法人番号を取得
- HTTPモジュール: gBizINFO APIで所在地取得
- Google Sheets: エラーケースを考慮
- JSONモジュール: 上記APIで取得したサンプルをGenerateで設定
-
OpenAIモジュール: GPTで代表者名を推測
- OpenAIのプラットフォームでAPIキーを取得
-
Google Docs: テンプレートをコピーして値差し込み
- HTTPモジュール等から取得する値を代入する場所を指定
- Google Driveにテンプレートを保存
- Google Drive: 完成した文書を保存(モジュール化不要)
Make(旧Integromat)シナリオ全体図
制作背景
- 元々は雛形(Word)をそのまま相手先に送付していたのですが、その後の修正されたファイルの命名規則がバラバラであったり、企業情報がブランクで返ってくる場合もあって、最後に開いてみて確認しなければいけないという煩雑さがありました
- 加えて、どの企業に雛形を送ったか、という履歴を取りたい意図があり、一覧作成から相手先情報入りの雛形作成ができれば、ステータス管理にも役立つのではないかというところから、ツール化を思い立ちました
- 情報はなるべくAPIで取得したかったのですが、無料の範囲では限界があり、代表者名については生成AIに補足させています
各モジュール構成と画面イメージ
Google Sheets: 法人番号を取得
↓
↓
HTTPモジュール: gBizINFO APIで所在地取得
gBizINFOでAPI利用申請を実施
下記のサイトから利用申請を実施します。
https://info.gbiz.go.jp/hojin/api_registration/form
↓
申請が完了すると下記のメールが届きます。
↓
メールで届いたURLにアクセスすると、トークンを入手できます。
HTTPモジュール: リクエストヘッダと上記で払い出しを受けたAPIトークンを設定
URL:https://info.gbiz.go.jp/hojin/v1/hojin
name:X-hojinInfo-api-token
Value:取得したAPIトークン
Google Sheets: エラーケースを考慮
↓
JSONモジュール: 上記APIで取得したサンプルをGenerateで設定
↓
JSONモジュール: Generateでsample dataを読込
{
"id": "4010401098455",
"errors": null,
"message": "200 - OK.",
"hojin-infos": [
{
"corporate_number": "4010401098455",
"postal_code": "4500002",
"location": "愛知県名古屋市中村区名駅3丁目28番12号",
"name": "Qiita株式会社",
"kana": "きーた",
"status": "-",
"update_date": "2021-12-24T00:00:00+09:00"
}
]
}
OpenAIモジュール: GPTで代表者名を推測
OpenAIのプラットフォームでAPIキーを取得
下記のプラットフォームへアクセスして、API Keyを取得します。
↓
対話文でWebAPIで取得した法人名から代表者氏名の推測を指示
次の企業の代表取締役社長の名前を端的に、肩書と氏名の形で回答してください。
確証が持てない場合には【責任部署・責任者名】の形で返却してください。
会社名:{{3.`hojin-infos`[].name}}
Google Docs: テンプレートをコピーして値差し込み
Google Docsテンプレートにプレースホルダを設定
乙 {{Company_Address}}
{{Company_Name}}
{{Representative}} ㊞
成果物レビュー
- Googleスプレッドシートに行追加があると起動するシンプルな設計
- 国税庁のAPIから取得した法人名、所在地は(当然ながら)正確
- Googleドキュメントのプレースホルダに変数を埋め、テンプレートから新規ファイルを作成する全体の動きは問題なし
ということで、エラーハンドリングも例外なく、うまく動いてくれました。
しかしながらOpenAIを用いて代表者の氏名を推察させる動きは課題が多く、実用化に堪えないと判断しました。
試しに、Qiita株式会社の情報を取得させてみたのですが・・・社長 is 誰
もちろん、うまく取得できる企業もあるのですが、ファクトチェックが面倒なのと、誤った情報を相手先に送ってしまうと失礼にあたるため、残念ながら代表者名を推察する機能についてはお蔵入りになりそうです。
振り返り
実装にあたっては、構想から生成AIを利用してみました。
ツールの選定や構成の提案も行えるため、Makeの実装はモジュールを並べて設定を施すだけの簡単な作業になりました。
無料APIでも情報の補完ができるのではないかと夢見ていましたが、正確さが求められる情報に対してAIの活用は難しい(高度な実装や、ファクトチェックの併用が必須)ことを実感する結果になりました。
ちなみに、ChatGPTに提案された手順と書き方がわかりやすかったので、こちらの記事構成にも流用しています。
生成AIによって実装方法を模索する時間が短縮できたため、検証に時間をかけることができました。
今後も、生成AIとの対話を繰り返しながら、アイディアを形にしていきたいです。