Pythonの基礎知識(実践編)

【Pythonの基礎知識】AI執事でGoogleタスクを自在に操る(参照・登録・削除・更新)

予定は「いつ・何をするか」を決めるものですが、タスクは「やるべきことを忘れずに処理する」ための“実行リスト”です。

スケジュールに書かれていない細かな作業、今日でなくてもいいけれど、いずれ必ずやるべきこと——
こうしたものはタスクとして管理することで頭のメモリを解放できます。

さらに、タスクをLINEから登録・確認できるようになれば、場所やタイミングに縛られず、思いついた瞬間に即記録。
リマインド処理との連携も視野に入り、「やるべきことを忘れないAI執事」が完成に近づきます。

本記事では、PythonでLINE×GoogleタスクAPIを連携し、タスクの参照・登録・削除・更新が行えるAI執事ボットの実装手順を解説します。

タスク連携の全体像と目的

AI執事における「タスク管理機能」は、Googleカレンダーとは異なるアプローチで予定や作業を扱います。 本章では、Googleタスクとの違いや連携の目的、実際にできる処理について整理します。

タスクと予定の違いとは?

予定(Googleカレンダー)は「時間」が主軸ですが、タスクは「やること」が主軸です。 つまり「いつやるか決まっていないが必ず完了したいもの」がタスクとなります。 これにより、タスクは時間の空きに合わせて柔軟に消化でき、ユーザーの心理的負荷を減らす役割も担います。

本記事でのAI執事ができること(機能一覧)

このAI執事は、LINEで送信された自然文メッセージをChatGPTで解析し、Googleタスクに関する各種処理を実行します。現在対応している機能は以下の通りです。

カテゴリユーザー発言の例意図(インテント)対応関数処理内容
タスクの参照タスク一覧を見せてtask_listlistTasks()未完了タスクをすべて表示
完了済のタスクを教えてtask_list_completedlistCompletedTasks()完了フラグ付きのタスクを表示
期限付きタスクだけ見せてtask_list_duelistTasksWithDue()未完了かつ期限ありタスクを表示
タスクの登録明日までに資料作成task_registerregisterTaskWithDue()期限付きタスクを登録
テストタスクを登録task_registerregisterTask()期限なしタスクを登録
タスクの削除資料作成タスクを削除してtask_deletedeleteTask()タイトル一致のタスクを削除
タスクの完了テストタスクを完了にしてtask_completecompleteTask()該当タスクに完了フラグを付与

※補足:
本AI執事では「更新機能」は実装されていません。
タスクの内容を変更したい場合は、ユーザー自身が該当タスクを削除し、修正内容で再登録する運用方式を採用しています。

なお、 Google Tasks API で使用するタスクリストID( tasklist_id)は、本実装では Pythonコード内で自動取得しており、 .envファイルに定義する必要はありません。

このように、自然文の指示はすべてChatGPTによって「インテント」に分類され、対応する関数に処理が振り分けられます。 具体的な処理の実装は chatgpt_logic.pytask_utils.py に記述されています。

LINEから実行できる3つの処理

ユーザーがLINEで以下のようなメッセージを送るだけで、AI執事が自動的にタスク処理を実行します。
処理はすべてChatGPTによって自然文が解析され、該当のコマンドに分類されます。

  • 「明日までに企画書を作成するタスクを追加して」→ 登録
  • 「タスク一覧を見せて」→ 参照
  • 「企画書のタスク削除して」→ 削除

※タスクの更新機能はありません。タスク名や期限を変更したい場合は、該当タスクを削除してから再登録してください。

使用ライブラリと認証設定

Google Tasks APIと連携するためには、APIの有効化と認証設定が必要です。この記事では、必要なライブラリや.envファイルに記述する項目について明確に解説します。

Google Tasks APIの有効化

