COLUMNS
多言語化の壁を突破!ChatGPT APIで1万商品の説明文を一気に翻訳
こんにちは!フラッグシップ株式会社 バックエンド・エンジニアのKeitaです。
ノーベル物理学賞と、化学賞でAI関連の研究が受賞し、AIのインパクトの大きさを改めて感じている今日この頃です。
弊社でもChatbotを作って社内規則をAIが回答できるようにしたり、コードを書く際にAIを利用したりとAIの活用が着々と進んでいます。
今日は、弊社が担当した、とあるマーチャント様 ( 以下A社とします)のShopifyへのリプレイスプロジェクトで、AIを利用して業務の大幅な効率化を達成した事例をご紹介したいと思います。
大量の商品詳細情報の翻訳
A社はグローバルに販売を展開しており、1万種類以上の商品をECに持っています。グローバルに販売を展開していると言う事は、色々な国の人がそのECを訪れます。その際に、その国の言語でECが表示されてほしいわけです。
スペインで見たらスペイン語で、フランスで見たらフランス語で、アメリカで見たら英語で表示されてほしいわけです。
先ほど1万種類以上の商品が登録されていると言いましたが、その1つ1つの商品には、詳細な説明書きがあります。この商品はどんな素材で出来ていて、どんなおすすめポイントがあるか、などお客様にその商品の魅力をより知ってもらうためです。
1万種類以上の商品を、多様な言語で表示出来るようにしたい。少し考えただけでも大変そうですよね。
パッと思いついたのは自動翻訳でした。でもそれでは上手くいかず、またA社が求める品質になりませんでした。
というのも、その商品の説明文には専門的な用語が使われており、自動翻訳だと変な風に翻訳されてしまったからです。
そのような変な翻訳をサイトに載せてしまうとお客さまの不信感にも繋がりかねませんよね。
ChatGPTの活躍
そこで、利用したのがChatGPTです!
ChatGPTに前もって、こういう専門用語はこういう風に翻訳してというのを指示しておきました。また、翻訳をした後に、その要約を表示したり、箇条書きで表示する必要があったので、それも指示しておきました。
後は、商品説明文をコピーして、ペタッとChatGPTに貼り付けて、「指示したように翻訳して」とお願いするだけです。
第1の壁
ここで私たちは第一の壁にぶつかりました。翻訳の件数が多すぎるのです!1個1個、人の手でChatGPTに翻訳させていては指定の期日までに間に合わない事は明らかでした。
そこで、考えたのが、ChatGPTのAPIを利用した自動翻訳です。
Google スプレッドシート + GAS + ChatGPT API(Chat Completions API)
みなさんは、GAS(Google Apps Script) をご存知でしょうか?
Googleのサービス(スプレッドシートやGmail、カレンダーなど)で「自動化」をするための便利な道具です!
例えば:
- スプレッドシートに入力された情報を自動的にメールで送る
- 毎週決まった時間にカレンダーから予定を取ってメールを送る
- フォームに誰かが回答したら、自動的に「ありがとう」メールを送る
などのような事ができます。
そんなGASを利用して、今回はスプレッドシートのセルに入力された商品説明文を自動で、ChatGPTのAPIを使って翻訳するという処理を作りました。
今回利用したChatGPTのAPIはChat Completions APIというもので、私たちが普段利用しているChatGPTの会話をAPIで提供してくれるものです。
GASの開発時に参考にさせていただいた記事はこちら。
これによって、スプレッドシートのセルA1に商品説明文を入力すると、 ChatGPTに与えた指示に従って、セルA2に自動で翻訳文を出力してくれるようになりました。
この自動化によって、1万件以上の翻訳にも対応できますね!めでたし、めでたし。
と思っていたところ、落とし穴が。。
第2の壁
これで上手くいくと思っていたところ、GASとChatGPTのAPIの制限に引っかかってエラーが発生してしまいました。
細かくいうと、GASのURL FetchにはWorkspaceアカウントだと1回のリクエストサイズは最大50MB、同時実行数にも制限があります。
OpenAIのChat Completions APIも毎分200 リクエストもしくは、毎分40,000 トークンという制限があります。
Batch APIの活躍
これらの制限を回避するために、私たちはOpenAIが提供しているBatch APIを利用する事にしました。
Batch APIは
- 通常のAPIの半額で利用可能
- 別枠の高いレート制限がある
- 24時間以内に処理される非同期処理
ChatGPTに対して、すぐに回答をくれなくていいから、コストを押さえて大量のデータをまとめて処理してほしいという場合にぴったりです。
まさに今回のような場合ですね。
弊社のアーキテクトで、GASのプロフェッショナルのReonaさんがこの方法を使って実装してくれて、無事大量のデータを処理する事が出来ました。
お忙しい中、本当にありがとうございました。
まとめ
今回は1万件以上の大量の商品説明文を、何ヶ国語にも翻訳する際に、AIを利用して効率化をはかった例をご紹介しました。
試行錯誤しながらも、最終的にはGASとOpen AIのBatch APIを組み合わせる事で解決できました。大量のデータをChatGPTに処理させたい場合は、Batch APIが効果的である事が分かったのが、今回の収穫です。
みなさんも同様の状況があれば試してみてくださいね。もっといい方法があれば、ぜひご連絡お待ちしています。
それではまた!!