logo
1
0
Login
Jaguarliu<18829516908@163.com>
feat:学术论文增加中英文对照功能

AI学术论文大模型集成功能

项目概述

本项目为AI学术论文日报系统集成了大模型翻译功能,支持将英文学术论文标题和摘要翻译为中文,并提供翻译质量检测、错误处理和服务监控等完整功能。

功能特性

🚀 核心功能

  • 多模型支持: 支持Qwen和DeepSeek大模型API
  • 智能翻译: 自动翻译论文标题和摘要
  • 质量检测: 实时评估翻译质量并提供改进建议
  • 中英对照: 前端同时显示中英文内容
  • 配置管理: 灵活的翻译参数配置

🛡️ 可靠性保障

  • 错误处理: 智能错误分类和重试机制
  • 熔断保护: 防止服务雪崩的熔断器
  • 服务监控: 实时健康状态监控
  • 性能优化: 最小化性能开销

系统架构

┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ 前端界面 │ │ ArXiv爬虫 │ │ 大模型API │ │ (中英对照) │◄───│ (集成翻译) │◄───│ (Qwen/DeepSeek)│ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ ▼ ┌──────────────────┐ │ 翻译服务层 │ │ ┌──────────────┐ │ │ │ 质量检测器 │ │ │ └──────────────┘ │ │ ┌──────────────┐ │ │ │ 错误处理器 │ │ │ └──────────────┘ │ │ ┌──────────────┐ │ │ │ 熔断器 │ │ │ └──────────────┘ │ └──────────────────┘

快速开始

1. 安装依赖

pip install langchain openai requests python-dotenv

2. 配置API密钥

复制环境变量模板:

cp .env.example .env

编辑 .env 文件,填入实际的API密钥:

# Qwen API配置 QWEN_API_KEY=your_qwen_api_key_here QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 QWEN_MODEL=qwen-turbo # DeepSeek API配置 DEEPSEEK_API_KEY=your_deepseek_api_key_here DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-chat

3. 配置翻译服务

编辑 translation_config.json

{ "providers": ["qwen", "deepseek"], "default_provider": "qwen", "qwen": { "model": "qwen-turbo", "temperature": 0.3, "max_tokens": 2000, "timeout": 30, "max_retries": 3 }, "deepseek": { "model": "deepseek-chat", "temperature": 0.3, "max_tokens": 2000, "timeout": 30, "max_retries": 3 } }

4. 运行测试

# 测试翻译功能 python test_translation_mock.py # 测试错误处理 python test_error_handling.py # 监控服务健康状态 python translation_monitor.py --mode report

5. 启动服务

# 启动前端服务 npm run dev # 运行爬虫(包含翻译功能) python arxiv_crawler.py

详细配置

翻译质量等级

等级分数范围描述
优秀90-100翻译准确,语言流畅
良好75-89翻译基本准确,略有瑕疵
一般60-74翻译可理解,存在明显问题
较差< 60翻译质量不佳,需要改进

错误处理策略

错误类型重试策略处理方式
网络错误指数退避重试最多3次重试
认证错误不重试立即失败
频率限制延迟重试等待指定时间
配额超限不重试切换提供商
超时错误重试增加超时时间

熔断器配置

  • 失败阈值: 连续3次失败触发熔断
  • 超时时间: 30秒后尝试恢复
  • 半开状态: 允许一次测试请求

API使用示例

基础翻译

from llm_translator import LLMTranslator from translation_config import TranslationConfig # 加载配置 config = TranslationConfig.load_from_file('translation_config.json') # 创建翻译器 translator = LLMTranslator('qwen', config.get_provider_config('qwen')) # 执行翻译 result = translator.translate_text( text="Artificial Intelligence in Healthcare", source_lang="en", target_lang="zh" ) print(f"翻译结果: {result['translated_text']}") print(f"质量等级: {result['quality_level']}") print(f"质量分数: {result['quality_score']}")

论文翻译