Google Cloud Consoleにアクセスし、対象プロジェクトで「Tasks API」を有効にします。
サービスアカウントの作成とJSONファイルのダウンロードも忘れずに行ってください。

  • APIとサービス → ライブラリ → Tasks API を検索して有効化
  • サービスアカウントを作成 → ロールは「編集者」または「オーナー」
  • 認証情報 → JSON形式で鍵を生成 → プロジェクトに保存

.env に記述するキー一覧

以下の環境変数を .env ファイルに記述することで、ChatGPT・Google Tasksの認証が可能になります。

変数名用途
OPENAI_API_KEYChatGPTとの連携に使用するAPIキー
LINE_CHANNEL_ACCESS_TOKENLINE Messaging APIのアクセストークン(v3 SDK用)
LINE_CHANNEL_SECRETLINEのチャネルシークレット(Webhook署名検証に使用)
GOOGLE_CALENDAR_ID予定の登録・取得・削除に使用するGoogleカレンダーID
GOOGLE_TOKEN_JSONGoogle API(Calendar / Tasks)の認証に使用するOAuthトークンのJSONファイルパス

Google APIの認証方式は2種類ある

Googleが提供するAPI(カレンダーやタスクなど)には、主に下記の2つの認証方式があります。どちらの方式を使うかによって、コードの書き方や許可の仕組みが大きく異なります。

✅ 2つの認証方式

  • OAuth認証
  • サービスアカウント認証

OAuth認証とは?(token.json方式)

ユーザーがGoogleにログインして、自分のアカウントのデータにアクセスしてよいかを明示的に許可する方式です。初回だけ手動でログイン・許可が必要ですが、以降は「token.json」というファイルを使って自動化できます。

  • ユーザー本人のカレンダーやタスクなど、個人データを扱う用途向け
  • 初回だけログイン許可が必要
  • token.json が本人確認の鍵になる

サービスアカウント認証とは?(credentials.json方式)

Google Cloud Consoleで発行できる「機械専用のアカウント」です。人間のログインは不要で、バックエンドのプログラムやサーバー処理向けに利用されます。

  • 人の手を介さずに自動で動作させたい処理に最適
  • credentials.json(秘密鍵ファイル)を使って認証
  • カレンダーなど一部のAPIでは使用可能

本AI執事で使用している認証方式

本AI執事では、OAuth認証(token.json方式)のみを使用しています。
サービスアカウント(credentials.json)は使用しません。

ここで注意すべき最大のポイントは「スコープ(SCOPES)の指定」です。
token.json を生成する際に、どのGoogle APIへのアクセスを許可するかを事前に指定する必要があります。以下のように記述します。

スコープの指定が重要

Google APIへのアクセス権限は「スコープ」で制御されており、token.json を生成する際に以下のように明示する必要があります:

SCOPES = [
    "https://www.googleapis.com/auth/calendar",
    "https://www.googleapis.com/auth/tasks"
]

上記のように、カレンダーとタスク両方のスコープを含めておけば、1つの token.json で両方のAPIにアクセス可能です。

逆に、片方だけで生成した場合は、あとから追加することができず、403エラーが発生します。

スコープを間違えた場合の対処法

  1. 古い token.json を削除(またはリネーム)
  2. 正しいスコープを含めたコードで認証を再実行
  3. 新しい token.json が自動生成される

本AI執事の構成における補足

  • 本実装では、 GOOGLE_TOKEN_JSON のみを使用し、 GOOGLE_TASKLIST_ID.env では定義しません
  • タスクリストIDはコード側で自動的に検出・使用されます
  • ユーザーのGoogleアカウントで一度だけ認証を行えば、自動的にタスクや予定が処理されます

token.json を取得するために必要な2つの設定

PythonからGoogleのカレンダーやタスクにアクセスするためには、token.json というファイルが必要です。
このファイルは、あなたがGoogleログインでアクセスを許可したことを証明する「本人認証済みの通行証」となります。

この token.json を取得するには、以下の2ステップが必要です。

