Files
autoclip/scripts/test_clips_api.py
2025-08-21 01:05:23 +08:00

97 lines
3.6 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
"""
测试切片API的数据转换
"""
import requests
import json
def test_clips_api():
"""测试切片API的数据转换"""
base_url = "http://localhost:8000/api/v1"
project_id = "1fdb0bf1-7f3c-44f7-a69d-90c5a1d26fbe"
print("🧪 开始测试切片API...")
# 1. 测试后端API
print("\n1. 测试后端API...")
try:
response = requests.get(f"{base_url}/clips/?project_id={project_id}")
if response.status_code == 200:
data = response.json()
print(f"✅ 后端API返回 {len(data['items'])} 个切片")
if data['items']:
clip = data['items'][0]
print(f" 第一个切片:")
print(f" - ID: {clip['id']}")
print(f" - 标题: {clip['title']}")
print(f" - 开始时间: {clip['start_time']}")
print(f" - 结束时间: {clip['end_time']}")
print(f" - 分数: {clip['score']}")
metadata = clip.get('clip_metadata', {})
print(f" - 推荐理由: {metadata.get('recommend_reason', '')}")
print(f" - 内容要点: {len(metadata.get('content', []))}")
else:
print(f"❌ 后端API失败: {response.status_code}")
return
except Exception as e:
print(f"❌ 后端API异常: {e}")
return
# 2. 测试前端API模拟
print("\n2. 测试前端API数据转换...")
try:
# 模拟前端的数据转换逻辑
clips = data['items']
converted_clips = []
for clip in clips:
# 转换秒数为时间字符串格式
def format_seconds_to_time(seconds):
hours = int(seconds // 3600)
minutes = int((seconds % 3600) // 60)
secs = int(seconds % 60)
return f"{hours:02d}:{minutes:02d}:{secs:02d}"
# 获取metadata中的内容
metadata = clip.get('clip_metadata', {})
converted_clip = {
'id': clip['id'],
'title': clip['title'],
'generated_title': clip['title'],
'start_time': format_seconds_to_time(clip['start_time']),
'end_time': format_seconds_to_time(clip['end_time']),
'final_score': clip['score'] or 0,
'recommend_reason': metadata.get('recommend_reason') or clip['description'] or '',
'outline': metadata.get('outline') or clip['description'] or '',
'content': metadata.get('content') or [clip['description'] or ''],
'chunk_index': metadata.get('chunk_index') or 0
}
converted_clips.append(converted_clip)
print(f"✅ 前端转换完成: {len(converted_clips)} 个切片")
if converted_clips:
clip = converted_clips[0]
print(f" 第一个转换后的切片:")
print(f" - ID: {clip['id']}")
print(f" - 标题: {clip['title']}")
print(f" - 开始时间: {clip['start_time']}")
print(f" - 结束时间: {clip['end_time']}")
print(f" - 分数: {clip['final_score']}")
print(f" - 推荐理由: {clip['recommend_reason'][:50]}...")
print(f" - 内容要点: {len(clip['content'])}")
except Exception as e:
print(f"❌ 前端转换异常: {e}")
return
print("\n🎉 切片API测试完成!")
if __name__ == "__main__":
test_clips_api()