ひろしまみなとマルシェに 内部監査支援システム開発

朝は元宇品に散歩に行き、帰りにひろしまみなとマルシェに寄ってみる・・・炎天下の下、出店している人たちには脱帽ものです・・やはりお客は少なく営業的には苦しい・・・よしろう農園でしばらく雑談して帰宅、シャワーを浴びたらもう昼食
帰って月下美人を見ると昨晩に咲いていた・・残念見ることができなかった

ひろしまみなとマルシェでVFKさんとキク

内部監査支援システム開発

内部監査の指摘では、監査員の力量に左右されて的確な条項に基づく指摘が出来ていないのが実情である・・・今回、力量の不足をAIによって支援するシステムのモデルを構築する・・以下の課題は2点がメインだが、TAMの監査指摘4年分をデータ化し構造化することによって支援の形態が現実的に見えてきた

  • AIに情報を渡すが、その情報が漏洩リスクとならないために、固有名詞などを送らせない
  • 具体的な支援方法について、イメージが具体的にならない
内部監査システム構築のためのステップ
  • STEP 1-1: 事実メモを箇条書きで入力(固有名チェックあり。通らないと進めない)
  • STEP 1-2: AIが事実の不足を質問(最大3問×2ラウンド。スキップ可)
  • STEP 1-3: 対話結果から事実文を自動文書化 → 監査員が修正・確定
  • STEP 2: 条項候補Top-3+境界注記 → 選択または手入力
  • STEP 3: ランク選択 → 指摘文案生成 → 修正
  • STEP 4: 確定 → 事例DBに蓄積(次回のAI参照例に自動反映)
これまでに構築したもの
  • [TAMの審査記録xlsx 4年分をデータ化してサンプルとする] : audit_case_extract(抽出+三段匿名化: パターン/辞書/ローカルLLM検査)
  • [匿名化済み事例DB cases.csv 388件] :clause_bench(条項マッチング実力測定)
  • [実測: ゼロショット85.5%/適合性系93.8% → RAGで88.1%・混同半減] :検討結果書(二層アーキテクチャ: 規格層=共通/流儀層=組織別)
  • [audit_assist_proto(動くプロトタイプ)] :事実引き出し対話 → 匿名化ゲート → 条項候補 → 人間確定 → 事例蓄積(自己学習)
主要な実測値(仕様書の根拠数字)
  • 条項マッチング(Top-3実務粒度): ゼロショット全体85.5% / 適合性系93.8%
  • 粒度規約+TAM事例RAG(v2b): 全体88.1%、最大混同ペア(8.1↔6.1.2)半減
  • ランク別定型句の対応(388件分析): 改善の機会=「推奨します」、観察事項= 「検討の余地があります」が相互汚染ゼロの完全分離 → 文章生成テンプレートに採用
  • 適合性系(観察事項・懸念領域・改善指摘)と意見系(改善の機会・充実点)の 2群構造を確認 → ランクはAIが当てず、2分類推定+監査員選択の設計に
実地試用の状況と次回のTODO

済み: 2022年審査データで10件試用・・「力量ある監査員には良い指標」との評価・・記録済みデータ: confirmed_cases.csv・metrics.jsonl に実データ10件保持
次回確認すること:

  • v1.1修正の適用確認(重要): v1.2完了報告にv1.1(過剰検知修正・許可ボタン・ ランク2分類化)の適用言及がない。「建築部」「工務課長」「2件の作業所」が ブロックされないか確認し、未適用ならv1.1指示書を先に適用させる
  • 採用率18.2%の原因調査: 体感(「非常によくできている」、明確な条項誤りは1件)と 記録上の採用率18.2%が大きく乖離している。候補カードをクリックせず手入力で 条項を入れる操作習慣だと、候補が正しくても「手入力=不採用」と記録される。 metrics.jsonlの確定条項の生値と候補を突合し、指標定義の問題か候補品質の問題かを 切り分ける(次回セッションでmetrics.jsonlをアップロードすれば分析可能)
  • 1.2の意地悪テスト: 最低品質のメモ(「・教育記録を確認 ・不十分」)への AIの質問が、TAMが新人に返す問いと一致するか 試用を10〜20件継続し、指標の推移を観察