OAuthクライアントの認証情報(client_secret.json)を作成する
Google Cloud Console 上で OAuth用の認証情報を発行し、 client_secret.json をダウンロードします。
このファイルは「このアプリが誰によって作られたか」「どの情報にアクセスするか」をGoogleに伝える役割を持ちます。

Pythonスクリプトでログインし、token.json を生成する
先ほどの client_secret.json を元に、あなた自身がGoogleログインしてアクセスを許可すると、token.json が自動生成されます。

この token.json が生成されることで、以降は毎回ログインすることなく、Pythonスクリプトからあなたの Googleカレンダー や Googleタスク に自動でアクセスできるようになります。

 

OAuthクライアントの認証情報(client_secret.json)を作成する

OAuth認証による token.json の取得を行う前に、Google Cloud Console で「OAuth同意画面」を設定する必要があります。以下の手順は、初期状態から完全に設定が完了するまでを1ステップずつ解説しています。

① Google Cloud Console にアクセス

はじめにGoogle Cloud Console を開きます。

② プロジェクトを選択(または作成)

右上の「プロジェクトを選択」をクリックし、対象のプロジェクトを選択または新規作成します。
この後の設定は、選択したプロジェクトに対して反映されます。

③ 「OAuth 同意画面を構成してください」と表示されたら「構成」ボタンを押す

初回設定時は、「Google Auth Platform はまだ構成されていません」と表示されます。
その場合は画面右下の「構成」または「開始」ボタンをクリックして、同意画面の設定を開始します。

④ アプリ情報を入力
  • アプリ名: 任意の名前(例:BePro AI執事)
  • ユーザーサポートメール: 自分のGoogleアカウント

入力が終わったら「次へ」ボタンをクリックします。

⑤ ユーザータイプを選択(外部)

「外部」を選択することで、Googleアカウントを持つすべてのテストユーザーがアプリを使用できるようになります。
この設定により、OAuth認証で自分のGoogleアカウントを使うことが可能になります。

選択が完了したら、「次へ」をクリックして、連絡先情報の入力に進んでください。

⑥ 連絡先情報入力

連絡先情報: 同じメールアドレスを入力して「作成」ボタンをクリック

⑦ OAuth クライアントの作成

OAuth同意画面の構成ウィザードをすべて完了した後に「OAuthの概要」画面が表示されますが、まだクライアントID(client_secret.json)は未作成の状態です 。

「OAuth クライアントを作成」ボタンを押してください。

OAuth クライアント ID の作成(アプリ種別を選択し「作成」)

  • アプリケーションの種類 → 「デスクトップアプリ」を選択
  • 名前 → 任意(例:bepro-auth-client)
  • 「作成」ボタンを押すと client_secret_XXXX.json がダウンロード可能になります

「作成」ボタンをクリックすrとOAuthクライアントが作成されます。

⑨ OAuthクライアントIDを作成し、JSONをダウンロード

「OAuthクライアントを作成しました」という確認画面が表示されます。
この画面で表示される「JSONをダウンロード」をクリックし、 client_secret_xxxx.json ファイルを必ず保存してください。

このファイルは、後で token.json を生成するPythonスクリプトで使用します。
万が一紛失すると、クライアントIDの作成からやり直す必要があります。

」→「認証情報」をクリックします。
④ 「認証情報を作成」→「OAuth クライアント ID」を選択

画面上部の「認証情報を作成」ボタンをクリックし、「OAuth クライアント ID」を選択します。

client_secret.json のリネーム手順

Google Cloud Console からダウンロードした認証ファイルは、以下のように長いファイル名になっています:

client_secret_724670778229-xxxxxx.apps.googleusercontent.com.json

しかし、Pythonスクリプトでは client_secret.json という名前で読み込むよう記述されています。
そのため、以下のようにファイル名をリネームしてください。

mv client_secret_724670778229-xxxxxx.apps.googleusercontent.com.json client_secret.json

Pythonスクリプトでログインし、token.json を生成する

Googleカレンダーやタスクなど、ユーザーの Google アカウントにあるデータへアプリがアクセスするには、OAuth同意画面を通じてアクセス権限の許可を得る必要があります。

