← トップページ(目次)に戻る

5. データ要件と構造定義

解析モード(録画)で取得する生データと、YOLO/OCR解析を統合したデータの仕様です。自己修復機能における「コンテキスト理解」と「相対座標によるウィンドウ移動耐性」を担保します。

5.1. データ構造テーブル

プロパティ (階層) 説明・格納される値
id string ログの一意なID (例: "step_001")
action.type enum 操作種別 ("click", "double_click", "keypress")
action.coordinates object 画面全体の絶対座標 {x, y}
action.uiImageBase64 string クリックしたUI(カーソル周辺アイコン)のBase64画像文字列。修復時のテンプレートマッチングに使用
action.keyContent string 入力されたキーの内容 (例: "Enter", "Hello") ※keypress時のみ
timestamp number アクション取得時のUnixタイムスタンプ。次アクションまでの待機時間算出に使用
context.screenshotBeforePath string 操作前の全体画面スクリーンショットのローカルパス
context.screenshotAfterPath string 操作後の全体画面スクリーンショットのローカルパス
context.activeWindowTitle string 操作対象となったアクティブウィンドウのタイトル名
context.relativeCoordinates object アクティブウィンドウの左上を原点(0,0)とした相対座標 {x, y}。ウィンドウ移動時の追従に使用
visionAnalysis.uiType string YOLO等が判定したUIの種類 ("button", "link", "input" 等)。AI動的再生成の基準に使用
visionAnalysis.uiDetails.boundingBox object UI要素の境界ボックス {x, y, width, height}
visionAnalysis.uiDetails.text string OCRエンジンによって読み取られたUI内のテキスト ("ログイン", "保存" 等)

5.2. 統合データ JSONフォーマット例

{
  "id": "step_012",
  "rawLog": {
    "action": {
      "type": "click",
      "coordinates": { "x": 1250, "y": 300 },
      "uiImageBase64": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0...",
      "keyContent": null
    },
    "timestamp": 1717654800123,
    "context": {
      "screenshotBeforePath": "/logs/session_1/step_012_before.png",
      "screenshotAfterPath": "/logs/session_1/step_012_after.png",
      "activeWindowTitle": "社内システム - Google Chrome",
      "relativeCoordinates": { "x": 450, "y": 150 }
    }
  },
  "visionAnalysis": {
    "uiType": "button",
    "uiDetails": {
      "boundingBox": { "x": 1220, "y": 280, "width": 60, "height": 40 },
      "text": "保存する"
    }
  }
}