▶この続きを見る・・・・

暑い朝の散歩 ローカルLLM(Ollama)の構築

朝から纏わりつくような暑さ、キクも暑い

ローカルLLM(AI)の構築

ローカルLLMとして、Ollamaを選択、ローカルでOpenAI互換APIを提供、Laravelから通常のAPI呼び出しと同じ形式でローカルLLMを叩ける
インストールするWindowsPCは、・マザー ASUS ROG STRIX B550-A GAMING、CPU Ryzen9 3950X(16C32T 3.5-4.7GHz)、メモリ DDR4 PC4-28800 3600MHz 2✕32GB=64GB、グラフィックボード GeForce RTX™ 4070 Ti、M.2SSD PCle4.0 NVMe M.2 Kingston KC3000 1021GB、 PCIe Gen 4.0 x4 70000MB/Sで、GPUが少し不足気味だが、Ollama Qwen2.5 14B (Q4量子化 約9GB)が動きそうなのでインストールして試行する

Ollama本体のインストール

https://ollama.com/download/windows からOllamaSetuo.exeをダウンロード 実行してインストール、インストール後、Ollamaは常駐サービスとして起動します(タスクトレイにラマのアイコン)

NVIDIAドライバの確認

nvidia-smiを実行して、ドライババージョンとRTX 4070 Ti、VRAM 12288MiBが表示されればOK

モデルの取得と実行

ollama pull qwen2.5:14bをダウンロード完了したら、ollama run qwen2.5:14bで起動して、プロンプトから質問できる

GPU配分の確認

ollama psと入力して、OROCESSORが100%GPUとなっているので、VRAMに全部納まっている

API経由での動作確認(サーバ連携の予行)

Ollamaは自動的にhttp://localhost:11434でAPIを開いているので、Laravelから叩く検証ができる

Jeepの車検

甲斐犬のキク・・タヌキ?と遭遇
J58 Jeepの車検 今年も無事に終わりました

今朝も暑い、キクを連れて元宇品を散歩、キクはタヌキを見つける・・・走りすぎてバテてました・・・午前中に、J58の車検に、無事に終わって、今回はブレーキオイルを入れ替えたので¥5万程、昼からNGIさんが訪ねて来て久しぶりに雑談

会社概要登録画面を刷新
マネジメントシステム登録画面をモーダル化
▶この続きを見る・・・・

キクと散歩 工事一覧の変更

体が少し重い 今日はみなと公園で軽くキクを散歩させる

システムログインでは、最初に会社概要に遷移し、工事一覧と進んでいたが、最初に工事一覧へ遷移するように切り替え、工事一覧のデザインを変更して、工事のサムネイルが表示されるようにした・・・バタバタと変更するが、じっくり見るとボタンの配置が雑多なので、少し変更することにする

VFKさんが来る 建設アシスト 品質・セキュリティ改善 総括

朝は京橋川を散歩させて、シャワーを浴びて五日市の病院に、帰りに元宇品の森でキクを散歩させていたらVFKさんから電話、昼は近くの『はる』でお好み焼きを食べて、晩秋には北海道へJeepでキャラバンすることで盛り上がる・・・夕方に、贈り物がしたいということなので、洋酒の酒店に行く、ウイスキーが好みだそうで2種類を購入、TAMにも一本贈り物として頂いた

朝は甲斐犬のキクを京橋川で散歩 夏の日差しが暑い

建設アシスト 品質・セキュリティ改善 総括

1.目的

建設アシストは、現場マネジメントDXの実践アプリケーションで、本プロジェクトの目的は以下の3点

  • 大手組織のセキュリティ審査に耐えるシステムにする 複数テナント(会社)が同居するSaaSとして、テナント間のデータ分離を構造的に保証する
  • AIに投げる情報の管理と漏洩リスクの低減 工事情報・現場情報をAI APIに送信する以上、何をどう送り、何を記録するかを一元的に管理できる構造にする
  • 今後の機能追加に耐える保守性の確保 一人開発で継続的に機能を追加していくため、重複コード・デッドコードを排除し、「1箇所直せば全体に効く」構造を作る
2.出発点の課題(Fable 5による全体検証の結果)

