92 lines
3.2 KiB
Python
92 lines
3.2 KiB
Python
"""
|
||
直接测试世界书文件读取(不依赖backend模块)
|
||
"""
|
||
import json
|
||
from pathlib import Path
|
||
|
||
# 项目根目录
|
||
PROJECT_ROOT = Path(r'D:\progarm\python\llm_workflow_engine')
|
||
DATA_PATH = PROJECT_ROOT / 'data'
|
||
WORLDBOOKS_PATH = DATA_PATH / 'worldbooks'
|
||
|
||
print("=" * 60)
|
||
print("世界书文件直接读取测试")
|
||
print("=" * 60)
|
||
|
||
print(f"\n1. 路径信息:")
|
||
print(f" 世界书目录: {WORLDBOOKS_PATH}")
|
||
print(f" 目录存在: {WORLDBOOKS_PATH.exists()}")
|
||
|
||
# 列出所有JSON文件
|
||
json_files = list(WORLDBOOKS_PATH.glob("*.json"))
|
||
print(f"\n2. JSON文件列表:")
|
||
print(f" 文件数量: {len(json_files)}")
|
||
for f in json_files:
|
||
print(f" - {f.name} ({f.stat().st_size} bytes)")
|
||
|
||
if json_files:
|
||
# 尝试读取第一个文件
|
||
first_file = json_files[0]
|
||
print(f"\n3. 尝试读取文件: {first_file.name}")
|
||
|
||
try:
|
||
with open(first_file, 'r', encoding='utf-8') as f:
|
||
data = json.load(f)
|
||
|
||
print(f" ✓ 文件读取成功")
|
||
print(f" 文件格式: JSON")
|
||
print(f" 顶层键: {list(data.keys())}")
|
||
|
||
# 检查是否是内部格式
|
||
if 'entries' in data:
|
||
entries = data['entries']
|
||
if isinstance(entries, list):
|
||
print(f" 格式类型: 内部格式 (Internal)")
|
||
print(f" 条目数量: {len(entries)}")
|
||
print(f" 世界书名称: {data.get('name', '未设置')}")
|
||
print(f" 描述: {data.get('description', '无')}")
|
||
|
||
if entries:
|
||
print(f"\n 第一条目预览:")
|
||
first_entry = entries[0]
|
||
print(f" UID: {first_entry.get('uid', 'N/A')}")
|
||
print(f" 内容长度: {len(first_entry.get('content', ''))}")
|
||
print(f" 键: {first_entry.get('key', [])}")
|
||
elif isinstance(entries, dict):
|
||
print(f" 格式类型: SillyTavern格式")
|
||
print(f" 条目数量: {len(entries)}")
|
||
else:
|
||
print(f" ⚠️ 未知格式,缺少 'entries' 键")
|
||
|
||
except json.JSONDecodeError as e:
|
||
print(f" ❌ JSON解析失败: {e}")
|
||
except Exception as e:
|
||
print(f" ❌ 读取失败: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
|
||
# 如果有多个文件,也检查第二个
|
||
if len(json_files) > 1:
|
||
second_file = json_files[1]
|
||
print(f"\n4. 尝试读取第二个文件: {second_file.name}")
|
||
|
||
try:
|
||
with open(second_file, 'r', encoding='utf-8') as f:
|
||
data = json.load(f)
|
||
|
||
print(f" ✓ 文件读取成功")
|
||
if 'entries' in data:
|
||
entries = data['entries']
|
||
if isinstance(entries, list):
|
||
print(f" 格式类型: 内部格式 (Internal)")
|
||
print(f" 条目数量: {len(entries)}")
|
||
elif isinstance(entries, dict):
|
||
print(f" 格式类型: SillyTavern格式")
|
||
print(f" 条目数量: {len(entries)}")
|
||
except Exception as e:
|
||
print(f" ❌ 读取失败: {e}")
|
||
|
||
print("\n" + "=" * 60)
|
||
print("测试完成")
|
||
print("=" * 60)
|