#!/usr/bin/env python3 """ 对比测试:基础转换 vs oh-my-writing-skill转换 """ import sys sys.path.append('.') from content_converter import ContentConverter, Article from oh_my_writing_converter import OhMyWritingConverter def create_test_article(): """创建测试文章""" return Article( title="Elastic 9.3.0 发布,增强AI工具和OTel支持", content="""Elastic公司近日发布了Elasticsearch 9.3.0版本,这是其开源搜索和分析引擎的最新更新。 主要新功能: 1. AI工具增强 - 新的向量搜索功能,支持更精确的语义搜索 - 改进的机器学习模型集成 - 增强的异常检测算法 2. OpenTelemetry支持 - 原生OTel数据收集 - 改进的分布式追踪 - 更好的可观测性集成 3. 性能优化 - 查询速度提升30% - 内存使用减少20% - 索引压缩率提高15% 4. 安全性增强 - 新的角色权限系统 - 改进的加密传输 - 增强的审计日志 技术细节: - 基于Lucene 9.10.0 - 支持JDK 21 - 兼容Kubernetes 1.28 - 新增REST API端点 应用场景: • 企业搜索 • 日志分析 • 安全监控 • 业务智能 Elastic 9.3.0现已提供下载,企业用户可以通过Elastic Cloud立即使用。""", source="InfoQ", url="https://www.infoq.cn/article/elastic-9-3-0-release", images=["elastic_logo.png", "search_demo.jpg"], publish_date="2026-03-15", author="技术编辑", category="数据库" ) def compare_conversions(): """对比两种转换方式""" print("=" * 80) print("小红书内容转换对比测试") print("=" * 80) # 创建测试文章 article = create_test_article() print(f"📝 测试文章: {article.title}") print(f"📰 来源: {article.source}") print(f"📊 内容长度: {len(article.content)} 字符") print() # 1. 基础转换 print("1️⃣ 基础转换结果:") print("-" * 40) base_converter = ContentConverter() base_result = base_converter._to_xiaohongshu_basic(article) # 显示前200字符 preview = base_result[:200] + "..." if len(base_result) > 200 else base_result print(preview) print(f"📏 长度: {len(base_result)} 字符") print() # 2. oh-my-writing-skill转换 print("2️⃣ oh-my-writing-skill转换结果:") print("-" * 40) try: writing_converter = OhMyWritingConverter() full_content = f"# {article.title}\n\n来源: {article.source}\n\n{article.content}" writing_result = writing_converter.convert_to_xiaohongshu(full_content, article.title) # 添加原文链接 writing_content = writing_result.content if article.url: writing_content += f"\n\n🔗 原文链接: {article.url}" # 显示前200字符 preview = writing_content[:200] + "..." if len(writing_content) > 200 else writing_content print(preview) print(f"📏 长度: {len(writing_content)} 字符") print(f"🎯 优化标题: {writing_result.title}") print(f"🏷️ 生成标签: {', '.join(writing_result.tags)}") print() # 3. 集成转换(content_converter中的to_xiaohongshu) print("3️⃣ 集成转换结果(自动选择):") print("-" * 40) integrated_result = base_converter.to_xiaohongshu(article) preview = integrated_result[:200] + "..." if len(integrated_result) > 200 else integrated_result print(preview) print(f"📏 长度: {len(integrated_result)} 字符") print() # 对比分析 print("📊 对比分析:") print("-" * 40) analysis = { '基础转换': { '长度': len(base_result), '特点': '格式规范,技术性强', '适合': '技术深度内容' }, 'oh-my-writing-skill': { '长度': len(writing_content), '特点': '亲切自然,互动性强', '适合': '小红书平台风格' }, '集成转换': { '长度': len(integrated_result), '特点': '智能选择,自动优化', '适合': '自动化发布' } } for method, info in analysis.items(): print(f"{method}:") print(f" 长度: {info['长度']} 字符") print(f" 特点: {info['特点']}") print(f" 适合: {info['适合']}") print() # 推荐建议 print("💡 推荐建议:") print("-" * 40) if len(writing_content) < 500: print("✅ oh-my-writing-skill转换效果更好,内容更符合小红书风格") print(" 建议使用集成转换,自动获得最佳效果") elif len(base_result) < 300: print("✅ 基础转换更简洁,适合技术性强的短内容") print(" 建议使用基础转换,保持技术专业性") else: print("✅ 两种转换各有优势,集成转换会自动选择") print(" 建议使用集成转换,享受智能优化") except Exception as e: print(f"❌ oh-my-writing-skill转换失败: {e}") print("✅ 将自动回退到基础转换") print() print("=" * 80) print("测试完成") print("=" * 80) def test_real_article(): """测试真实文章转换""" print("\n" + "=" * 80) print("真实文章转换测试") print("=" * 80) # 模拟从IT资讯系统获取的文章 real_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="操作系统" ) print(f"📝 文章: {real_article.title}") print(f"📰 来源: {real_article.source}") print() # 使用集成转换 converter = ContentConverter() result = converter.to_xiaohongshu(real_article) print("转换结果:") print("-" * 40) print(result[:300] + "..." if len(result) > 300 else result) print() print(f"📏 总长度: {len(result)} 字符") # 分析文章 analysis = converter.analyze_article(real_article) print("\n📊 文章分析:") print(f" 检测关键词: {', '.join(analysis['detected_keywords'][:5])}") print(f" 推荐标签: {', '.join(analysis['recommended_tags'][:5])}") print(f" 适合小红书: {'✅' if analysis['suitable_for_xhs'] else '❌'}") print() print("=" * 80) if __name__ == "__main__": compare_conversions() test_real_article() print("\n🎯 总结:") print("oh-my-writing-skill技能非常有价值,它提供了:") print("1. 专业的小红书内容调性指导") print("2. 详细的格式转换规则") print("3. 亲切自然的语气转换") print("4. 完整的禁忌事项") print("\n✅ 已成功集成到我们的内容转换器中") print("✅ 系统会自动选择最佳转换方式") print("✅ 转换失败时会自动回退到基础转换")