OAuth同意画面とは?

OAuth同意画面は、アプリがどの情報にアクセスしようとしているのかをユーザーに明示し、「このアプリにGoogleカレンダーやタスクへのアクセスを許可しますか?」と確認するための画面です。

OAuth同意画面は、あなたが開発したアプリが、ユーザー本人の Google アカウントにあるデータ(カレンダーやタスクなど)へアクセスす

たとえば、あなたのアプリが「Googleカレンダーに予定を書き込む」処理を行う場合、Googleはその操作に対して明確な許可を要求します。
その許可を取るための画面が「OAuth同意画面」です。

開発初期の段階では「アプリをGoogleに公開する」前提にはなっていないため、OAuth同意画面は テストユーザーとして登録したアカウントのみ に表示されます。
このテストモードでは、アクセスできるユーザーを限定することで、Googleはアプリが悪用されるリスクを防いでいます。

つまり、OAuth同意画面とは──

  • アプリの名称・スコープ・連絡先などをユーザーに明示するための画面
  • 「このアプリに、あなたのアカウント情報へのアクセスを許可しますか?」と尋ねる仕組み
  • Googleがユーザーの明示的な許可を記録し、安全性を担保するためのもの

この認証が完了したあとに取得されるのが token.json です。
このファイルは、「あなた自身のGoogleアカウントがこのアプリにアクセスを許可した」という証拠として機能し、以後の操作に使用されます。

アクセス権限付与手順

はじめにGoogle Cloud Console から、「APIとサービス」を選択します。

① Google Cloud Console にアクセス
はじめにGoogle Cloud Console を開きます。

② OAuth同意認証を選択
表示されたAPIとサービス画面左メニューから「OAuth同意認証」をします。

※OAuth同意認証が未認証の場合は、自動的にOAuthの概要画面へリダイレクトします。

③ テストユーザーの追加
OAuthの概要画面左メニューから「対象」を選択します。
テストユーザーの「add users」ボタンをクリックし、対象となるアクセスユーザーのメールアドレスを追加します。

スクリプトで認証を行い、token.json を生成する

Google Tasks API を使用するには、OAuth認証を通じて token.json を生成する必要があります。以下は VPS上での手順です。
今回は全環境(Mac, Windows, VPS含む)で使用できる「ブラウザ認証+コード入力方式( run_console())」を使用します。

① client_secret.json を VPS上のプロジェクトフォルダに配置

事前にダウンロードした認証情報ファイル(例: client_secret_XXXX.json)を、VPS上のプロジェクトフォルダに client_secret.json という名前で配置してください。

配置先(プロジェクフォルダ)は以下を想定しています:

  • /home/bepro/projects/ai_butler/client_secret.json

② 認証スクリプト get_token.py を作成

以下の内容で get_token.py というファイルを作成します。

from google_auth_oauthlib.flow import InstalledAppFlow
import os

SCOPES = [
    "https://www.googleapis.com/auth/calendar",
    "https://www.googleapis.com/auth/tasks"
]

flow = InstalledAppFlow.from_client_secrets_file("client_secret.json", SCOPES)
creds = flow.run_console()

with open("token.json", "w") as token:
    token.write(creds.to_json())

必要に応じて以下もインストールしておいてください:

  • pip install --upgrade google-auth-oauthlib

③ ブラウザ認証後に token.json が生成される

VPSのターミナルで下記を実行します:

python get_token.py
以下のURLをローカルPCのブラウザで開いてください:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=724670778229-7pchv3hinla49buaa3ek0jns3auu945g.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks&state=WZ6ideGlBXvdXw9njqfkqkqCc4CFkI&prompt=consent&access_type=offline
認証後に表示されるコードをここに貼り付けてください:

「認証後に表示されるコードをここに貼り付けてください:」で一旦ユーザー待ち受け状態で停止します。

