実装ドキュメント(社内・技術)

HJ 専用 LINE bot を
立ち上げる。

HJ(株式会社エイチジェイ) 専用の L-memory インスタンスは既に構築済みです。残るのは HJ 様の LINE 公式アカウント発行 → 接続のみ。本ページは、その手順と、裏側の構成・運用後の使い方をまとめた手順書です。

設計の前提

buggy / misao / hjax / sonoro に続く完全分離インスタンス。既存事務所には一切影響なし。裏側の辞書(共通指令)は全テナント共有資産、LLM はがっつり活用(要約・文字起こし・意味検索)。

インスタンスclients/hj(port 8017)
Webhookline-hj.itochaso.biz
ダッシュボードhj-line-dash.itochaso.biz
残作業LINE OA 接続のみ
現状

基盤は構築済み。あとは LINE をつなぐだけ。

緑=完了、黄=残作業。コードは buggy と共通(事務所ごとに量産しない設計)で、設定だけ ivi 専用です。

専用インスタンス完了

clients/ivi/config.yaml(port 8012・IVI向けキーワード・同意文)。bot 稼働中(com.line-memory.hj)。

専用DB / メディア保管完了

data/hj.db 初期化済み。画像/動画/音声/ファイルは lmemory-hj-media(R2)へ。

Webhook 公開URL完了

https://line-hj.itochaso.biz/webhook(Cloudflare Tunnel・DNS 設定済)。

専用ダッシュボード完了

https://hj-line-dash.itochaso.biz(port 8024・Basic認証)。会話/メディア/辞書/設定/ログ。

共有辞書 + LLM完了

指令辞書は全テナント共通資産。要約・QA・whisper文字起こし・意味検索(bge-m3)すべて有効。

LINE 公式アカウント接続残作業

HJ 様が LINE OA を発行 → channel secret / token を受領 → plist に設定 → Webhook URL 登録。下記「構築手順」へ。

構成

データの流れ。

LINE → Mac mini(FastAPI 常駐)→ 重要度判定 → 通知 / 記録 / メディア保管 / 意味検索。すべて HJ 専用に分離。

LINEグループ(IVI公式アカウント) │ Webhook POST ▼ Cloudflare Tunnel line-hj.itochaso.biz │ ▼ FastAPI :8012 (Mac mini M4・com.line-memory.hj) ├─ キーワード事前フィルタ(API節約) ├─ 重要度スコアリング / タスク抽出(claude-bridge 経由・サブスク) ├─ メディア取り込み → R2 lmemory-hj-media │ ├─ 画像 → vision(中身を説明・検索可能化) │ └─ 動画/音声 → whisper 文字起こし(完全ローカル) ├─ 意味検索ベクトル化(bge-m3・完全ローカル) └─ SQLite data/hj.db(会話・メディア・辞書・設定) │ ├─▶ Slack 通知(#ivi-line-log・接続後) └─▶ ダッシュボード hj-line-dash.itochaso.biz(運営閲覧) 辞書(command_dictionary.json)= 全テナント共有資産
構築手順

LINE 公式アカウントを接続する。

① HJ 様作業 ② 伊藤側作業(5分)の2ステップ。秘匿値(token/secret)は repo・本書に直書きしない。

1

LINE 公式アカウントを発行(HJ 様)

LINE Developers Console で IVI 用チャネル(Messaging API)を作成し、channel secretchannel access token(長期)を発行。Messaging API を有効化、応答メッセージ OFF・Webhook 利用 ON。発行した2つの値を伊藤に共有。

2

creds を設定(伊藤側)

受領した secret / token を ivi インスタンスの環境変数に設定して再起動。

# com.line-memory.hj.plist に設定(plistlib 推奨。直書きしない)
LINE_HJ_CHANNEL_SECRET = <channel secret>
LINE_HJ_CHANNEL_TOKEN  = <channel access token>

# 反映(再起動)
launchctl kickstart -k gui/$(id -u)/com.line-memory.hj
curl -s http://localhost:8012/health   # {"status":"ok","client":"hj"}
3

Webhook URL を登録(HJ 様 or 伊藤)

LINE Developers Console の Webhook URL に下記を設定し「検証」で成功を確認。

https://line-hj.itochaso.biz/webhook
4

グループに bot を招待 → 同意文

対象 LINE グループに IVI 公式アカウントを招待。参加時に同意文(業務記録の同意)が自動投稿される。文言は hj-line-dash.itochaso.biz/settings でいつでも編集可。

疎通確認

つながったかを確かめる。

テスト投稿が記録され、ダッシュボードに出れば成功です。

記録の確認

会話が DB に入る

sqlite3 ~/Projects/LINE-MEMORY/data/hj.db \
 "SELECT id,text FROM messages ORDER BY id DESC LIMIT 5;"

テスト投稿が表示されれば Webhook 疎通 OK。ダッシュボード hj-line-dash.itochaso.biz の会話一覧にも反映。

機能の確認

メンションで応答

  • 要約:「@IVI 今週のやり取りを要約して」
  • 資料再掲:「@IVI 〇〇のPDF見せて」「現場の画像見せて」
  • 動画/音声:送ると whisper が中身を文字起こし → 検索可能に
  • 一般質問:グループの記録に基づいて回答(記録に無い固有事実は断定しない)
使い方

運用開始後にできること。

トリガーは @メンション または /lm 始まりのみ。通常会話には反応せず、静かに記録します。

週次要約「今週のやり取りを要約して」→ 決定事項・ToDo・論点・重要連絡を整理して返信。
資料・画像の再掲「〇〇の請求書見せて」「現場の写真見せて」→ 期限付き署名リンクで該当メディアを再掲。中身(vision/文字起こし/PDF本文)でも検索ヒット。
動画・音声の文字起こし送信された動画/音声を完全ローカル whisper(日本語)で文字起こし。「あの動画で何て言ってた?」も検索対象。
意味検索キーワードが一致しなくても意味で検索(「撮影の件」→「ロケ」「現場」もヒット)。完全ローカル埋め込みでデータは外に出さない。
やり取りの検索+引用過去の発言を検索し、その元メッセージに引用リプライしてエビデンスを LINE 上で確認。
運営ダッシュボードhj-line-dash.itochaso.biz で会話・メディア・指令辞書・設定・ログを閲覧。

関連:社外向けやさしい解説 /guide/ / 導入スケジュール /schedule/ / 正式提案 トップ