96 lines
2.7 KiB
Python
96 lines
2.7 KiB
Python
"""
|
||
测试AI日志记录功能
|
||
"""
|
||
import sys
|
||
import os
|
||
from pathlib import Path
|
||
|
||
# 添加项目根目录到路径
|
||
project_root = Path(__file__).parent.parent
|
||
sys.path.insert(0, str(project_root))
|
||
|
||
from services.ai_logger import get_ai_logger
|
||
|
||
def test_logger():
|
||
"""测试日志记录器"""
|
||
print("=" * 60)
|
||
print("测试AI日志记录功能")
|
||
print("=" * 60)
|
||
|
||
# 获取日志记录器
|
||
logger = get_ai_logger()
|
||
|
||
# 测试记录一次对话
|
||
print("\n1. 测试记录对话...")
|
||
prompt = "请从以下文本中提取信息:张三,男,1980年5月出生,某公司总经理"
|
||
api_request = {
|
||
"endpoint": "http://test.example.com/v1/chat/completions",
|
||
"model": "test-model",
|
||
"messages": [
|
||
{"role": "system", "content": "你是一个数据提取助手"},
|
||
{"role": "user", "content": prompt}
|
||
],
|
||
"temperature": 0.2,
|
||
"max_tokens": 1000,
|
||
"enable_thinking": False
|
||
}
|
||
api_response = {
|
||
"choices": [
|
||
{
|
||
"message": {
|
||
"content": '{"target_name": "张三", "target_gender": "男"}'
|
||
}
|
||
}
|
||
]
|
||
}
|
||
extracted_data = {
|
||
"target_name": "张三",
|
||
"target_gender": "男",
|
||
"target_date_of_birth": "1980年05月"
|
||
}
|
||
|
||
log_file = logger.log_conversation(
|
||
prompt=prompt,
|
||
api_request=api_request,
|
||
api_response=api_response,
|
||
extracted_data=extracted_data,
|
||
error=None,
|
||
session_id="test_session_001"
|
||
)
|
||
|
||
if log_file:
|
||
print(f"✓ 日志已保存: {log_file}")
|
||
else:
|
||
print("✗ 日志保存失败")
|
||
return
|
||
|
||
# 测试读取日志
|
||
print("\n2. 测试读取日志...")
|
||
log_data = logger.read_log(log_file)
|
||
if log_data:
|
||
print(f"✓ 日志读取成功")
|
||
print(f" 时间戳: {log_data['timestamp']}")
|
||
print(f" 会话ID: {log_data['session_id']}")
|
||
print(f" 成功: {log_data['success']}")
|
||
print(f" 提取的字段数: {len(log_data.get('extracted_data', {}))}")
|
||
else:
|
||
print("✗ 日志读取失败")
|
||
return
|
||
|
||
# 测试获取最近的日志
|
||
print("\n3. 测试获取最近的日志...")
|
||
recent_logs = logger.get_recent_logs(limit=5)
|
||
print(f"✓ 找到 {len(recent_logs)} 条最近的日志")
|
||
for i, log_file in enumerate(recent_logs, 1):
|
||
print(f" {i}. {Path(log_file).name}")
|
||
|
||
print("\n" + "=" * 60)
|
||
print("测试完成!")
|
||
print("=" * 60)
|
||
print(f"\n日志目录: {logger.log_dir}")
|
||
print(f"日志状态: {'启用' if logger.enabled else '禁用'}")
|
||
|
||
if __name__ == "__main__":
|
||
test_logger()
|
||
|