# 翻译整篇论文 paper_result = translator.translate_paper({ 'title': 'Deep Learning for Natural Language Processing', 'abstract': 'This paper presents a comprehensive survey...' }) print(f"中文标题: {paper_result['title_zh']}") print(f"中文摘要: {paper_result['abstract_zh']}") print(f"翻译质量: {paper_result['translation_quality']}")

服务监控

from translation_monitor import TranslationMonitor # 创建监控器 monitor = TranslationMonitor() # 检查服务健康状态 health_status = monitor.monitor_all_services() print(f"总体状态: {health_status['overall_status']}") # 获取统计信息 stats = monitor.get_service_statistics() print(f"服务可用性: {stats['services']['qwen']['availability']}") # 生成健康报告 report = monitor.generate_health_report() print(report)

文件结构

ai-daily/ ├── llm_translator.py # 大模型翻译器 ├── translation_config.py # 翻译配置管理 ├── translation_quality.py # 翻译质量检测 ├── translation_error_handler.py # 错误处理机制 ├── translation_monitor.py # 服务监控工具 ├── arxiv_crawler.py # ArXiv爬虫(集成翻译) ├── translation_config.json # 翻译配置文件 ├── .env.example # 环境变量模板 ├── test_translation_mock.py # 模拟测试脚本 ├── test_error_handling.py # 错误处理测试 └── README_LLM_INTEGRATION.md # 本文档

前端集成

数据格式

前端接收的论文数据格式:

{ "title": "英文标题", "title_zh": "中文标题", "abstract": "英文摘要", "abstract_zh": "中文摘要", "translation_quality": "优", "authors": ["作者列表"], "published": "2024-01-01", "url": "论文链接" }

显示效果

  • 标题和摘要支持中英文对照显示
  • 翻译质量标识(优/良/一般/较差)
  • 保持原有的米黄色报纸风格设计

性能优化

缓存策略

  • 翻译结果本地缓存,避免重复翻译
  • 配置文件热重载,无需重启服务

并发处理

  • 支持多线程并发翻译
  • 智能负载均衡,自动选择最佳提供商

资源管理

  • 连接池复用,减少连接开销
  • 内存使用优化,防止内存泄漏

故障排除

常见问题

Q: 翻译失败,提示API密钥无效 A: 检查 .env 文件中的API密钥是否正确配置

Q: 翻译质量评分过低 A: 调整 translation_quality.py 中的评分标准,或优化翻译提示词

Q: 服务频繁触发熔断器 A: 检查网络连接,调整重试策略和熔断器阈值

Q: 前端不显示中文翻译 A: 确认 papers.json 文件格式正确,包含 title_zhabstract_zh 字段

日志分析

查看详细日志:

# 查看翻译日志 tail -f translation.log # 查看错误日志 grep "ERROR" translation.log # 查看性能统计 grep "performance" translation.log

扩展开发

添加新的大模型提供商

  1. llm_translator.py 中添加新的客户端初始化逻辑
  2. 更新 translation_config.py 支持新的配置参数
  3. translation_config.json 中添加新提供商配置
  4. 更新环境变量模板 .env.example

自定义质量检测算法

修改 translation_quality.py 中的 detect_quality 方法:

def detect_quality(self, original_text: str, translated_text: str, source_lang: str, target_lang: str) -> QualityResult: # 实现自定义质量检测逻辑 pass

扩展错误处理策略

translation_error_handler.py 中添加新的错误类型和处理策略:

class ErrorType(Enum): # 添加新的错误类型 CUSTOM_ERROR = "custom_error"

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

贡献指南

欢迎提交 Issue 和 Pull Request 来改进本项目。

更新日志

v1.0.0 (2024-01-01)

  • ✨ 初始版本发布
  • 🚀 支持Qwen和DeepSeek大模型
  • 🛡️ 完整的错误处理和监控机制
  • 📊 翻译质量检测功能
  • 🎨 前端中英文对照显示

如有问题,请联系开发团队或提交Issue。