maxkb/test_mineru_async_fix.py
2025-08-24 00:56:02 +08:00

116 lines
3.4 KiB
Python

#!/usr/bin/env python
"""
测试 MinerU 异步上下文修复
"""
import os
import sys
import asyncio
import django
# 设置 Django 环境
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'smartdoc.settings')
django.setup()
from apps.common.handle.impl.mineru.maxkb_adapter.maxkb_model_client import maxkb_model_client
async def test_async_model_calls():
"""测试异步模型调用"""
print("测试异步模型调用...")
# 测试获取 LLM 模型
try:
print("\n1. 测试获取 LLM 模型...")
llm_model = await maxkb_model_client.get_llm_model("0198cbd9-c1a6-7b13-b16d-d85ad77ac03d")
if llm_model:
print(" ✓ LLM 模型获取成功")
else:
print(" ✗ LLM 模型获取失败")
except Exception as e:
print(f" ✗ LLM 模型获取出错: {e}")
# 测试获取视觉模型
try:
print("\n2. 测试获取视觉模型...")
vision_model = await maxkb_model_client.get_vision_model("0198cbd9-c1a6-7b13-b16d-d85ad77ac03d")
if vision_model:
print(" ✓ 视觉模型获取成功")
else:
print(" ✗ 视觉模型获取失败")
except Exception as e:
print(f" ✗ 视觉模型获取出错: {e}")
# 测试聊天完成
try:
print("\n3. 测试聊天完成...")
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, this is a test."}
]
response = await maxkb_model_client.chat_completion(
"0198cbd9-c1a6-7b13-b16d-d85ad77ac03d",
messages
)
if response:
print(f" ✓ 聊天完成成功: {response[:100]}...")
else:
print(" ✗ 聊天完成返回空响应")
except Exception as e:
print(f" ✗ 聊天完成出错: {e}")
# 测试模型验证
try:
print("\n4. 测试模型验证...")
is_valid = await maxkb_model_client.validate_model("0198cbd9-c1a6-7b13-b16d-d85ad77ac03d")
if is_valid:
print(" ✓ 模型验证成功")
else:
print(" ✗ 模型不存在或无效")
except Exception as e:
print(f" ✗ 模型验证出错: {e}")
print("\n测试完成!")
async def test_mineru_image_processing():
"""测试 MinerU 图像处理流程"""
print("\n测试 MinerU 图像处理流程...")
from apps.common.handle.impl.mineru.config_base import MinerUConfig
from apps.common.handle.impl.mineru.image_processor import MinerUImageProcessor
# 创建配置
config = MinerUConfig()
# 创建图像处理器
processor = MinerUImageProcessor(config)
await processor.initialize()
print("✓ 图像处理器初始化成功")
# 清理资源
await processor.cleanup()
print("✓ 图像处理器清理成功")
async def main():
"""主测试函数"""
print("=" * 60)
print("MinerU 异步上下文修复测试")
print("=" * 60)
# 测试异步模型调用
await test_async_model_calls()
# 测试图像处理流程
await test_mineru_image_processing()
print("\n" + "=" * 60)
print("所有测试完成!")
print("=" * 60)
if __name__ == "__main__":
asyncio.run(main())