1. Chat-Partner-AIとは? – 概要と完成形
動画で紹介された「Chat-Partner AI」は、Chatworkのチャット履歴をAIで分析する非常に強力なツールです。この記事では、その核心的な機能を抽出し、『Chat-Partner-AI』という名のデスクトップアプリケーションとして自作する手順を解説します。
このツールを開発することで、あなたは以下のメリットを得られます。
- 業務効率の劇的な向上: 面倒なログのコピペや目視確認から解放されます。
- 実践的なスキル習得: PythonによるGUI開発、外部API連携、そして最新AIモデルの活用法まで、一気通貫で学べます。
- 高度なAPI管理技術: 複数のAPIキーを自動で切り替え、レート制限(APIの利用回数制限)を回避する高度なテクニックを実装します。
最終的には、ChatworkのルームIDを指定してボタンを押すだけで、AIによる分析レポートが生成・保存される、実用的なツールが完成します。
2. 開発環境の準備
開発を始める前に、必要なツールとAPIキーを準備しましょう。
2.1. Pythonとライブラリのインストール
まず、PCにPython (3.9以上推奨) をインストールしてください。次に、プロジェクトに必要なライブラリをまとめたrequirements.txtを使って一括でインストールします。
ターミナル(またはコマンドプロンプト)で以下のコマンドを実行してください。
pip install google-genai requests ttkbootstrap python-dotenv
【重要】Googleの公式Pythonライブラリはgoogle-genaiです。古い情報源にあるgoogle-generativeaiではない点にご注意ください。
2.2. APIキーの準備
このツールは2種類のAPIキーを必要とします。
- Chatwork APIトークン: Chatworkの公式サイトの手順に従い、APIトークンを発行します。
- Google AI APIキー: Google AI Studioにアクセスし、APIキーを作成します。複数のアカウントでキーを作成しておくと、後述するキーローテーション機能が活きてきます。
取得したAPIキーは、プロジェクト内のsystem/api_key.txtというファイルに1行ずつ記述して保存してください。
3. プロジェクト構造と主要ファイル解説
今回のプロジェクトは、役割ごとにファイルを整理した構造になっています。
Chat-Partner-AI/
├── gui/ (GUI関連のコード)
├── lib/ (API連携などの主要ロジック)
├── system/ (設定ファイルやAPIキー)
├── main.py (アプリケーションの起動ファイル)
└── requirements.txt (必要なライブラリ一覧)
特に重要なのはlib/ディレクトリ内の3つのファイルです。これらがツールの心臓部となります。
4. 実装解説:主要ロジックを深掘り
ここでは、ツールの核となる3つのロジックを解説します。
4.1. Chatwork API連携 (lib/chatwork_client.py)
このファイルは、Chatwork APIに接続し、指定されたルームのメッセージを取得・整形する役割を担います。AIが読みやすいように、[info]や[qt]といったChatwork特有のタグをクリーンなテキストに変換する処理が含まれています。
import requests
import re
class ChatworkClient:
BASE_URL = "https://api.chatwork.com/v2"
def __init__(self, api_token):
self.headers = {'X-ChatWorkToken': api_token}
def get_messages(self, room_id):
url = f"{self.BASE_URL}/rooms/{room_id}/messages?force=1"
response = requests.get(url, headers=self.headers)
response.raise_for_status() # エラーチェック
return response.json() if response.status_code == 200 else []
# (clean_message, fetch_formatted_logsなどの関数が続く...)
4.2. 【重要】Gemini API連携とキーローテーション (lib/api_manager.py)
ここがこのツールの最も高度な部分です。system/api_key.txtから複数のGoogle AI APIキーを読み込み、APIの利用回数制限(レートリミット)エラーが発生した際に、自動で次のキーに切り替えて処理を続行する仕組みを実装しています。
【注意】提供されたプロジェクトのコードは古いGemini APIの構文を使用しています。ここでは、現在の公式ライブラリgoogle-genaiの正しい構文に修正して解説します。
# lib/api_manager.py (抜粋・最新構文に修正)
import google.genai as genai
import time
class APIManager:
# ... (キー読み込み処理)
def execute_with_retry(self, operation_func, *args, **kwargs):
max_retries = len(self.api_keys)
for i in range(max_retries):
key = self.api_keys[(self.last_used_index + 1 + i) % len(self.api_keys)]
try:
# 正しいクライアントの初期化
client = genai.Client(api_key=key)
print(f"Using API Key ending in ...{key[-4:]}")
# clientを引数として渡す
return operation_func(client, *args, **kwargs)
except Exception as e:
if "429" in str(e) or "Quota" in str(e):
print(f"Rate limit on key ...{key[-4:]}. Switching...")
time.sleep(1)
continue
else:
raise e
raise Exception("All API keys failed.")
この仕組みにより、無料枠のAPIキーを複数用意しておけば、長時間の連続利用にも耐えられる堅牢なシステムを構築できます。
4.3. GUIの構築 (gui/modules/main_frame.py)
ユーザーインターフェースはttkbootstrapライブラリで構築されています。これにより、モダンなデザインのGUIを少ないコードで実現できます。ボタンが押されたときの処理 (on_sync_logs, on_analyze) は、API通信などで時間がかかるため、threadingを使ってバックグラウンドで実行します。これにより、処理中にUIがフリーズするのを防いでいます。
5. 使い方と応用
ツールの使い方は非常にシンプルです。
_setup.batを実行して仮想環境を構築します。system/api_key.txtにAPIキーを設定します。_run.batを実行してツールを起動します。- ChatworkトークンとルームIDを入力し、「ログ同期」ボタンを押します。
- 分析したい内容のボタンを押すか、自由指示を入力して実行します。
生成されたログやレポートはoutput/フォルダ内にルームIDごとのフォルダが作成され、自動で保存されます。system/config.pyを編集すれば、デフォルトで使用するGeminiモデルを変更することも可能です。
6. まとめ
この記事では、ChatworkのログをGeminiで分析するGUIツール「Chat-Partner-AI」の開発手順を解説しました。単にAPIを繋ぐだけでなく、GUIによる操作性の向上や、APIキーの自動ローテーションといった実践的なテクニックを盛り込みました。
このプロジェクトをベースに、プロンプトを改良したり、対応する分析パターンを増やしたりすることで、あなただけの最強の業務効率化ツールへと進化させることができるでしょう。
この記事の自動化に使われた技術と思考法は、
すべて以下のアカデミーでインストールできます。


コメント