セキュリティ(フェーズ1)

  • Critical 7件・High 12件。中心はIDOR(他社データへの越境アクセス)で、工程表・安全パトロール・RA・施工計画書の主要機能に集中していた
  • テナント分離がコントローラの手動認可(authorizeProject)に全依存しており、
    1箇所の実装漏れがそのままデータ漏洩に直結する構造だった
  • 当時の評価:「現時点では大手組織のセキュリティ監査に耐えられない」

保守性(フェーズ2)

  • AI呼び出しが8箇所に散在し、URL・タイムアウト・エラー処理がコピペ重複
  • 工程表のJS約4,100行がBladeにインラインで埋め込まれ、CSP強化の障害に
  • テナント設計が未完了のモデル(company_id未設定)が多数
  • デッドコード(未完成のWord/Excel出力サービス、旧版施工計画書、孤立したAIサービス等)が大量に残存。

バグ(フェーズ3)

  • 確定バグ14件。空CSVで法規制マスタが全削除される致命的バグ、工程表の無限ループ、祝日計算誤りによるCPMの1日ズレ等
  • トランザクション欠落が主要機能に多数(途中失敗で中途半端なデータが残る)
  • 同時編集の保護が皆無(後勝ち上書きで先の編集が無警告で消える)。
VFKさん、久しぶりにJeepで
アイリッシュウイスキー バスカー シングルモルト
▶この続きを見る・・・・

J58フロントドライブシャフトブーツの交換

日曜日は、久しぶりに雨が上がった・・やはり青空は良い、キクとの散歩も楽しい・・・みなと公園は、雑草がすっかり奇麗に刈上げられて、歩きやすくなっていた
J58のフロントドライブシャフトブーツの交換が終わったのことなので、古今出引取に、最近の自動車整備では、このような仕事をしてくれるところがいない、旧車は整備先を探してウロウロと、おまけにパーツも自前で、今回フロントブレーキシリンダーは型が新しくて着けられなかった・・・少しエアが噛んでいるのかブレーキが甘い

久しぶりに雨が上がる キクを連れてみなと公園を散歩
J58のフロントドライブシャフトブーツを両側を交換・・これで車検ですね

キクと元宇品

朝は甲斐犬のキクと元宇品をぐるりと回る

2.onclick / onchange インラインハンドラを addEventListener に移行する

サーバー側のバリデーション・サニタイズと、ブラウザ側のCSPの両方が必要

  • グループA:サイドバー(id 付き → そのまま addEventListener)
  • グループB:サイドバー(id なし → id を付与してから addEventListener)
  • グループC:ページタブバー(id なし → id 付与)
  • グループD:ナビバー(Blade 条件分岐内)
  • フローティングRTB(書式ツールバー)のインラインハンドラ移行

施工計画のエディット画面(edit_section_blade.php)が、ほぼ実装が完了したので、再びコードの検証を行う・・・やはり、まだ課題が多く残っていたので、順にコードの手直しをする

1.生HTML出力({!! !!})を使用している

{!! !!} はエスケープなしの生出力のため、$headerHtml / $footerHtml がDB経由で、悪意あるスクリプトを含む場合、XSS攻撃が成立する。
サーバーサイドでのサニタイズ(無害化)状況を確認し、不十分であれば修正する・・・XSS(クロスサイトスクリプティング)、SQLインジェクション・・以下はサニタイズの手法

手法内容
エスケープ特殊文字を無害な表現に変換(< → <)
除去危険な文字・タグを削除
バリデーション想定外の値を拒否(数字のみ受け付けるなど)
プレースホルダSQLをコードと分離して処理

これらの手法は、Laravelでは多くは自動で処理してくれるが、施工計画のSVGダイアグラムエディタのような自前JS処理部分は別途確認が必要

1-1.データの流れを追跡する
  • コントローラを特定する(ルート名 project_plans.sections.editから逆引きする)
  • $headerHtml / $footerHtml の生成箇所を特定する
  • DBカラムの確認
1-2.現状の判定(サニタイズ処理必要性の検証)
  • ✅ 安全なケース(修正不要)
  • ❌ 要修正なケース(対応する、入力時サニタイズ、HtmlPurifier の導入確認、サービスクラスまたはヘルパーの作成、コントローラの保存処理にサニタイズを追加、既存DBデータの一括サニタイズ(Artisan コマンド))
