feat(ai): ADR-032 Typhoon OCR integration - models, processors, cache, VRAM monitor, sandbox UI
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
-- File: specs/03-Data-and-Storage/deltas/2026-05-30-add-typhoon-ocr-prompt.sql
|
||||
-- เพิ่ม Typhoon OCR System Prompt ลงใน ai_prompts table
|
||||
-- ตาม ADR-029: Dynamic Prompt Management, ADR-032: Typhoon OCR Integration
|
||||
-- Change Log:
|
||||
-- - 2026-05-30: Initial seed สำหรับ typhoon_ocr_system prompt (T005)
|
||||
-- - 2026-05-30: Fix: เพิ่ม public_id (UUID) และ context_config (NULL)
|
||||
-- ai_prompts entity มี publicId NOT NULL column ตาม ADR-019 (เพิ่มเมื่อ 2026-05-27)
|
||||
-- ใช้ UUID() ของ MariaDB เพื่อสร้าง UUIDv4 ที่ valid
|
||||
|
||||
INSERT INTO ai_prompts (
|
||||
public_id,
|
||||
prompt_type,
|
||||
version_number,
|
||||
template,
|
||||
field_schema,
|
||||
context_config,
|
||||
is_active,
|
||||
manual_note,
|
||||
activated_at,
|
||||
created_by
|
||||
)
|
||||
SELECT
|
||||
UUID(),
|
||||
'typhoon_ocr_system',
|
||||
1,
|
||||
'สกัดข้อความภาษาไทยและอังกฤษทั้งหมดจากภาพนี้อย่างถูกต้อง รักษาโครงสร้างบรรทัดและการเว้นวรรคให้ใกล้เคียงต้นฉบับมากที่สุด ห้ามเพิ่มคำอธิบายใดๆ',
|
||||
JSON_OBJECT(
|
||||
'type', 'system_prompt',
|
||||
'model', 'scb10x/typhoon-ocr-3b',
|
||||
'temperature', 0.0,
|
||||
'top_p', 0.9,
|
||||
'repeat_penalty', 1.0,
|
||||
'keep_alive', 0
|
||||
),
|
||||
NULL,
|
||||
1,
|
||||
'System prompt สำหรับ Typhoon OCR-3B เพื่อสกัดข้อความภาษาไทย/อังกฤษจากภาพเอกสาร (ADR-032)',
|
||||
CURRENT_TIMESTAMP,
|
||||
(
|
||||
SELECT user_id
|
||||
FROM users
|
||||
WHERE username = 'superadmin'
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM ai_prompts
|
||||
WHERE prompt_type = 'typhoon_ocr_system'
|
||||
AND version_number = 1
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE prompt_type = prompt_type;
|
||||
@@ -0,0 +1,21 @@
|
||||
-- File: specs/03-Data-and-Storage/deltas/2026-05-30-extend-ai-audit-logs.sql
|
||||
-- เพิ่ม fields สำหรับ Typhoon OCR integration ใน ai_audit_logs
|
||||
-- ตาม ADR-032: modelType, vramUsageMB, cacheHit
|
||||
-- Change Log:
|
||||
-- - 2026-05-30: Initial delta สำหรับ Typhoon OCR audit fields (T004)
|
||||
|
||||
-- เพิ่ม modelType: ระบุประเภทของ model ที่ใช้ (tesseract, typhoon-ocr-3b, typhoon2.1-gemma3-4b)
|
||||
ALTER TABLE ai_audit_logs
|
||||
ADD COLUMN IF NOT EXISTS model_type VARCHAR(50) NULL COMMENT 'ประเภท OCR/LLM model ที่ใช้ เช่น tesseract, typhoon-ocr-3b' AFTER model_name;
|
||||
|
||||
-- เพิ่ม vramUsageMB: การใช้ VRAM จริง (MB) หลังประมวลผล
|
||||
ALTER TABLE ai_audit_logs
|
||||
ADD COLUMN IF NOT EXISTS vram_usage_mb INT NULL COMMENT 'VRAM ที่ใช้จริง (MB) ณ เวลาประมวลผล' AFTER model_type;
|
||||
|
||||
-- เพิ่ม cacheHit: ระบุว่าผลลัพธ์นี้มาจาก Redis cache หรือ OCR จริง
|
||||
ALTER TABLE ai_audit_logs
|
||||
ADD COLUMN IF NOT EXISTS cache_hit TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 = ผลลัพธ์มาจาก Redis cache, 0 = OCR ใหม่' AFTER vram_usage_mb;
|
||||
|
||||
-- เพิ่ม index สำหรับ model_type เพื่อ analytics queries
|
||||
ALTER TABLE ai_audit_logs
|
||||
ADD INDEX IF NOT EXISTS idx_ai_audit_model_type (model_type);
|
||||
@@ -0,0 +1,24 @@
|
||||
-- Delta: Seed Typhoon model option into ai_available_models
|
||||
-- Date: 2026-05-30
|
||||
-- Related: ADR-027, ADR-032, specs/200-fullstacks/232-typhoon-ocr-integration
|
||||
|
||||
INSERT INTO ai_available_models (
|
||||
model_name,
|
||||
model_version,
|
||||
description,
|
||||
vram_gb,
|
||||
is_active,
|
||||
is_default
|
||||
)
|
||||
SELECT
|
||||
'typhoon2.1-gemma3-4b',
|
||||
'4b',
|
||||
'Typhoon 2.1 Gemma3 4B - Thai-focused local LLM option for AI Admin Console',
|
||||
4.50,
|
||||
TRUE,
|
||||
FALSE
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM ai_available_models
|
||||
WHERE model_name = 'typhoon2.1-gemma3-4b'
|
||||
);
|
||||
Reference in New Issue
Block a user