【Python × Googleスプレッドシート × Groq(LLaMA3)】ローカル環境からシートにアクセスしてAIで自動処理する方法
経緯
この記事では、PythonからGoogleスプレッドシートにアクセスし、GroqのLLaMA3モデルで処理結果を自動書き込みする方法を解説します。
Googleスプレッドシートを更新するたびに、その内容をAIが自動で読み取り・処理してくれたら便利じゃない?
毎日の食事や運動、金銭管理をスプシで管理するの好きな人っていますよね(自分)
そんな感じで「日々更新、記録されるスプレッドシートを参照してくれるAIモデル」を作りたくて、まずはAPI連携の基礎から試してみました。
今回は、PythonからGoogleスプレッドシートにアクセスし、GroqのLLaMA3モデルで処理結果を自動書き込みするところまでを、APIキーやサービスアカウント設定も含めてゼロから解説します。
※この記事はChatGPT5oに相談しながら実装したセッションをもとに内容をまとめさせたものです。
📌 完成イメージ
- GoogleスプレッドシートのA1セルに「Hello from Python!」を書き込み
- AI(Groq/LLaMA3)で日本語要約し、B1セルに書き込み
- すべてローカルPCで実行
1. 必要なもの
- Python 3.9以上(Windows/MacどちらでもOK)
- Googleアカウント
- GroqのAPIキー(無料枠あり)
2. プロジェクト作成と準備
2-1. 作業フォルダを作成
任意の場所にプロジェクト用フォルダを作ります。
# 例(Windows)
mkdir C:\Users\yourname\myproject\gs-ai-demo
cd C:\Users\yourname\myproject\gs-ai-demo
2-2. 仮想環境を作成・有効化
python -m venv .venv
.\.venv\Scripts\Activate.ps1
PowerShellで「スクリプトの実行が無効」と出た場合は、
VSCode内だけ有効化する設定を行えばOKです。
詳細: PowerShell 実行ポリシーをVSCode内だけ変更する方法
2-3. 必要パッケージのインストール
requirements.txt を作成して以下を記載します。
gspread
oauth2client
python-dotenv
groq
インストールします。
pip install -r requirements.txt
環境構成はこんな感じになる
gs-openai-starter/
├─ .gitignore # Git管理から除外する設定(.env / .venv / *.jsonなど)
├─ .env # 環境変数ファイル(APIキーなど)
├─ requirements.txt # 必要なPythonライブラリ一覧
├─ main.py # メインスクリプト(Sheets ↔ Groq連携)
└─ .venv/ # Python仮想環境フォルダ(自動生成)
3. Googleサービスアカウント設定
3-1. サービスアカウント作成
- Google Cloud Console にアクセス
- 新規プロジェクトを作成(例:
gs-ai-demo) - 「APIとサービス」→「認証情報」→「認証情報を作成」→「サービスアカウント」
- 作成後、「鍵」タブでJSONキーを発行・ダウンロード
- JSONファイルをプロジェクト直下に保存(例:
credentials.json)
3-2. 必要なAPIを有効化
- Google Sheets API
- Google Drive API
3-3. スプレッドシートを共有
- Googleスプレッドシートを作成(例:
my-sheet) - 右上「共有」からサービスアカウントのメールアドレスを編集者として追加
4. Groq APIキーの準備
Groq Cloud でAPIキーを発行し、.env ファイルに記載します。
GROQ_API_KEY=YOUR_GROQ_API_KEY
5. main.py の作成
import os
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from dotenv import load_dotenv
from groq import Groq
# 環境変数ロード
load_dotenv()
SERVICE_ACCOUNT_JSON = "credentials.json"
SHEET_TITLE = "my-sheet" # または SHEET_ID に置き換え可
# Google Sheets認証
scope = ["https://spreadsheets.google.com/feeds",
"https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name(SERVICE_ACCOUNT_JSON, scope)
client = gspread.authorize(creds)
# スプレッドシート取得
sheet = client.open(SHEET_TITLE).sheet1
# A1に書き込み
sheet.update_acell("A1", "Hello from Python!")
print("[Sheets] A1に書き込み完了")
# A1の内容を取得
value = sheet.acell("A1").value
print(f"[Sheets] A1の読み込み結果: {value}")
# Groq APIで要約
api_key = os.getenv("GROQ_API_KEY")
ai = Groq(api_key=api_key)
prompt = f"次の文章を日本語で短く要約してください: {value}"
response = ai.chat.completions.create(
model="llama-3.1-8b-instant",
messages=[{"role": "user", "content": prompt}],
)
summary = response.choices[0].message.content.strip()
# B1に書き込み
sheet.update_acell("B1", summary)
print(f"[Groq/LLaMA3] B1に要約を書き込み: {summary}")
6. 実行
python main.py
実行結果例
[Sheets] A1に書き込み完了
[Sheets] A1の読み込み結果: Hello from Python!
[Groq/LLaMA3] B1に要約を書き込み: 「Pythonからこんにちは」
7. まとめ
- Google Sheets API + Drive API を有効化し、サービスアカウントで認証する
- GroqのAPIを使えば無料で高速なLLaMA3モデルを利用可能
-
.envと.gitignoreを設定して秘密情報は保護する
この仕組みを応用すれば、スプレッドシートの複数行をまとめてAI処理するできる!(ようになるよてい!)
それではまた~