1-3.実施結果

Claude Codeでの実施結果ではOK、変更なし、コメントを追記

▶この続きを見る・・・・

J58を修理工場に

天気が良いので、久しぶりに元宇品の森を歩く

今週は天気が悪くなるとのことだが、良い天気の月曜日、朝は久しぶりに元宇品の森を歩く・・・最近は、森のアップダウンの散歩は辛くなってきている、午前中は今週の仕事の段取りをして、昼からはキクを助手席に乗せてJ58を修理工場に移送
最近は旧車を修理してくれる修理工場が無い、昔の車の修理はわからないそうだ・・・いつもの修理工場に無理を言ってお願いする、パーツがあればとのことなので、パーツリストからパーツを頼むが、あっているか少し不安、パーツも中々高価で、失敗すると痛手が大きい、修理の期限は付けないが7月中には終わらせてもらいたい

J58に甲斐犬のキクを乗せて、ドライブ
フロントアクスルブーツ交換に修理工場へ
▶この続きを見る・・・・

元宇品の散歩

元宇品の海岸でキクと
元宇品の森を歩く

建設アシストのコードのセキュリティ対策として、CSP(Content Security Policy)でunsafe-evalを禁止した結果、Alpine.js の式評価がブロックされ動作不能になった問題を解決します

1.パッケージ切り替え・ビルド設定

package.json / resources/js/app.js

変更内容詳細
alpinejs → @alpinejs/cspに差し替えnpm install @alpinejs/cspを実行、app.jsのインポートを変更
グローバル Alpine コンポーネントを app.jsに集約alpine:initイベント内で Alpine.data()を登録

app.jsに登録したグローバルコンポーネント:

コンポーネント名用途
scheduleInitModal(chartType, switchUrl)工程表 初期選択モーダル
flashMessageプロフィール保存後フラッシュメッセージ(2秒フェードアウト)
dropdownMenuナビゲーション ドロップダウン
laravelModal(initialShow, modalName, focusable)Breeze 標準モーダル(フォーカストラップ付き)

▶この続きを見る・・・・

甲斐犬のキク

元宇品はプリンスホテル側を歩く
朝はキクが起こしに来る
散歩までベットで待機
五日市の病院の帰り、水鳥公園に

建設アシストは今まで対象を、建設現場管理を重点にしていたが、今回はそれらを纏める会社の管理を構築すべく、まずは入り口となる会社概要ページを作成・・半分は会社のHPをリンクさせている
左には処理メニューが配置されているが、多くはこれから開発してゆくことになる

建設アシストの会社概要の作成

キクと朝の散歩

4月はここ数年で初めて出張が無かった
3月中から5月の末までは出張の仕事ななく、久しぶりに何もすることが無い時間となったが、意外と何もする気が起きない・・やるべきことは多いのだけど、なんとなくぼんやりと過ごしている
今の重要のタスクは、甲斐犬のキクの朝の散歩となっている・・1時間以上の散歩はかなりのタスクだが、健康維持には重要な事項だろう

甲斐犬のキク
土手をキクと歩く
護岸からの風景は気持ちが良い

今日は日曜日、良い天気だ、甲斐犬のキクと京橋川の土手を広島大橋まで南下して、往復・・・1時間とちょっと、足が痛い

工程表設定メニュー
工程表印刷のメニュー

岩谷観音に登る

岩谷観音の山頂 気持ちの良い快晴

昨日に続き、天気が良いので、朝のキクの散歩を兼ねて、岩谷観音を登る・・良く登っていた山だが、記録を調べてみると2020/11/16が最後のようだ・・・途中の車の中で、朝食のおにぎりを食べて、水分峡の駐車場に車を停める、いつもは水分峡の入口から直行で登るが、今日は勾配の楽な道隆寺の霊場から登り始める・・やはり膝に力が入らないので、ゆっくりと休みながら登る・・・GWなので登山者も多い・・・久しぶりの山頂(標高400mほど)は快晴で気持ちが良い・・・広島市内が良く見えて展望が素晴らしい・・・9:47から登り始めて山頂は11:23で、90分かかって登ったとことになる
下りは、同じ道を下るが、下りの方が足が痛い
フラフラになって車に到着(11500歩)・・・家に帰り、我が家の温泉で体を癒す・・・でもかなりの筋肉痛

