Files
akmon/uni_modules/ak-ai-news/README.md
2026-01-20 08:04:15 +08:00

817 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AK-AI-News 多语言AI新闻系统
一个功能完整的多语言AI驱动新闻系统提供内容翻译、分析、智能对话和个性化推荐等服务。
## 🌟 主要特性
### 🔄 多语言翻译服务 (AITranslationService)
- **多提供商支持**: OpenAI、Google Translate、百度翻译
- **智能缓存机制**: LRU缓存策略减少重复翻译成本
- **批量处理**: 支持批量翻译,提高处理效率
- **质量评估**: 自动评估翻译质量,确保内容准确性
- **语言检测**: 自动识别源语言
- **成本控制**: 实时监控翻译成本
### 🔍 内容分析服务 (AIContentAnalysisService)
- **情感分析**: 分析内容情感倾向(正面/负面/中性)
- **实体识别**: 提取人名、地名、组织等关键实体
- **主题提取**: 自动识别文章主题和关键词
- **内容分类**: 智能分类新闻内容(政治、经济、科技等)
- **质量评估**: 评估内容可读性、可信度、客观性
- **毒性检测**: 识别有害或不当内容
- **自动摘要**: 生成内容摘要
### 💬 智能对话服务 (AIChatService)
- **多语言对话**: 支持多种语言的自然对话
- **上下文理解**: 维护对话上下文,提供连贯回复
- **新闻助手**: 专业的新闻查询和分析助手
- **会话管理**: 完整的会话生命周期管理
- **个性化回复**: 基于用户偏好的个性化响应
- **实时翻译**: 对话中的实时语言切换
### 🎯 智能推荐服务 (AIRecommendationService)
- **个性化推荐**: 基于用户行为的个性化内容推荐
- **多算法支持**: 协同过滤、内容过滤、混合算法
- **热门推荐**: 基于热度和时效性的推荐
- **相似内容**: 基于内容相似度的推荐
- **用户画像**: 详细的用户兴趣和行为分析
- **多样性控制**: 确保推荐内容的多样性
### ⚙️ 自动化处理管道 (ContentProcessingPipeline)
- **全流程自动化**: 从内容获取到发布的自动化处理
- **可配置步骤**: 灵活配置处理步骤和参数
- **批量处理**: 支持大批量内容的并行处理
- **错误恢复**: 完善的错误处理和回滚机制
- **质量控制**: 多层次的内容质量检查
- **状态监控**: 实时监控处理进度和状态
### 🎛️ 服务管理器 (AIServiceManager)
- **统一管理**: 所有AI服务的统一入口和管理
- **负载均衡**: 智能选择最佳AI提供商
- **健康监控**: 实时监控服务健康状态
- **成本控制**: 严格的成本限制和预警机制
- **性能监控**: 详细的性能统计和分析
- **缓存管理**: 统一的缓存策略和管理
## 🚀 快速开始
### 1. 安装和配置
```typescript
import {
AIServiceManager,
type AIServiceConfig
} from '@/uni_modules/ak-ai-news'
// 配置AI服务
const aiConfig: AIServiceConfig = {
openai: {
apiKey: 'your-openai-api-key',
model: 'gpt-3.5-turbo',
maxTokens: 2000,
temperature: 0.7
},
google: {
apiKey: 'your-google-api-key',
model: 'gemini-pro'
},
baidu: {
apiKey: 'your-baidu-api-key',
secretKey: 'your-baidu-secret-key',
model: 'ernie-bot'
},
costLimits: {
dailyUSD: 100,
monthlyUSD: 2000,
perRequestUSD: 5
}
}
// 创建服务管理器
const serviceManager = new AIServiceManager(aiConfig)
await serviceManager.initialize()
```
### 2. 翻译服务使用
```typescript
const translationService = serviceManager.getTranslationService()
// 单个翻译
const result = await translationService.translateText(
'人工智能正在改变世界',
'en',
'zh-CN',
{
provider: 'openai',
culturalAdaptation: true
}
)
// 批量翻译
const batchResult = await translationService.translateBatch(
['新闻1', '新闻2', '新闻3'],
'en',
'zh-CN'
)
```
### 3. 内容分析使用
```typescript
const analysisService = serviceManager.getAnalysisService()
const analysis = await analysisService.analyzeContent(
'今日股市大涨,投资者信心提升...',
{
types: ['sentiment', 'entities', 'categories', 'summary'],
language: 'zh-CN'
}
)
console.log('情感分析:', analysis.data?.sentimentLabel)
console.log('关键实体:', analysis.data?.entities)
console.log('内容分类:', analysis.data?.categories)
```
### 4. 智能对话使用
```typescript
const chatService = serviceManager.getChatService()
// 创建会话
const session = await chatService.createChatSession('user123', 'zh-CN')
// 发送消息
const response = await chatService.sendMessage(
session.data!.id,
'今天有什么重要新闻?'
)
console.log('AI回复:', response.data?.content)
```
### 5. 推荐服务使用
```typescript
const recommendationService = serviceManager.getRecommendationService()
// 记录用户行为
await recommendationService.recordUserBehavior({
userId: 'user123',
contentId: 'news001',
actionType: 'view',
timestamp: Date.now(),
duration: 120
})
// 获取个性化推荐
const recommendations = await recommendationService.getPersonalizedRecommendations(
'user123',
availableNews,
{
algorithm: 'hybrid',
maxResults: 10
}
)
```
### 6. 自动化处理管道
```typescript
const pipeline = serviceManager.getProcessingPipeline()
// 处理单个内容
const result = await pipeline.processContent({
id: 'news001',
title: '突破性AI技术发布',
content: '详细内容...',
originalLanguage: 'zh-CN',
publishedAt: Date.now()
})
// 批量处理
const batchResult = await pipeline.processBatch(newsArray)
```
## 📊 系统架构
```mermaid
graph TB
A[AIServiceManager] --> B[AITranslationService]
A --> C[AIContentAnalysisService]
A --> D[AIChatService]
A --> E[AIRecommendationService]
A --> F[ContentProcessingPipeline]
B --> G[OpenAI API]
B --> H[Google Translate]
B --> I[Baidu Translate]
C --> G
C --> J[Content Analysis Engine]
D --> G
D --> K[Chat Context Manager]
E --> L[Recommendation Engine]
E --> M[User Profile System]
F --> B
F --> C
F --> N[Processing Queue]
A --> O[Monitoring & Stats]
A --> P[Cost Control]
A --> Q[Health Check]
```
## 🎛️ 配置选项
### AI服务配置 (AIServiceConfig)
```typescript
interface AIServiceConfig {
openai?: {
apiKey: string
model: string
baseURL?: string
maxTokens: number
temperature: number
}
google?: {
apiKey: string
projectId?: string
model: string
}
baidu?: {
apiKey: string
secretKey: string
model: string
}
costLimits?: {
dailyUSD: number
monthlyUSD: number
perRequestUSD: number
}
qualityThresholds?: {
translation: number
sentiment: number
credibility: number
}
}
```
### 缓存配置 (CacheOptions)
```typescript
interface CacheOptions {
enabled: boolean
ttlHours: number // 缓存过期时间(小时)
maxSize: number // 最大缓存条目数
strategy: 'lru' | 'fifo' | 'ttl' // 缓存策略
}
```
### 推荐配置 (RecommendationConfig)
```typescript
interface RecommendationConfig {
algorithm: 'collaborative_filtering' | 'content_based' | 'hybrid' | 'trending'
maxResults: number
diversityWeight: number // 多样性权重
freshnessWeight: number // 新鲜度权重
personalizedWeight: number // 个性化权重
qualityThreshold: number // 质量阈值
excludeViewed: boolean // 排除已浏览内容
}
```
## 📈 监控和统计
系统提供详细的监控和统计功能:
### 服务健康监控
- 实时监控各服务状态
- 响应时间和错误率统计
- 自动故障检测和告警
### 成本控制
- 实时成本监控
- 每日/每月成本限制
- 成本预警和控制
### 性能统计
- 请求量和成功率
- 平均响应时间
- 缓存命中率
- 用户满意度
```typescript
// 获取系统统计
const stats = serviceManager.getManagerStatistics()
console.log('总请求数:', stats.totalRequests)
console.log('成功率:', stats.successfulRequests / stats.totalRequests)
console.log('总成本:', stats.totalCost)
// 获取服务健康状态
const health = serviceManager.getServicesHealth()
console.log('服务状态:', health)
```
## 🔧 高级功能
### 🚀 性能监控与优化
系统内置了完整的性能监控和自动优化功能:
```typescript
import { AIPerformanceMonitor, defaultPerformanceConfig } from 'ak-ai-news'
// 创建性能监控器
const monitor = new AIPerformanceMonitor({
...defaultPerformanceConfig,
enableAutoOptimization: true
})
// 启动监控
monitor.startMonitoring()
// 获取系统健康状态
const health = monitor.getSystemHealth()
console.log('系统状态:', health.status) // healthy/warning/critical
console.log('健康评分:', health.score) // 0-100
// 获取性能统计
const stats = monitor.getPerformanceStats(startTime, endTime)
console.log('平均延迟:', stats.timing.averageLatency)
console.log('成功率:', stats.requests.successRate)
console.log('总成本:', stats.costs.total)
// 获取优化建议
const recommendations = monitor.getOptimizationRecommendations()
recommendations.forEach(rec => {
console.log(`${rec.type}: ${rec.description}`)
})
```
### 🛡️ 高级错误处理
系统提供了完善的错误处理和恢复机制:
```typescript
import { AIErrorHandler, defaultErrorHandlingConfig, ErrorCategory } from 'ak-ai-news'
// 创建错误处理器
const errorHandler = new AIErrorHandler({
...defaultErrorHandlingConfig,
retryPolicy: {
maxAttempts: 5,
baseDelayMs: 1000,
maxDelayMs: 30000,
backoffMultiplier: 2,
jitterEnabled: true
},
circuitBreaker: {
failureThreshold: 5,
recoveryTimeoutMs: 60000,
halfOpenMaxCalls: 3,
monitoringWindowMs: 300000
},
fallback: {
enabled: true,
fallbackProviders: ['openai', 'google', 'baidu'],
gracefulDegradation: true
}
})
// 执行带错误处理的操作
const result = await errorHandler.executeWithRetry(
async () => {
// 您的AI操作
return await translationService.translateText('Hello', 'zh-CN', 'en')
},
{
operationName: 'translation',
provider: 'openai',
retryable: true
}
)
if (result.success) {
console.log('操作成功:', result.data)
console.log('尝试次数:', result.attempts.length)
} else {
console.log('操作失败:', result.error?.message)
console.log('错误类别:', result.error?.category)
}
```
### 📊 实时监控面板
系统提供了一个完整的Vue.js监控面板组件
```vue
<template>
<AINewsDashboard />
</template>
<script setup>
import { AINewsDashboard } from 'ak-ai-news/components'
</script>
```
监控面板功能:
- **实时系统状态**CPU、内存、网络状态
- **性能指标**:响应时间、吞吐量、成功率
- **成本监控**:各提供商成本分析
- **错误追踪**:错误类型、频率、趋势分析
- **优化建议**:自动生成性能优化建议
- **告警系统**:实时告警和通知
### 🧪 综合测试套件
系统提供了完整的测试解决方案:
```typescript
import { runCompleteTestSuite, defaultTestConfig } from 'ak-ai-news/test'
// 运行完整测试套件
const results = await runCompleteTestSuite({
...defaultTestConfig,
runUnitTests: true, // 单元测试
runIntegrationTests: true, // 集成测试
runPerformanceTests: true, // 性能测试
runErrorHandlingTests: true, // 错误处理测试
enableRealAPIs: false, // 启用真实API测试
maxCostLimit: 10.0, // 测试成本限制
generateReport: true // 生成测试报告
})
console.log('测试结果:', results.overallResult.passed)
console.log('成功率:', results.overallResult.successRate)
console.log('总耗时:', results.totalDuration)
console.log('建议:', results.recommendations)
```
测试类型:
- **单元测试**:基础功能验证
- **集成测试**:端到端流程测试
- **性能测试**:延迟、吞吐量、并发测试
- **压力测试**:系统极限测试
- **错误处理测试**:故障恢复测试
- **成本控制测试**API成本监控测试
### 自定义处理步骤
```typescript
// 添加自定义处理步骤
pipeline.addProcessingStep({
name: 'custom_validation',
order: 1,
execute: async (data) => {
// 自定义验证逻辑
return data
},
rollback: async (data) => {
// 回滚逻辑
}
})
```
### 负载均衡策略
```typescript
// 系统自动选择最佳AI提供商
const bestProvider = serviceManager.selectBestProvider('translation')
```
### 批量处理优化
```typescript
// 批量处理配置
const batchOptions = {
batchSize: 10,
concurrency: 3,
retryCount: 2,
delayMs: 1000,
onProgress: (completed, total) => {
console.log(`进度: ${completed}/${total}`)
}
}
```
## 🚀 部署和运维
### 生产环境部署
1. **环境准备**
```bash
# 安装依赖
npm install ak-ai-news
# 配置环境变量
export OPENAI_API_KEY="your-openai-key"
export GOOGLE_API_KEY="your-google-key"
export BAIDU_APP_ID="your-baidu-app-id"
export BAIDU_SECRET_KEY="your-baidu-secret"
```
2. **系统配置**
```typescript
const productionConfig: AIServiceConfig = {
openai: {
apiKey: process.env.OPENAI_API_KEY,
model: 'gpt-4', // 生产环境推荐使用GPT-4
maxTokens: 2000,
temperature: 0.3 // 降低随机性
},
costLimits: {
dailyUSD: 1000, // 每日1000美元限额
monthlyUSD: 25000, // 每月25000美元限额
perRequestUSD: 10 // 单次请求10美元限额
},
qualityThresholds: {
translation: 0.9, // 提高质量阈值
sentiment: 0.8,
credibility: 0.7
}
}
```
3. **监控设置**
```typescript
const productionMonitor = new AIPerformanceMonitor({
monitoringInterval: 15000, // 15秒监控间隔
maxHistory: 50000, // 保留5万条历史记录
enableAutoOptimization: true,
alertWebhook: 'https://your-webhook-url.com/alerts'
})
```
4. **错误处理配置**
```typescript
const productionErrorHandler = new AIErrorHandler({
retryPolicy: {
maxAttempts: 5,
baseDelayMs: 2000,
maxDelayMs: 60000,
backoffMultiplier: 2.5,
jitterEnabled: true
},
circuitBreaker: {
failureThreshold: 10,
recoveryTimeoutMs: 120000, // 2分钟恢复时间
halfOpenMaxCalls: 5,
monitoringWindowMs: 600000 // 10分钟监控窗口
},
fallback: {
enabled: true,
fallbackProviders: ['openai', 'google', 'baidu'],
gracefulDegradation: true
}
})
```
### 运维最佳实践
1. **日志管理**
```typescript
// 配置日志级别
const serviceManager = new AIServiceManager({
...config,
logging: {
level: 'info', // production: info, development: debug
enableFileLogging: true,
logFilePath: '/var/log/ai-news/system.log'
}
})
```
2. **健康检查**
```typescript
// 设置健康检查端点
app.get('/health', async (req, res) => {
const health = monitor.getSystemHealth()
res.status(health.status === 'healthy' ? 200 : 503).json(health)
})
// 设置指标端点
app.get('/metrics', async (req, res) => {
const stats = monitor.getPerformanceStats(
Date.now() - 3600000, // 过去1小时
Date.now()
)
res.json(stats)
})
```
3. **告警配置**
```typescript
// 配置告警规则
const alertRules = {
highErrorRate: {
threshold: 0.05, // 5%错误率
duration: 300000, // 5分钟持续
action: 'send_alert'
},
highLatency: {
threshold: 5000, // 5秒延迟
duration: 180000, // 3分钟持续
action: 'send_alert'
},
costExceeded: {
threshold: 0.8, // 80%预算
action: 'send_warning'
}
}
```
4. **备份和恢复**
```typescript
// 定期备份配置和数据
setInterval(async () => {
const exportData = monitor.exportPerformanceData('json')
await saveToBackup(exportData)
}, 86400000) // 每24小时备份
// 恢复流程
async function restoreFromBackup(backupData: string) {
const data = JSON.parse(backupData)
// 恢复配置和历史数据
await monitor.importPerformanceData(data)
}
```
### 性能优化建议
1. **缓存策略**
```typescript
// 配置多层缓存
const cacheConfig = {
translation: {
maxSize: 10000,
ttl: 3600000, // 1小时
strategy: 'lru'
},
analysis: {
maxSize: 5000,
ttl: 1800000, // 30分钟
strategy: 'lru'
}
}
```
2. **批处理优化**
```typescript
// 启用智能批处理
const batchConfig = {
batchSize: 20,
maxWaitTime: 2000, // 2秒最大等待
concurrency: 5,
enableAdaptiveBatching: true
}
```
3. **提供商选择策略**
```typescript
// 配置智能提供商选择
const providerStrategy = {
selectionAlgorithm: 'performance_based',
fallbackOrder: ['openai', 'google', 'baidu'],
healthCheckInterval: 30000,
automaticFailover: true
}
```
### 监控和告警
1. **Prometheus集成**
```typescript
// 导出Prometheus指标
app.get('/prometheus', (req, res) => {
const metrics = monitor.getPrometheusMetrics()
res.set('Content-Type', 'text/plain')
res.send(metrics)
})
```
2. **Grafana仪表板**
```json
{
"dashboard": {
"title": "AI News System Dashboard",
"panels": [
{
"title": "Request Rate",
"type": "graph",
"targets": [
{
"expr": "rate(ai_news_requests_total[5m])"
}
]
},
{
"title": "Error Rate",
"type": "singlestat",
"targets": [
{
"expr": "rate(ai_news_errors_total[5m])"
}
]
}
]
}
}
```
3. **告警通知**
```typescript
// 配置告警通知
const alertConfig = {
channels: [
{
type: 'webhook',
url: 'https://hooks.slack.com/services/your-webhook',
events: ['error', 'warning', 'critical']
},
{
type: 'email',
recipients: ['admin@your-domain.com'],
events: ['critical']
}
]
}
```
- **API密钥安全**: 安全存储和管理API密钥
- **数据加密**: 敏感数据传输加密
- **访问控制**: 基于角色的访问控制
- **隐私保护**: 用户数据匿名化处理
- **审计日志**: 完整的操作审计记录
## 🎯 最佳实践
### 1. 成本优化
- 启用缓存减少重复请求
- 设置合理的成本限制
- 选择合适的AI模型
- 批量处理提高效率
### 2. 性能优化
- 配置适当的并发数
- 使用负载均衡
- 监控服务性能
- 优化缓存策略
### 3. 质量控制
- 设置质量阈值
- 多层次验证
- 人工审核关键内容
- 持续监控输出质量
### 4. 错误处理
- 实现重试机制
- 完善的错误日志
- 优雅的降级处理
- 及时告警通知
## 📝 完整示例
查看 `examples/usage-example.uts` 文件获取完整的使用示例,包括:
1. 系统初始化
2. 翻译服务使用
3. 内容分析示例
4. 智能对话演示
5. 推荐系统使用
6. 自动化处理管道
7. 系统监控示例
## 🔄 更新日志
### v1.0.0 (2024-12-19)
- ✨ 初始版本发布
- 🔄 多语言翻译服务
- 🔍 内容分析服务
- 💬 智能对话服务
- 🎯 推荐系统
- ⚙️ 自动化处理管道
- 🎛️ 统一服务管理
## 🤝 贡献
欢迎提交Issue和Pull Request来改进这个项目。
## 📄 许可证
MIT License
## 📞 技术支持
如有问题或建议,请联系开发团队。
---
*这是一个功能完整的AI新闻系统适用于需要多语言内容处理、智能分析和个性化推荐的新闻平台。*