logo
0
0
WeChat 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。