446 lines
14 KiB
Python
446 lines
14 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
完整集成测试
|
||
测试oh-my-writing-skill与IT资讯系统的集成效果
|
||
"""
|
||
|
||
import os
|
||
import sys
|
||
import json
|
||
import tempfile
|
||
from pathlib import Path
|
||
|
||
# 添加路径
|
||
sys.path.append('/home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration')
|
||
|
||
def test_oh_my_writing_converter():
|
||
"""测试oh-my-writing-skill转换器"""
|
||
print("🧪 测试oh-my-writing-skill转换器...")
|
||
|
||
try:
|
||
from oh_my_writing_converter import OhMyWritingConverter
|
||
|
||
# 测试文章
|
||
test_content = """# Elasticsearch 9.3.0 发布,增强AI工具和OTel支持
|
||
|
||
Elastic公司近日发布了Elasticsearch 9.3.0版本,这是其开源搜索和分析引擎的最新更新。
|
||
|
||
## 主要新功能
|
||
|
||
### 1. AI工具增强
|
||
- 新的向量搜索功能,支持更精确的语义搜索
|
||
- 改进的机器学习模型集成
|
||
- 增强的异常检测算法
|
||
|
||
### 2. OpenTelemetry支持
|
||
- 原生OTel数据收集
|
||
- 改进的分布式追踪
|
||
- 更好的可观测性集成
|
||
|
||
### 3. 性能优化
|
||
- 查询速度提升30%
|
||
- 内存使用减少20%
|
||
- 索引压缩率提高15%
|
||
|
||
## 技术细节
|
||
|
||
基于Lucene 9.10.0构建,支持JDK 21,兼容Kubernetes 1.28,新增多个REST API端点。
|
||
|
||
## 应用场景
|
||
|
||
- 企业搜索
|
||
- 日志分析
|
||
- 安全监控
|
||
- 业务智能
|
||
|
||
Elastic 9.3.0现已提供下载,企业用户可以通过Elastic Cloud立即使用。"""
|
||
|
||
converter = OhMyWritingConverter()
|
||
result = converter.convert_to_xiaohongshu(test_content, "Elasticsearch 9.3.0 发布")
|
||
|
||
print(f"✅ 转换成功")
|
||
print(f" 优化标题: {result.title}")
|
||
print(f" 内容长度: {len(result.content)} 字符")
|
||
print(f" 生成标签: {result.tags}")
|
||
print(f" 封面建议: {len(result.cover_suggestions)} 条")
|
||
|
||
# 显示部分内容
|
||
print("\n📝 转换后的内容(前200字符):")
|
||
print("-" * 60)
|
||
print(result.content[:200] + "...")
|
||
print("-" * 60)
|
||
|
||
return True
|
||
|
||
except Exception as e:
|
||
print(f"❌ 转换器测试失败: {e}")
|
||
return False
|
||
|
||
def test_humanizer_cn():
|
||
"""测试中文去AI化"""
|
||
print("\n🧪 测试中文去AI化...")
|
||
|
||
try:
|
||
from humanizer_cn import HumanizerCN
|
||
|
||
# AI痕迹明显的文本
|
||
ai_text = """该软件的发布标志着人工智能领域的一个重要里程碑,彰显了公司在技术创新方面的不懈追求。此外,值得一提的是,该产品具有高性能、低功耗、易扩展三大优势。业内专家普遍认为,这将对整个行业产生深远影响。尽管面临诸多挑战,但我们有理由相信,未来可期。"""
|
||
|
||
humanizer = HumanizerCN()
|
||
result = humanizer.analyze_and_humanize(ai_text)
|
||
|
||
print(f"✅ 去AI化成功")
|
||
print(f" 检测到AI模式: {result['detection']['total_patterns']} 处")
|
||
print(f" 原文长度: {result['stats']['original_length']} 字符")
|
||
print(f" 处理后长度: {result['stats']['humanized_length']} 字符")
|
||
print(f" 长度变化: {result['stats']['length_change_percent']}%")
|
||
|
||
# 显示处理后的文本
|
||
print("\n📝 处理后的文本:")
|
||
print("-" * 60)
|
||
print(result['humanized_text'])
|
||
print("-" * 60)
|
||
|
||
return True
|
||
|
||
except Exception as e:
|
||
print(f"❌ 去AI化测试失败: {e}")
|
||
return False
|
||
|
||
def test_content_converter_integration():
|
||
"""测试内容转换器集成"""
|
||
print("\n🧪 测试内容转换器集成...")
|
||
|
||
try:
|
||
from content_converter import ContentConverter, Article
|
||
|
||
# 创建测试文章
|
||
article = Article(
|
||
title="微软发布Windows 12预览版,全面集成AI助手",
|
||
content="""微软近日向开发者发布了Windows 12的早期预览版本,这是其操作系统的重要更新。
|
||
|
||
核心特性:
|
||
|
||
1. AI助手深度集成
|
||
- Copilot成为系统级助手
|
||
- 智能文件管理
|
||
- 自动化工作流
|
||
|
||
2. 性能大幅提升
|
||
- 启动速度加快40%
|
||
- 内存管理优化
|
||
- 电池续航延长
|
||
|
||
3. 安全增强
|
||
- 新的AI威胁检测
|
||
- 硬件级安全芯片支持
|
||
- 零信任架构
|
||
|
||
4. 开发者工具
|
||
- 新的AI开发框架
|
||
- 改进的WSL 3.0
|
||
- 云原生开发支持
|
||
|
||
技术亮点:
|
||
- 基于AI的界面自适应
|
||
- 跨设备无缝同步
|
||
- 新的应用商店
|
||
- 改进的游戏模式
|
||
|
||
发布时间表:
|
||
• 2026年Q2:开发者预览
|
||
• 2026年Q3:公开测试
|
||
• 2026年Q4:正式发布
|
||
|
||
Windows 12将免费提供给Windows 10/11用户升级。""",
|
||
source="WIRED",
|
||
url="https://www.wired.com/story/windows-12-preview",
|
||
images=["windows12_ui.jpg", "ai_demo.png"],
|
||
publish_date="2026-03-14",
|
||
author="科技记者",
|
||
category="操作系统"
|
||
)
|
||
|
||
converter = ContentConverter()
|
||
result = converter.to_xiaohongshu(article)
|
||
|
||
print(f"✅ 集成转换成功")
|
||
print(f" 内容长度: {len(result)} 字符")
|
||
|
||
# 检查是否使用了oh-my-writing-skill
|
||
if "姐妹们" in result or "家人们" in result or "朋友们" in result:
|
||
print(f" ✅ 检测到oh-my-writing-skill风格")
|
||
else:
|
||
print(f" ⚠️ 未检测到oh-my-writing-skill风格,可能使用了基础转换")
|
||
|
||
# 显示部分内容
|
||
print("\n📝 转换后的内容(前300字符):")
|
||
print("-" * 60)
|
||
print(result[:300] + "...")
|
||
print("-" * 60)
|
||
|
||
return True
|
||
|
||
except Exception as e:
|
||
print(f"❌ 内容转换器测试失败: {e}")
|
||
return False
|
||
|
||
def test_xiaohongshu_publisher_integration():
|
||
"""测试小红书发布器集成"""
|
||
print("\n🧪 测试小红书发布器集成...")
|
||
|
||
try:
|
||
from xiaohongshu_publisher import XiaohongshuPublisher
|
||
|
||
# 测试文章数据
|
||
article_data = {
|
||
'title': 'AI写作工具对比评测',
|
||
'content': '本文对比了几款主流的AI写作工具,包括Claude、ChatGPT和Notion AI。',
|
||
'source': 'TechReview',
|
||
'tags': ['AI', '写作工具', '效率提升']
|
||
}
|
||
|
||
publisher = XiaohongshuPublisher()
|
||
|
||
# 测试格式转换
|
||
formatted = publisher._format_xiaohongshu_content(
|
||
article_data['title'],
|
||
article_data['content'],
|
||
article_data['source'],
|
||
article_data['tags']
|
||
)
|
||
|
||
print(f"✅ 发布器格式转换成功")
|
||
print(f" 内容长度: {len(formatted)} 字符")
|
||
|
||
# 检查是否使用了oh-my-writing-skill
|
||
if "姐妹们" in formatted or "家人们" in formatted or "朋友们" in formatted:
|
||
print(f" ✅ 检测到oh-my-writing-skill风格")
|
||
else:
|
||
print(f" ⚠️ 未检测到oh-my-writing-skill风格")
|
||
|
||
# 显示部分内容
|
||
print("\n📝 格式化后的内容(前200字符):")
|
||
print("-" * 60)
|
||
print(formatted[:200] + "...")
|
||
print("-" * 60)
|
||
|
||
return True
|
||
|
||
except Exception as e:
|
||
print(f"❌ 发布器测试失败: {e}")
|
||
return False
|
||
|
||
def test_it_system_integration():
|
||
"""测试IT系统集成"""
|
||
print("\n🧪 测试IT系统集成...")
|
||
|
||
# 检查配置文件
|
||
config_file = "/home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration/oh_my_writing_config.json"
|
||
|
||
if os.path.exists(config_file):
|
||
with open(config_file, 'r', encoding='utf-8') as f:
|
||
config = json.load(f)
|
||
|
||
print(f"✅ 集成配置文件存在")
|
||
print(f" 启用状态: {config['oh_my_writing_integration']['enabled']}")
|
||
print(f" 集成日期: {config['oh_my_writing_integration']['integration_date']}")
|
||
|
||
integrated_skills = config['oh_my_writing_integration']['integrated_skills']
|
||
print(f" 已集成技能: {len(integrated_skills)} 个")
|
||
|
||
for skill in integrated_skills:
|
||
print(f" • {skill['name']} ({skill['id']})")
|
||
|
||
return True
|
||
else:
|
||
print(f"❌ 集成配置文件不存在: {config_file}")
|
||
return False
|
||
|
||
def test_scheduler_integration():
|
||
"""测试调度脚本集成"""
|
||
print("\n🧪 测试调度脚本集成...")
|
||
|
||
scheduler_file = "/home/ubuntu/.nanobot/workspace/InformationCrawler/main_scheduler_with_xhs.sh"
|
||
|
||
if os.path.exists(scheduler_file):
|
||
with open(scheduler_file, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 检查是否集成了oh-my-writing-skill
|
||
if 'oh-my-writing-skill' in content or 'oh_my_writing' in content:
|
||
print(f"✅ 调度脚本已集成oh-my-writing-skill")
|
||
|
||
# 提取相关部分
|
||
lines = content.split('\n')
|
||
for i, line in enumerate(lines):
|
||
if 'oh-my-writing-skill' in line or 'oh_my_writing' in line:
|
||
print(f" 第{i+1}行: {line.strip()}")
|
||
|
||
return True
|
||
else:
|
||
print(f"❌ 调度脚本未集成oh-my-writing-skill")
|
||
return False
|
||
else:
|
||
print(f"❌ 调度脚本不存在: {scheduler_file}")
|
||
return False
|
||
|
||
def create_integration_summary():
|
||
"""创建集成总结"""
|
||
print("\n" + "=" * 80)
|
||
print("🎯 oh-my-writing-skill 集成总结")
|
||
print("=" * 80)
|
||
|
||
summary = {
|
||
'oh_my_writing_converter': test_oh_my_writing_converter(),
|
||
'humanizer_cn': test_humanizer_cn(),
|
||
'content_converter_integration': test_content_converter_integration(),
|
||
'xiaohongshu_publisher_integration': test_xiaohongshu_publisher_integration(),
|
||
'it_system_integration': test_it_system_integration(),
|
||
'scheduler_integration': test_scheduler_integration()
|
||
}
|
||
|
||
print("\n📊 集成测试结果:")
|
||
print("-" * 40)
|
||
|
||
success_count = 0
|
||
total_count = len(summary)
|
||
|
||
for test_name, result in summary.items():
|
||
status = "✅" if result else "❌"
|
||
if result:
|
||
success_count += 1
|
||
print(f"{status} {test_name}")
|
||
|
||
print(f"\n🎯 总体成功率: {success_count}/{total_count} ({success_count/total_count*100:.1f}%)")
|
||
|
||
if success_count == total_count:
|
||
print("\n🎉 所有测试通过!oh-my-writing-skill已完全集成!")
|
||
elif success_count >= total_count * 0.7:
|
||
print(f"\n⚠️ 大部分测试通过 ({success_count}/{total_count}),部分功能需要检查")
|
||
else:
|
||
print(f"\n❌ 集成存在问题,只有 {success_count}/{total_count} 个测试通过")
|
||
|
||
# 建议
|
||
print("\n💡 建议:")
|
||
if not summary['scheduler_integration']:
|
||
print("1. 检查调度脚本集成,确保oh-my-writing-skill优化步骤已添加")
|
||
if not summary['content_converter_integration']:
|
||
print("2. 检查content_converter.py的集成代码")
|
||
if not summary['humanizer_cn']:
|
||
print("3. 检查humanizer_cn.py的实现")
|
||
|
||
print("\n🚀 明天16:00,IT资讯系统将自动:")
|
||
print(" 1. 抓取最新IT资讯")
|
||
print(" 2. 使用oh-my-writing-skill优化内容")
|
||
print(" 3. 去AI化处理,让文章更自然")
|
||
print(" 4. 转换为小红书风格格式")
|
||
print(" 5. 发布到小红书")
|
||
print(" 6. 发送邮件到QQ邮箱")
|
||
|
||
print("\n" + "=" * 80)
|
||
|
||
def main():
|
||
"""主函数"""
|
||
print("🚀 oh-my-writing-skill 完整集成测试")
|
||
print("=" * 80)
|
||
|
||
# 检查技能目录
|
||
skill_dir = "/home/ubuntu/oh-my-writing-skill"
|
||
if not os.path.exists(skill_dir):
|
||
print(f"❌ oh-my-writing-skill目录不存在: {skill_dir}")
|
||
print("请确保已下载技能到该目录")
|
||
return
|
||
|
||
print(f"✅ oh-my-writing-skill目录存在: {skill_dir}")
|
||
|
||
# 执行测试
|
||
create_integration_summary()
|
||
|
||
# 生成测试报告
|
||
report_file = "/home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration/integration_test_report.md"
|
||
|
||
report = f"""# oh-my-writing-skill 集成测试报告
|
||
|
||
## 测试时间
|
||
{os.popen('date').read().strip()}
|
||
|
||
## 测试环境
|
||
- 系统: {os.popen('uname -a').read().strip()}
|
||
- Python: {os.popen('python3 --version').read().strip()}
|
||
- 技能目录: {skill_dir}
|
||
- 集成目录: /home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration
|
||
|
||
## 测试结果
|
||
|
||
### 1. oh-my-writing-skill转换器
|
||
- 状态: {'✅ 通过' if test_oh_my_writing_converter() else '❌ 失败'}
|
||
- 功能: 将通用文章转换为小红书格式
|
||
|
||
### 2. 中文去AI化
|
||
- 状态: {'✅ 通过' if test_humanizer_cn() else '❌ 失败'}
|
||
- 功能: 消除AI写作痕迹,让文章更自然
|
||
|
||
### 3. 内容转换器集成
|
||
- 状态: {'✅ 通过' if test_content_converter_integration() else '❌ 失败'}
|
||
- 功能: 自动选择最佳转换方式
|
||
|
||
### 4. 小红书发布器集成
|
||
- 状态: {'✅ 通过' if test_xiaohongshu_publisher_integration() else '❌ 失败'}
|
||
- 功能: 集成oh-my-writing-skill风格
|
||
|
||
### 5. IT系统集成
|
||
- 状态: {'✅ 通过' if test_it_system_integration() else '❌ 失败'}
|
||
- 功能: 配置文件集成
|
||
|
||
### 6. 调度脚本集成
|
||
- 状态: {'✅ 通过' if test_scheduler_integration() else '❌ 失败'}
|
||
- 功能: 自动化流程集成
|
||
|
||
## 总体评估
|
||
|
||
集成完成度: {'高' if sum([test_oh_my_writing_converter(), test_humanizer_cn(), test_content_converter_integration(), test_xiaohongshu_publisher_integration(), test_it_system_integration(), test_scheduler_integration()]) >= 5 else '中'}
|
||
|
||
## 使用方式
|
||
|
||
### 手动测试
|
||
```bash
|
||
# 测试转换器
|
||
cd /home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration
|
||
python3 oh_my_writing_converter.py test
|
||
|
||
# 测试去AI化
|
||
python3 humanizer_cn.py test
|
||
|
||
# 测试集成
|
||
python3 test_full_integration.py
|
||
```
|
||
|
||
### 自动运行
|
||
系统已配置为每天16:00自动运行,包含:
|
||
1. IT资讯抓取
|
||
2. oh-my-writing-skill优化
|
||
3. 小红书发布
|
||
4. 邮件发送
|
||
|
||
## 注意事项
|
||
|
||
1. 确保Cookie有效,否则小红书发布会失败
|
||
2. 网络连接正常,确保能访问目标网站
|
||
3. 定期检查日志文件,监控系统运行状态
|
||
|
||
## 后续优化建议
|
||
|
||
1. 集成更多oh-my-writing-skill技能(如深度研究、图片搜索)
|
||
2. 添加更多内容来源网站
|
||
3. 优化图片生成算法
|
||
4. 添加更多数据分析功能
|
||
"""
|
||
|
||
with open(report_file, 'w', encoding='utf-8') as f:
|
||
f.write(report)
|
||
|
||
print(f"📋 测试报告已保存: {report_file}")
|
||
|
||
if __name__ == "__main__":
|
||
main() |