岩谷観音の寺の跡 ここから山頂まではキツイ
広島市内が一望できる岩の上、甲斐犬のキクも一緒に登山
▶この続きを見る・・・・

天狗城山に登る

2022/10/22 キクと一緒に天狗城山を登ったのが最後で4年間ほど、ご無沙汰・・・天狗城山は一気に約300mを登るの岩山・・・2022年の時も体力は無く登りに90分もかかっていた・・・それから前立腺癌のホルモン治療で体調がおかしくなり、筋肉も落ちて、膝の関節炎となり、歩くのもままならず、出張での駅の階段などは苦行で・・山などはとんでもない状態だった
そんな状態から最近は少し回復をして散歩もかなりの距離が歩けるようになっていた・・・何となく昼から、急に思い立ち甲斐犬のキクを連れて登る・・・膝も万全ではないので無理はできないが、休み休み上って、今回は山頂までは70分程、2021年の頃は40~50分ほどで登っていた・・・さすがに関節炎になってからは登れないと思っていたが、少し膝も回復して意欲も戻ってきたようだ・・・下りは転倒しないように注意して(ほとんど岩山は尻を落として下る)、ようやく車まで戻る
少しすると足の脛が痛い・・・登山をすると痛かったあの感覚は久しぶりだ

天狗城山の最初は、手前の尾根まで長い階段が続く
カエル岩から天応の町並み いつ見ても良い景色
甲斐犬のキクと一緒に登る
▶この続きを見る・・・・

朝はキクと宇品を往復

久しぶりに宇品波止場公園を往復する、最後に歩いたのはいつ頃だったか・・・毎晩、日課で歩いていたけど・・少し膝が回復したので歩けるようになったが、時間は倍程度かかっている

宇品への道を歩く

宇品往復は、約6kmで8000歩ほどになる・・・キクの散歩なのでゆっくりではあるが2時間弱かかる
GWの初日、昭和の日だが、天気は曇りで下り坂・・夕方から雨となる

旧国鉄宇品線跡地 パークゴルフ場になっている
建替えをした競輪場には、スタバがオープン
旧宇品線 下丹那駅付近
丹那駅付近

彼岸の中日は墓参り

良い天気なので、前の日に花を購入して墓参りにRIEと行く、中日なので墓参りの人が多くて混雑していた・・そのあと、買い物に、かなり多くのものを購入

今日はお寺も混雑
甲斐犬のキクと元宇品の散歩
元宇品には椿が咲いていた
Build-Assist申込画面
メールが送付される

午前中は研修資料、昼から安全パトロール写真台帳

元宇品の森をキクと歩く

研修用の資料提出が来週初めと迫ってきたので、今日は午前中はPPTの編集、午後からはBuild-Assistの安全パトリール写真台帳をLaravelで作成

広島港の入口の灯台
砂浜で甲斐犬のキク 三日ぶりの散歩
安全パトロールの写真台帳をつくる・・・写真撮影用
▶この続きを見る・・・・

作業リスクアセスメント表の構築

今朝は、元宇品の森を散歩して海岸に出る
海岸から今日は階段で車の場所に

元宇品の散歩 最後に海岸からあがる100段以上の階段がある

今週は、建設アシストのWebアプリケーションづくりをしている・・・今日は一気に、安全作業リスクアセスメント表を作成するアプリケーションを作成
当初、思っていた内容よりかなり進んだ仕様となった・・これが実際の現場で使う日が来と・・・ワクワク感がとまらない・・Geminiとの作業は最近は相性がよくなり、作業スピードが格段に上がる

作業リスクアセスメントの管理表
AIで作らせた作業リスクアセスメント表
AIで作った作業リスクアセスメント表を修正する
▶この続きを見る・・・・

キクの散歩とアプリケーションづくり

朝はいつものように朝食を食べてから、キクを連れて散歩
帰ると、今日も一日中、Gemini3と会話しながら建設アシストのアプリケーションをつくる
Laravelは奥が深くて覚えきれない・・・今日は印刷とExsel出力をつくる・・・奇麗なExcelが出力できる
夜に、VFKさんと九州旅行の宿を2日予約する