「以下のURLをローカルPCのブラウザで開いてください:」の要求に対し、出力されたURLをコピーし、ローカルPCのブラウザで開きます。

  1. Googleのログイン画面が表示されます

  2. 「このアプリはGoogleで確認されていません」と出たら「続行」をクリック

  3. アクセス許可を確認 → 「認可コード(数十文字)」が表示されます

  4. 認証コードをコピーします。
    生成された認証コードの右にコピーアイコンが表示されるのでクリックして認証コードをコピーします。

  5. コピーしたコードをVPS側のターミナルに貼り付けます

python get_token.py
以下のURLをローカルPCのブラウザで開いてください:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=724670778229-7pchv3hinla49buaa3ek0jns3auu945g.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks&state=WZ6ideGlBXvdXw9njqfkqkqCc4CFkI&prompt=consent&access_type=offline
認証後に表示されるコードをここに貼り付けてください: 👈 ここへ認証コードを貼り付ける

入力後、カレントディレクトリに token.json が生成されます。これで認証完了です。
プロジェクトフォルダ配下へ「token.json」が存在することを確認します。

(.venv) bepro@vm-09d41400-18:~/projects/ai_butler$ ls -l
-rw-rw-r-- 1 bepro bepro 1937 Apr 20 16:28 app.py
-rw-r--r-- 1 bepro bepro 407 Apr 23 11:28 client_secret.json
-rw-r--r-- 1 bepro bepro 2374 Apr 18 16:44 credentials.json
-rw-rw-r-- 1 bepro bepro 665 Apr 23 12:34 get_token.py
drwxrwxr-x 3 bepro bepro 4096 Apr 23 11:51 logic
-rw-rw-r-- 1 bepro bepro 1141 Apr 20 16:27 requirements.txt
-rw-rw-r-- 1 bepro bepro 746 Apr 23 13:27 token.json 👈

🔒 token.json の取り扱いについて

  • このファイルは認証済みユーザーの鍵情報を含みます
  • 絶対に第三者と共有しないでください
  • .gitignore に追加して、Gitにコミットしないようにしてください

完成ソースと構造の全体像

このセクションでは、Googleタスク連携処理を行うAI執事Botにおける全体構造を整理します。ファイル単位での役割分担を明示し、読者が再利用や拡張を行いやすいよう構造の意図を伝えます。

下記は、今回構築した AI執事ボットにおける、Google カレンダーおよび Google タスク機能を実装した際のファイル構成です。

Flask アプリとして構成されており、ロジックは logic ディレクトリにモジュールとして分離されています。

このように、トークン管理・外部APIとの連携・ユーザーの入力解析をそれぞれ分離することで、構造が明確になり、保守性の高い設計となっています。

ファイル構成と役割

今回の処理は3つの主要ファイルによって構成されており、それぞれ明確な役割を担っています。

ファイル名主な役割
app.pyFlask本体。LINEのWebhookを受信し、chatgpt_logic.pyへ処理を委譲
chatgpt_logic.pyユーザー入力から意図を分類し、task_utils.pyへ適切な処理を振り分け
task_utils.pyGoogle Tasks APIとのやり取りを一手に担い、登録・取得・削除・更新を実行

chatgpt_logic.py(既存回収)

chatgpt_logic.py における処理振り分けの追加

本記事では、ChatGPTの自然言語解析によって取得された「タスク名」と「期限情報」を Google Tasks に登録する機能を実装するために、 chatgpt_logic.py を改修しています。

具体的には、ChatGPT APIの応答結果として以下のような辞書データ(title と due を含む)が得られた場合、それを task_utils.py 側の処理に振り分ける構成としました。

{"title": "テストタスク9", "due": "2025-05-04T00:00:00.000Z"}

このような応答を受け取った際、 chatgpt_logic.py 内では次のような処理が実行されます。

from logic.task_utils import registerTaskWithDue

