【GASライブラリ】 部署別分類ライブラリ

Google Apps Script 上で動く AI 自動分類ライブラリであり、ChatGPT や Gemini を活用して、企業の部門名を事前に設定した事業カテゴリへと自動的に振り分ける仕組みです。

Demo Video

Detail

📋 概要
Department Classification Library は Google Apps Script 環境上で動作する AI 搭載の自動分類ツールです。
ChatGPT または Gemini を利用して、会社の部門名をあらかじめ定義された事業セグメントに自動分類します。

🎯 主な機能

  • 🤖 AI駆動: OpenAI ChatGPT または Google Gemini を利用
  • 📊 Googleスプレッドシート連携: スプレッドシートとシームレスに統合
  • 🌐 多言語対応: 日本語・英語の部門名に対応
  • 🛡️ エラー耐性: APIクォータ制限やネットワークエラーに強い設計
  • ⚙️ カスタマイズ可能: 柔軟なセグメント定義が可能
  • 📈 バッチ処理: 大規模データセットを効率的に処理

🚀 クイックスタート

1. ライブラリ追加
Google Apps Script プロジェクトに以下を追加:

  • Library ID: [YOUR_LIBRARY_ID_HERE]
  • Identifier: DeptClassifier

2. 初期設定

function setup() { 
  DeptClassifier.setupSheets();
}

3. 設定
Configuration シートに以下を設定:

  • AI Provider: ChatGPT または Gemini
  • Model: gpt-4, gemini-pro など
  • API Key: 対応する APIキー

4. 分類実行

function classify() {
  DeptClassifier.classifyDepartments();
}

📖 詳細仕様

デフォルトセグメント定義

🔧 API リファレンス

基本関数

  • setupSheets()
    初期セットアップを実行し、必要なシートを作成。
    作成されるシート:
    • Department Data: 部門名と分類結果
    • Segment Definitions: 分類カテゴリ定義
    • Configuration: AI API 設定
  • classifyDepartments()
    分類のメイン実行関数。
    処理内容:
    1. Department Data シートから部門名を読み込み
    2. 設定された AI API を用いて分類を実行
    3. 結果をシートに書き込み
  • classifyDepartmentsSafe()
    APIクォータ制限を考慮した安全モード。
    特徴: 小さいバッチサイズ(3件)、待機時間(10秒)、フォールバック処理

高度な関数

  • classifyDepartmentsCustom(departments, config)
    カスタム設定を用いた分類実行。
javascript
const customConfig = {  
aiProvider: 'ChatGPT',  
model: 'gpt-4', 
apiKey: 'your-api-key', 
segments: [    
{ name: 'Sales', description: 
'Sales-related departments'
},    
{ 
name: 'Tech', description: 'Technology-related departments' 
}  
]};
const results = DeptClassifier.classifyDepartmentsCustom(  ['Sales Department', 'Engineering Team'],   customConfig
);
  • retryFailedClassifications()
    失敗した分類を再試行。
javascript
DeptClassifier.retryFailedClassifications();

  • manualClassifyDepartments(departmentNames, segmentNames)
    手動で部門名を指定して分類。
javascript
DeptClassifier.manualClassifyDepartments(  
['Partner Sales Division', 'Business Planning Office'],  
['Partner Sales', 'Sales Planning/PMM']
);

📊 シート仕様

🛠️ 使用例

  • 基本使用: セットアップ → 分類実行 → 結果確認
javascript// 
1. Setup
function initializeLibrary() {  DeptClassifier.setupSheets();  console.log('Setup completed');}
// 2. Run classification
function runClassification() {  try {    DeptClassifier.classifyDepartments();    console.log('Classification completed');  } catch (error) {    console.error('Error:', error.message);  }}
// 3. Check results
function checkResults() {  // Manually check sheet contents}
  • 大規模データ処理: Safeモード+再試行を組み合わせ
javascript
function processLargeDataset() {  
// Safe classification execution  
DeptClassifier.classifyDepartmentsSafe();    
// Retry failed items  
Utilities.sleep(60000); // Wait 1 minute  
DeptClassifier.retryFailedClassifications();
}
  • カスタムワークフロー: 独自のセグメント定義を利用した分類
javascript
function customWorkflow() { 
// 1. Custom segments for tech companies  
const techSegments = [    
{ name: 'Frontend', description: 'Frontend development' },    
{ name: 'Backend', description: 'Backend development' },   
{ name: 'DevOps', description: 'Infrastructure & operations' },   
{ name: 'Product', description: 'Product management' },    
{ name: 'Sales', description: 'Sales & business development' }  ];   

// 2. Classify with custom configuration  
const departments = [   
'Frontend Development',    
'Backend Engineering',   
'SRE Team',    
'Product Manager',    
'Sales Division'  ];   
const config = {    
aiProvider: 'ChatGPT',    
model: 'gpt-4',    
apiKey: 'your-openai-key',   
segments: techSegments  };    
const results = DeptClassifier.classifyDepartmentsCustom(departments, config); 
console.log('Custom classification results:', results);}

⚠️ トラブルシューティング

  1. 設定不備DeptClassifier.testConfiguration()
  2. APIクォータ超過 (429エラー) → Safeモードに切替
  3. AIからの無効応答 → 再試行または手動分類
  4. 未定義プロパティ参照 → APIキー・モデル名・ネットワーク確認

💰 コスト見積り

  • OpenAI API
    • GPT-4: $0.03-0.06 / 1K tokens
    • GPT-4 Turbo: $0.01-0.03 / 1K tokens
    • GPT-3.5 Turbo: $0.001-0.002 / 1K tokens
  • Google AI API
    • Gemini Pro: 無料枠あり、その後 $0.00025 / 1K tokens

例: 部門名100件を分類する場合

  • GPT-4: 約 $0.50-1.00
  • GPT-4 Turbo: 約 $0.20-0.50
  • GPT-3.5 Turbo: 約 $0.05-0.10
  • Gemini Pro: 約 $0.01-0.05

🔒 セキュリティとプライバシー

  • APIキーは共有前に削除
  • 本番環境用に専用キーを利用
  • 定期的にキーをローテーション
  • 部門名は外部送信されるため、機密情報は匿名化推奨

📈 パフォーマンス

  • 標準モード: 5件/バッチ、3秒間隔
  • Safeモード: 3件/バッチ、10秒間隔
  • カスタムモード: 設定で調整可能

推奨設定:

  • 小規模(50件以下): 標準モード
  • 中規模(50-200件): Safeモード
  • 大規模(200件以上): バッチ分割+Safeモード

🤝 貢献とサポート

  • バグ報告: GitHub Issues へ(環境・エラーメッセージ・再現手順を記載)
  • 機能リクエスト例:
    • 追加AIプロバイダのサポート
    • リアルタイム分類API
    • 学習による分類精度向上
    • カスタムプロンプトテンプレート

📚 参考資料

バージョン: 1.2.0
最終更新: 2025年9月

Source Code

HTML
CSS
Javascript