Files
Document_Translator/check_original_cache_row291.py
2025-09-03 15:07:34 +08:00

164 lines
6.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
檢查原始快取資料庫中ROW291的翻譯記錄
"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# 設定編碼
sys.stdout.reconfigure(encoding='utf-8')
from app import create_app
def check_original_cache_row291():
"""檢查原始快取資料庫中ROW291的翻譯記錄"""
print("=" * 80)
print("檢查原始快取資料庫中的翻譯記錄")
print("重點ROW291 vs ROW349 的差異")
print("=" * 80)
app = create_app()
with app.app_context():
from sqlalchemy import text as sql_text
from app import db
# 1. 檢查ROW291附近的記錄
print(f"1. 檢查ROW291附近的韓文翻譯記錄")
print("-" * 60)
result = db.session.execute(sql_text("""
SELECT id, source_text, translated_text, target_language, created_at
FROM dt_translation_cache
WHERE id >= 285 AND id <= 295 AND target_language = 'ko'
ORDER BY id
"""))
row291_records = result.fetchall()
if not row291_records:
print("❌ ROW285-295範圍內沒有韓文記錄")
else:
for record in row291_records:
print(f"\nROW {record[0]}:")
print(f" 原文: {repr(record[1][:50])}...")
print(f" 韓文: {repr(record[2][:50])}...")
print(f" 時間: {record[4]}")
# 2. 檢查ROW349附近的記錄 (我手動補充的)
print(f"\n2. 檢查ROW349附近的韓文翻譯記錄 (手動補充)")
print("-" * 60)
result = db.session.execute(sql_text("""
SELECT id, source_text, translated_text, target_language, created_at
FROM dt_translation_cache
WHERE id >= 345 AND id <= 355 AND target_language = 'ko'
ORDER BY id
"""))
row349_records = result.fetchall()
if not row349_records:
print("❌ ROW345-355範圍內沒有韓文記錄")
else:
for record in row349_records:
print(f"\nROW {record[0]}:")
print(f" 原文: {repr(record[1][:50])}...")
print(f" 韓文: {repr(record[2][:50])}...")
print(f" 時間: {record[4]}")
# 3. 直接查找D2內容的所有翻譯記錄
print(f"\n3. 查找D2內容的所有翻譯記錄")
print("-" * 60)
d2_content = "與 WB inline 串線DB→WB、時效快支援 Sn/Au 晶片\n最小可支援9mil晶粒\n支援EAP管控"
result = db.session.execute(sql_text("""
SELECT id, source_text, translated_text, target_language, created_at
FROM dt_translation_cache
WHERE source_text = :text
ORDER BY id
"""), {'text': d2_content})
d2_records = result.fetchall()
if not d2_records:
print(f"❌ 沒有找到D2內容的翻譯記錄")
print(f" 查找內容: {repr(d2_content[:50])}...")
else:
print(f"✅ 找到 {len(d2_records)} 筆D2翻譯記錄:")
for record in d2_records:
print(f"\nROW {record[0]} ({record[3]}):")
print(f" 原文: {repr(record[1][:50])}...")
print(f" 翻譯: {repr(record[2][:50])}...")
print(f" 時間: {record[4]}")
# 4. 檢查最新的韓文快取總數
print(f"\n4. 檢查韓文快取總數")
print("-" * 60)
result = db.session.execute(sql_text("""
SELECT COUNT(*) as total,
MIN(id) as min_id,
MAX(id) as max_id,
MIN(created_at) as earliest,
MAX(created_at) as latest
FROM dt_translation_cache
WHERE target_language = 'ko'
"""))
stats = result.fetchone()
print(f"韓文快取統計:")
print(f" 總數: {stats[0]}")
print(f" ID範圍: {stats[1]} - {stats[2]}")
print(f" 時間範圍: {stats[3]} - {stats[4]}")
# 5. 比較原始DIFY翻譯 vs 手動補充翻譯
print(f"\n5. 比較原始DIFY翻譯 vs 手動補充翻譯")
print("-" * 60)
if d2_records:
if len(d2_records) == 1:
print("✅ 只有一筆D2翻譯記錄沒有重複")
else:
print(f"⚠️ 有 {len(d2_records)} 筆重複的D2翻譯記錄:")
for i, record in enumerate(d2_records, 1):
print(f"\n 記錄 {i} (ROW {record[0]}):")
print(f" 語言: {record[3]}")
print(f" 翻譯: {record[2][:100]}...")
print(f" 時間: {record[4]}")
# 判斷來源
if record[0] <= 300:
print(f" 來源: 🤖 原始DIFY翻譯")
else:
print(f" 來源: ✋ 手動補充翻譯")
# 6. 查看為什麼原始翻譯沒有生效
print(f"\n6. 分析翻譯映射問題")
print("-" * 60)
if d2_records:
original_record = min(d2_records, key=lambda x: x[0]) # 最早的記錄
print(f"原始翻譯記錄 (ROW {original_record[0]}):")
print(f" 是否為韓文: {original_record[3] == 'ko'}")
print(f" 翻譯內容長度: {len(original_record[2])}")
print(f" 翻譯內容: {repr(original_record[2])}")
if original_record[3] == 'ko' and original_record[2]:
print("✅ 原始翻譯記錄看起來正常")
print("❓ 問題可能在於翻譯映射邏輯沒有正確使用這個快取")
else:
print("❌ 原始翻譯記錄有問題")
print(f"\n" + "=" * 80)
print("原始快取記錄檢查完成!")
print("請查看上述分析找出真正的問題原因")
print("=" * 80)
if __name__ == "__main__":
check_original_cache_row291()