# ChatGPTの返答内容を解析し、タイトルと期限が含まれていれば登録処理へ
if isinstance(chatgpt_result, dict) and "title" in chatgpt_result and "due" in chatgpt_result:
    title = chatgpt_result["title"]
    due = chatgpt_result["due"]
    return registerTaskWithDue(title, due)

このように、ChatGPTから返された内容に応じて、必要な処理(ここでは期限付きタスク登録)を task_utils.py に振り分けています。

なお、今回の実装では intent(意図)に基づくルーティングや createTask / updateTask などの汎用関数は使用していません。あくまで「期限付きタスクの登録」に特化したシンプルなルート処理のみを実装しています。

task_utils.py完成ソース(新規追加)

task_utils.py に追加した関数の解説

本記事では、ChatGPTの応答を元にGoogle Tasksへタスクを登録するため、以下の関数を task_utils.py に新規実装しました。

registerTaskWithDue(title, due)

ChatGPTから取得した「タイトル」と「期限」を受け取り、指定された GOOGLE_TASKLIST_ID に期限付きのタスクを登録します。

def registerTaskWithDue(title, due):
    service = getTasksService()
    task = {
        "title": title,
        "due": due
    }
    result = service.tasks().insert(tasklist=tasklist_id, body=task).execute()
    return f"✅ タスク『{title}』を登録しました(期限: {due})"

getTasksService()

Google Tasks APIへアクセスするための認証済みサービスオブジェクトを生成します。
これは token.json を用いて、ユーザーのタスクリストへアクセスするための必須処理です。

def getTasksService():
    creds = getGoogleCredentials()
    service = build("tasks", "v1", credentials=creds)
    return service

getGoogleCredentials()

token.json を読み込み、Google API へのアクセスに必要なクレデンシャル(認証情報)を取得します。
認証済みであればそのまま返却し、期限切れなどがあれば例外を出力します。

def getGoogleCredentials():
    creds = None
    if os.path.exists("token.json"):
        creds = Credentials.from_authorized_user_file("token.json", SCOPES)
    return creds

補足:

今回の機能では「削除して再登録」という考え方を採用しているため、タスクの更新用関数は存在しません。名称や期限の変更が必要な場合は、タスクを一度削除してから再度登録し直すことで対応します。

※予定の「更新」機能は、既存の予定を一度削除してから新しい予定を再登録することで代替しています。専用の更新処理は設けていません。Google Tasksの更新APIは仕様的に扱いづらく、誤更新リスクがあるため、確実な挙動を重視して「削除+再登録」で代替しています。

LINE→Flask→ChatGPT→Googleタスクの流れ

ユーザーがLINEに自然文でメッセージを送信すると、以下のような流れで処理が進みます。

  • LINEがWebhookとしてFlask(app.py)を呼び出す
  • app.pyがchatgpt_logic.pyの ask_chatgpt()を実行
  • chatgpt_logic.pyが意図を分類し、 task_utils.py内の関数を呼び出す
  • Google Tasks APIとやり取りし、処理結果をLINEへ返す

以下は簡略化した構成図です:

LINE → Flask(app.py)
  └→ chatgpt_logic.py(意図分類)
     └→ task_utils.py(Googleタスク操作)
       └→ 結果をLINEへ返答

今回の構成が目指す理想的なUX

この構成では「思いついたらすぐLINEに送るだけ」でタスクの登録や確認が完了する体験を提供します。特に重要なのは以下の3点です:

  • ユーザーがコマンドを覚える必要がない(自然文でOK)
  • スピード感のあるやりとりが可能(即レスポンス)
  • メモ帳代わりに頭の中のToDoをそのまま書き出せる

このようなUXが、AI執事を単なるBotではなく「生活導線に溶け込むツール」に進化させる鍵となります。

ChatGPTのプロンプト設計と制御

タスク処理の自動化を実現するには、ChatGPTへの適切なプロンプト設計が不可欠です。自然文からタスクの構造を正しく生成させるための設計と処理の流れを以下にまとめます。

タスク処理のインテント分類と関数対応