京橋川の土手を歩く 気持ちの良い朝
甲斐犬のキクも散歩を楽しむ
法規制リストの印刷とExcel出力を作成
Excel用のプログラム(phpspreadsheet)をインストール

神戸で安全研修をする

暖かい広島みなと公園を散歩 少し早めに切上げて準備を
リエの夕食をキクが狙っている

昼前に広島を出発して、新神戸から地下鉄で大倉山に、歩いてアステップ神戸に、今日はここで安全研修を実施する(研修資料にかけた工数は対価にはまったく合わないが)・・・予定通り、研修は終わって、予定より早い新幹線に乗ることができた

会場は神戸の大倉山にあるアステップ神戸 13:30~16:30

今回の研修のために12月後半から色々と考察をしてよい勉強となり、この結果を今回のWebアプリケーション(建設アシストシステム)を作るきっかけとなった・・・昔、BASICで徹夜してプログラミングしていた頃を思い出しながら、面白さにすっかりのめり込んでいる
帰ってから、法規制チェックリストのAI判定部分をつくる・・・やはり、このパートは簡単には行かない・・・AIの判定スピードの調整、APIとの整合、結果の受取、その都度エラーが続き、何回かテストプログラムを走らせて検証しながら作成する、さすがに研修後のなので頭が痛くなったが、何とか判定部分のプログラムを完成させて・・・今夜は終わり

▶この続きを見る・・・・

甲斐犬のキクと散歩

家のキッチンで甲斐犬のキク
今朝も良い天気 京橋川を南下
広島市郷土資料館 横の公園はもとカルビーの工場があった
ヒデが一時、通っていたナンガ保育所、すっかり奇麗に建て替わっている

今日も散歩の後は、Geminiの支援を受けて、Webアプリケーションを作成する
ローカルの環境で試作したWebアプリケーションがテストできる環境は、かなりのスピードアップ
しかし、難しい処理が続くとGeminiは適格性を欠いてくるので、あまり鵜呑みにはできない・・よくコードを理解してから作成しないと、とんでもない手戻りが発生する

免責画面の作成
工事リストい画面の作成

Geminiと仕事中

キクと朝の散歩 約1時間、元宇品の山を歩き5000歩

今週はすっかりGemini3を使った資料作りにどっぷりと
如何にAIとうまく話ができて要求するものを提示させるか、色々と試すと面白い
法規制のの原案ができたので、これをWebアプリケーションへの変貌させる

今週は江田島にキャンプに行く予定だったが、予定していたキャンプ場の予約ができなかったこともあり、このGemini3が面白くて、Webアプリケーションづくりに没頭することにする

建設業における労働安全衛生の法規制リストの原案が出来上がった

GYCさんのなっちゃん葬儀

朝の散歩の途中に、昨日にQPJさんからの電話に気づき、連絡をするとGYCさんのなっちゃんが死去とのこと・・・適当に散歩を切り上げて支度をして、大野町に、葬儀は11:30からだった
午後からGYCさんとなっちゃんの写真を探して纏めてみる・・・初めて会ったのは、2012年11月に広島みなとマルシェに連れてきた時のようだ、2017年のAWLの食事会以降は、ほとんど会っていなかった
今日は節分、恵方巻を購入して、イワシを頂いて、今年も家の各室に豆まきをする・・・今年も平穏に過ごせることを祈り

TAM・QPJ・VFKでお別れに参加
急にQPJさんから連絡があり参列・・なっちゃんはまだ若かった
▶この続きを見る・・・・

元宇品をキクと散歩

元宇品の森を散歩する甲斐犬のキク

今朝も甲斐犬のキクと元宇品を散歩、前半は元宇品の中腹にある山道をアップダウンを繰り返しながら歩く、海岸に出ると海外沿いの遊歩道をのんびりと歩く・・・このコースだと6000歩弱
帰って少しをすると、もう昼となる
今日は今月末のセミナーの法規制に関するスライドをGemini3と一緒につくる・・・話の展開が早くて理解するのが追い付かない・・・夕方になると考えすぎて頭が痛い

広島港からフェリーが出港
海を眺める甲斐犬のキク
  • 2026年8月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31