Google Apps ScriptでClaude APIを日本語で叩いてみた【GAS】

ChatGPT、Google Gemini(Bard)と様々なAIチャットサービスがしのぎを削り、ついていけないスピードで進化し続けています。そこに新たにAmazon, Googleが出資したというAnthropic(アンスロピック)という会社。生成AIで新たに登場した企業で、ChatGPTのOpenAIよりも低価格で高機能なClaudeと呼ばれる生成AIをリリースしています。

2024年3月16日には、Claude3 Haikuというバージョンをリリースし、画像生成AIまで備えているだけじゃなく、日本語にも対応済みです。そこで$5の無償クレジットを頂いて、試しに叩いてみました。APIではなく直接ウェブ上でも試すことが可能です。

Google ChatのBotにOpenAIのchatGPTを繋げてみた【GAS】

今回利用するスプレッドシート等

今回は3つあるバージョンのうち、一番大規模で処理能力の高いOpusというモデルを利用して叩いています。既に公式に、Google Spreadsheet用のアドオンがリリースされています。

Claude3について

特徴

ChatGPTとは異なり、非常に大規模な命令文を送り処理することが可能になっています。トークンという文字数的なもので料金が変わってきますが、200,000トークンもの巨大なデータを送って処理をし結果を受け取ることが可能になっています。画像生成AIも備えており、現在AWS内でも利用可能になっています。

説明文によると、GPT-4やGemini Ultraよりも賢くパフォーマンスが高いそうな。特にコード生成が得意という触れ込みですが、ChatGPTもGeminiもコード生成は可能ですが、正直言ってイマイチなコード(スピード面でも最適化されていないとりあえず動くというコード)を見てきてるので、果たして・・・

ただし、出力については4096トークンとなっているようです(日本語ならば8000〜12000語くらいに該当)。

入力トークンが大きいがためにハルシネーションの影響を受けにくいという話なのですが、質問に対して単に答えるだけじゃなく付属の情報についても丁寧に答えてくれるようです。但しトレーニングデータはリアルタイムやネット検索をしていない為、時事の話題には弱いようです。

またファインチューニングでカスタマイズといったことも未対応の模様。

利用料金

利用料金は以下のとおりです。単位MTok = 100万トークンとなっています。以下はAPI利用時の料金になります。

モデル 入力 出力
Haiku $0.25 / MTok $1.25 / MTok
Sonnet $3 / MTok $15 / MTok
Opus $15 / MTok $75 / MTok

事前準備

アカウントの作成

まずはアカウントの作成。Googleアカウントで作成が可能なのですが、自分がGoogleアカウントでログインしてアカウントの作成を進めるとエラー。リロードしてみたら、ログイン出来ていたので氏名とニックネームを入れて送信したらまたエラー。リロードしたらアカウント作成が完了していました。ちょっと不安定でした。

こちらのページからログインが可能です

※どうも、日本語翻訳を使ってページを表示してるとエラーになるっぽいので翻訳を使わないようにしましょう。

クレジットをもらう

ログインが完了するとdashboardのトップページに$5のクレジットをくれるというボタンがあるので

  1. Claimというボタンをクリック
  2. 日本を選んで、電話番号を入れて送信をするとSMSが飛んでくる
  3. 2.の中に入ってるコードを入力して送信すると$5が取得可能

このクレジットをまず貰わないとテストで実行が出来ずにエラーとなるので要注意です。

図:クレジットをもらう画面

図:クレジットが無いとエラーとなる

APIキーを発行する

次に、Google Apps Scriptで叩く時に利用するAPIキーを発行します。

  1. こちらのページにアクセスする
  2. Create Keyをクリックする
  3. キーに名前をつける
  4. キーが発行されるのでコピーして控えておく(この時にしかキーは見ることが出来ません)

ちなみに同じ画面の「log」でどれだけのトークンを入出力で消費したのかを確認することが可能です。

図:キーに名前をつけてる

ソースコードと答え

コード

今回は、通常のメッセージを送って答えをもらうベーシックな内容です。messagesのcontentに質問文を入れます。payloadに利用するモデルや最大トークンと質問文を格納し、リクエストヘッダにてx-api-keyでapikeyを指定します。あとは通常のUrlfetchAppで外部リクエストをして、返ってきた答えをgetContentTextで取得⇒JSON.parseで中身を取り出すという流れです。