ユーザー発言の例インテント🔧 処理関数補足
タスク一覧を見せてtask_getgetTasks()未完了タスクを表示(期限の有無問わず)
完了済タスクを見せてtask_get_completedgetCompletedTasks()完了フラグのついたタスクのみ
期限付きタスクを見せてtask_get_duegetTasksWithDue()未完了かつ期限あり
テストタスクを登録してtask_createcreateTask()期限なし登録
テストタスクを明日期限で登録してtask_createcreateTask()期限付き登録
テストタスクを削除してtask_deletedeleteTask()タイトル一致で削除
テストタスクを完了にしてtask_completecompleteTask()完了フラグ付与

ChatGPTに指示するプロンプト例

自然文から「タイトル」と「期限」を抽出するには、ChatGPTへのプロンプトに出力形式を明示する必要があります。

role: system
content: あなたは自然文からタスク名と期日を抽出し、JSON形式で出力するアシスタントです。形式は {"title": "タスク内容", "due": "2025-05-10"} としてください。

role: user
content: 来週月曜に部長に報告書を提出する

想定される出力:

{"title": "部長に報告書を提出する", "due": "2025-05-13"}

ChatGPT応答のパース処理(Python側)

ChatGPTの出力はJSON形式の文字列として返されるため、Python側でパース処理が必要です。

import json
response_text = '{ "title": "部長に報告書を提出する", "due": "2025-05-13" }'
task = json.loads(response_text)
print(task["title"])  # → 部長に報告書を提出する

エラーとAPI制限の対処法

ChatGPT APIは、429エラー(レート制限)などの問題が発生する可能性があります。

try:
    response = client.chat.completions.create(...)
    return response.choices[0].message.content
except Exception as e:
    print("❌ ChatGPT応答エラー:", e)
    return "現在AI応答が制限されています。"

なお、OpenAIの利用プランによっては課金後も「Tier2条件($50支払い+7日経過)」が必要です。商用運用前には十分な検証が推奨されます。

今後の応用と拡張ポイント

AI執事は現時点で「タスクの基本的な参照・登録・削除・更新」に対応していますが、実用化を進めるにはさらに応用的な機能の追加が鍵となります。以下では、拡張に向けた展望を3つ紹介します。

チェックリスト形式への対応

現在は単一のタスクに対して1件ずつ処理を行っていますが、「複数タスクの一括登録」や「チェックボックス付きリスト形式」の扱いも将来的には想定できます。
この機能が実装されれば、買い物リストや作業手順リストなど、細かなToDo管理にも対応できるようになります。

LINE通知によるリマインダー

登録されたタスクの「期限が近づいたら通知する」機能も、ユーザー体験を大きく向上させる要素です。
GoogleタスクAPIでは期日(due)を設定できるため、それをもとに通知をLINEで送る機能との連携も可能です。

タスク完了報告機能との連携

ユーザーが「完了」と入力すれば、該当のタスクをチェック済みに更新するような双方向の処理も考えられます。
これにより、単なるメモ的な使い方から、「行動を促進する相棒」としての位置付けに進化できます。

まとめ:予定だけじゃないAI執事の真価

AI執事は、カレンダーとの連携によって予定の登録・削除・更新をこなすだけでなく、タスク管理にまで対応することで「行動の自動化と見える化」を実現します。

仕事のToDo、日常のやること、習慣づくりなど、日々の小さな行動も蓄積・管理できるAIは、まさに現代の「秘書」そのもの。
LINEという誰もが使うプラットフォームで、自分だけの執事を構築するという体験が、より多くの人に届くよう、今後も機能拡張を進めていきます。

よく読まれている記事

1

IT入門シリーズ 🟢 STEP 1: ITの基礎を知る(ITとは何か?) 📌 IT初心者が最初に学ぶべき基本知識。ITの概念、ネットワーク、OS、クラウドの仕組みを学ぶ ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか?無料で使えるだけでなく、高い柔軟性 ...

3

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Pythonの基礎知識(実践編)