先日、Feishuのマルチディメンショナル表がDeepseekと連携し、多くの人がそれを使ってコンテンツの一括生成や情報の一括処理などを行っていました。

実はGoogle Sheetsでも同様のことが可能です。方法も簡単で、以下の手順に従うだけです:

準備作業

まず、APIキーを用意する必要があります。OpenAI、Deepseek、Grokまたは、OpenAI APIと互換性のあるキーであれば何でも構いません。

申請先:

プロバイダー 申請先
OpenAI こちら
Deepseek こちら
Grok こちら

例では、X.AIで申請可能なGrokを使用しています。

Google SheetsでAIを有効にする

AIを使用したいGoogle Sheetsを開き、メニューから Extensions > Apps Script を選択します。

An image to describe post

このApps Scriptコードの内容をコピーし、エディターに貼り付けます。

An image to describe post

エディターの保存ボタンをクリックし、Google Sheetsに戻ります。4つのセルを用意し、それぞれ API BaseAPI KeyModelSystem Prompt と入力します。私の例では、これらは $C$2$C$3$C$4$C$5 に位置しており、対応する値を入力します。

私はgrokを使用しているため、それぞれの値は以下の通りです:

変数
API BASE https://api.x.ai/v1
API KEY 申請したAPIキー
Model モデルの名前
System Prompt システムプロンプトを入力

ここで、

  • API BASE は選択したAIプロバイダーに応じて対応するアドレスに変更する必要があります。例えば、OpenAIなら https://api.openai.com/v1、Deepseekなら https://api.deepseek.com、Grokなら https://api.x.ai/v1 となります。
  • Model は選択したAIプロバイダーに応じて対応するモデル名に変更する必要があります。例えば、OpenAIなら gpt-4、Deepseekなら deepseek-chat、Grokなら grok-2-latest となります。
  • System Prompt は自分で作成したタスクプロンプトです。

その後、Google Sheet内で通常の関数を呼び出すのと同じようにAskLLMを呼び出すだけです。

An image to describe post

呼び出し方法は以下の通りです:

=AskLLM($C$2, $C$3, $C$4, $C$5, B12) 

ここで、$C$2$C$3$C$4$C$5 は上記の4つの固定変数で、B12はAIに質問したい内容です。

最終的な効果は以下の通りです:

An image to describe post

潜在的な問題と最適化

  1. リクエストはGoogleサーバーのIPから送信されるため、プロバイダーにBANされる可能性があります。より良い方法は、自分のサーバーで転送を行い、Googleが自分のサーバーにリクエストを送るようにすることです。これにより、プロバイダーの視点からは自分のサーバーからAPIを呼び出しているように見えます。
  2. 使用時にGoogle SheetsにAPIキーを入力する必要がありますが、Google Sheetsは他の人と共有されることが多いため、管理が不十分だと秘密鍵が漏洩する可能性があります。解決策として、使用後すぐにAPIキーを削除するか、自分のサーバーで認証を行うことが考えられます。

Googleが公式に対応しない場合、これをソリューションとして販売できるかもしれません😋。