リクエストは複数の配列で送ることが出来、userが自分、assistantが解答側として受け答えを含めて連続した会話を続けることが可能になっています。

返ってきた答え

もっとも単純に「宇宙の大きさ」について質問したらどう返ってくるのか?をテストしてみました。解答は非常にナチュラルな日本語で

JSONの内容

解答内容

回答内容は日本語でも非常に自然な内容で返ってきています。そして、わりとフワッとした宇宙の大きさという質問に対して通常は「観測可能な宇宙」に関して適切な解答が出ています。宇宙の年齢が138億年なのだから、138億光年が宇宙の大きさというトラップがここにはあります(半径470億光年、直径940億光年と言われてる)。

そして付属情報として銀河の数マルチバース理論といったようなワクワクさせてくれる情報もつけて答えてくれています。

デジタル校正を依頼してみた

リコー研究所に「「紙」に印刷すると間違いに気づく理由」という資料が公開されており、文章校正を画面上で行うデジタル校正よりも紙に印刷してから校正をしたほうが間違いに気がつく率が高いということでした。誤字脱字に表記揺れ、オカシナ単語などなど・・・

実際にデジタル校正にした所、むしろミスが増えたという。しかし、これの問題点は「デジタル校正といいつつ人間が目で見てチェックするアナログな校正」でしかなく、全然デジタルじゃない点です。であるならば、この文章構成をClaude3のAIに頼んでしまえば良いのでは?ということで実験してみました。以下の文章にいくつかやりがちなミスを仕込んでおき、この文章の中でおかしな点だけをピックアップし、校正結果を箇条書きで返せという内容です。

ちなみにGASで上記質問文の改行コードは「\n」を入れてあげれば良いです。

返ってきた結果は以下の通り。

上記のうち型式ではなく形式が本来使われる表現という部分がヒットしていない。

ですが、ソレ以外の仕込んでおいたものは全てヒットし、正しく訂正されました(ruffinが訂正されてますが、Ruffleというフラッシュエミュレータの名称に正しく訂正されていた)。WordPressやGoogle Docsなんかにアドオンとして提供されれば、本当のデジタル校正が捗るのではないでしょうか?正直かなり素晴らしい結果でした。人間が校正するより遥かに早いですし、20万トークンまで投げられるならば、相当量を一括で任せられる。

Detroit: Become Humanの世界のようにこれは近い未来に大失業時代が来てしまうかもしれない・・・

※ちなみにGoogleドキュメント標準のスペルと文法機能で調べると、半分もヒットせず。役立たずでした。

※今回検証で含め忘れたのですが、「言葉の誤用(すべからく等)」や「慣用句表現の誤り」といった現代人でも間違って使われてるような表現は果たしてどうなんだろうか?

プレイヤーの選択が未来を変える神ゲー『 Detroit: Become Human 』#1

Vertex AIで利用する

Google CloudのVertex AIでもClaude3がパートナーモデルとして対応しています。しかしこちらは体験はできず月額課金+API利用従量料金でいきなり契約が必要となるので、まず本家で体験して良さそうならVertex AIで利用するといった手順が良いかもしれません。

Vertex AI APIをGASから叩くための事前準備や手順は以下のエントリーを参考にしてください。

Google Apps ScriptからBard API(Gemini)?で質問してみた

有効化する

Google提供のモデルではなく、Google Cloudでパートナーモデルとして提供してるので別途有効化が必要です。有効化手順内に課金と同意についてがあるため、同意するとGoogle Cloud側から請求という形になるので注意が必要です。

  1. GCPを開き、右上のプロジェクトが課金対象のプロジェクトに変更する
  2. Modelガーデンを開く
  3. 下にClaude Sonnet, Haikuとあるのでどちらか利用するモデルの詳細を開く(Opusも近いうちに対応予定)
  4. 有効にするをクリック
  5. 利用目的やウェブサイトなどの情報入力フォームが出るので入力して次に進む。
  6. 課金に関する同意が出るので、オッケーなら同意する
  7. Anthropicから承認されると使えるようになる。

これで有効化されて使えるようになります。従量制ではなくClaude3のProと同じなので月額課金+従量課金となります。

図:モデル有効化の画面

図:利用目的等の申請フォーム

図:月額課金について

ソースコード事例

本家Claude3でのリクエストとはエンドポイントやモデルの指定等に違いがありますが、payloadの指定等はほぼ同じです。

あとはUrlfetchAppでリクエストを投げてgetContentTextで取得するだけです。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)