ローカルSLM+RPAでレポートを自動投稿する仕組み
本記事では、ローカル環境に日本語LLMを構築し、APIコストやクラウド依存を排除しつつプライバシーを守って文書生成を行い、Selenium+RPAでレポートを自動投稿する汎用的な業務効率化ソリューションをご紹介します。
手元サーバー不要、CPUだけのノートPC(筆者環境: MacBook Air M1/8GBメモリ)でも動作する低ハードル設計です。
- 対応レポート例:クレドはもちろん、日報・週報など自社ルールに応じてカスタマイズ可能
- 配信先ツール:LINE WORKS、Slack、Chatworksなど任意のチャットツールへ
- 完全ローカル運用:APIコスト不要/クラウド不要でランニングコストをゼロに
- 高速・高品質:日本語特化モデルによる自然な文章生成
- データプライバシー重視:機密情報はすべて手元環境内に閉じ込め
- 柔軟な拡張性:フォーマットや送信先、ルールは自社に合わせて自在に変更
はじめに
本稿では、上記の仕組みを実際にセットアップして動かす手順をステップバイステップで解説します。
まずは処理フローと必要ファイルを確認し、その後ローカルモデルの準備からRPA設定まで進めていきましょう。
構成と使い方
# リポジトリを取得
git clone https://github.com/leadlea/lineworks-slm.git
cd lineworks-slm
# Git LFS 有効化(モデル用)
git lfs install
# Python 仮想環境の作成&依存関係インストール
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# モデル配置
mkdir -p models/elyza7b
mv /path/to/ELYZA-japanese-Llama-2-7b-instruct.Q4_0.gguf models/elyza7b/
# 環境変数設定
cp .env.example .env
vi .env
実行方法
# 通常実行(投稿まで自動)
python src/lineworks_cred_llm.py
# ドライラン(生成文の確認のみ)
python src/lineworks_cred_llm.py --dry-run
処理フロー
-
.env
から秘密情報とパスを読み込み -
llama_cpp
でモデルをロードし、Few-Shot Prompt によって 40~60文字 の「気づき」を生成 -
jpholiday
と曜日チェックで投稿可否を判断 - Selenium + ChromeDriver で Headless Chrome を起動
- LINE WORKS にログイン → トークルーム選択 → Ctrl+Enter で投稿
- 投稿結果をログ出力しブラウザをクローズ
ディレクトリ構成
lineworks-slm/
├── src/ # 本体スクリプト
│ └── lineworks_cred_llm.py
├── models/ # Llama 2 gguf(Git LFS 管理)
├── .env.example # 環境変数テンプレート
├── requirements.txt # 依存ライブラリ
├── README.md
└── LICENSE
シーケンス図
アーキテクチャ図
ライセンス
- コード: Apache-2.0
- モデル: Llama 2 Community License + Apache-2.0 (ELYZA 修正版)
これらのステップを実践すれば、ローカルSLM+RPAを活用した低コストな業務効率化ソリューションを誰でも手軽に構築できます。ぜひご自身の環境で試し、その効果を実感してみてください!