先日、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
を選択します。
このApps Scriptコードの内容をコピーし、エディターに貼り付けます。
エディターの保存ボタンをクリックし、Google Sheetsに戻ります。4つのセルを用意し、それぞれ API Base
、API Key
、Model
、System 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を呼び出すだけです。
呼び出し方法は以下の通りです:
=AskLLM($C$2, $C$3, $C$4, $C$5, B12)
ここで、$C$2
、$C$3
、$C$4
、$C$5
は上記の4つの固定変数で、B12はAIに質問したい内容です。
最終的な効果は以下の通りです:
潜在的な問題と最適化
- リクエストはGoogleサーバーのIPから送信されるため、プロバイダーにBANされる可能性があります。より良い方法は、自分のサーバーで転送を行い、Googleが自分のサーバーにリクエストを送るようにすることです。これにより、プロバイダーの視点からは自分のサーバーからAPIを呼び出しているように見えます。
- 使用時にGoogle SheetsにAPIキーを入力する必要がありますが、Google Sheetsは他の人と共有されることが多いため、管理が不十分だと秘密鍵が漏洩する可能性があります。解決策として、使用後すぐにAPIキーを削除するか、自分のサーバーで認証を行うことが考えられます。
Googleが公式に対応しない場合、これをソリューションとして販売できるかもしれません😋。