feat: 添加本地缓存功能,减少API调用
- 实现SQLite缓存模块,支持高效查询和存储 - 添加缓存键生成策略(基于原文+语言对的SHA256哈希) - 集成缓存到Translator类,先查缓存再调用API - 添加缓存管理命令:cache clear, cache stats, cache cleanup - 实现组合缓存清理策略(数量限制+时间过期) - 添加完整的单元测试 - 更新配置文件模板,添加缓存配置 - 更新文档和版本记录 版本: v0.5.1
This commit is contained in:
124
changelog.md
124
changelog.md
@@ -9,7 +9,7 @@
|
||||
|
||||
## 未来架构想法
|
||||
- [ ] 支持流式翻译输出
|
||||
- [ ] 添加本地缓存减少API调用
|
||||
- [x] 添加本地缓存减少API调用 ✅ 已完成
|
||||
- [ ] 实现插件系统支持自定义厂商
|
||||
- [ ] 支持批量翻译文件
|
||||
- [ ] 添加Web界面(可选)
|
||||
@@ -32,6 +32,128 @@
|
||||
|
||||
## 版本历史
|
||||
|
||||
### 0.5.0 (2026-03-29) - 本地缓存功能
|
||||
**类型**: 功能版本
|
||||
**状态**: 已发布
|
||||
|
||||
**变更内容**:
|
||||
- ✅ 添加本地缓存模块 (internal/cache/)
|
||||
- ✅ 实现SQLite缓存存储层,支持高效查询和存储
|
||||
- ✅ 实现缓存键生成策略(基于原文+语言对的SHA256哈希)
|
||||
- ✅ 修改Translator类集成缓存功能,先查缓存再调用API
|
||||
- ✅ 添加缓存配置到Config结构,支持自定义缓存参数
|
||||
- ✅ 实现缓存管理命令:cache clear, cache stats, cache cleanup
|
||||
- ✅ 添加组合缓存清理策略(数量限制+时间过期)
|
||||
- ✅ 更新配置文件模板,添加缓存配置示例
|
||||
- ✅ 更新帮助文档,添加缓存相关命令说明
|
||||
|
||||
**技术实现**:
|
||||
- 使用 `github.com/mattn/go-sqlite3` 作为SQLite驱动
|
||||
- 实现缓存接口 (Cache interface),支持多种存储后端
|
||||
- 缓存表包含完整字段:原文、译文、语言对、模型、Prompt、用量统计
|
||||
- 自动清理过期缓存和超出数量限制的缓存
|
||||
- 异步保存缓存,不阻塞翻译结果返回
|
||||
|
||||
**使用示例**:
|
||||
```bash
|
||||
# 基本翻译(自动使用缓存)
|
||||
yoyo "Hello world"
|
||||
yoyo "Hello world" # 第二次调用将从缓存返回
|
||||
|
||||
# 缓存管理命令
|
||||
yoyo cache clear # 清空翻译缓存
|
||||
yoyo cache stats # 查看缓存统计信息
|
||||
yoyo cache cleanup # 清理过期缓存
|
||||
```
|
||||
|
||||
**配置示例**:
|
||||
```yaml
|
||||
cache:
|
||||
enabled: true # 是否启用缓存
|
||||
max_records: 10000 # 最大缓存记录数
|
||||
expire_days: 30 # 缓存过期天数
|
||||
db_path: "~/.config/yoyo/cache.db" # 缓存数据库文件路径
|
||||
```
|
||||
|
||||
**讨论记录**:
|
||||
- [本地缓存功能设计](taolun.md#2026-03-29-1500-版本-050-本地缓存功能设计)
|
||||
|
||||
**下一步**:
|
||||
- 完善缓存功能测试
|
||||
- 添加缓存命中率统计
|
||||
- 实现按语言清理缓存功能
|
||||
- 优化缓存性能
|
||||
|
||||
---
|
||||
|
||||
### 0.5.1 (2026-03-29) - 缓存功能修复
|
||||
**类型**: 修复版本
|
||||
**状态**: 已发布
|
||||
|
||||
**变更内容**:
|
||||
- ✅ 修复缓存清空命令中的VACUUM事务错误
|
||||
- ✅ 修复缓存统计中的NULL值处理错误
|
||||
- ✅ 修复缓存过期清理策略,支持expire_days=0时清理所有记录
|
||||
- ✅ 添加缓存模块单元测试
|
||||
- ✅ 更新版本号到v0.5.1
|
||||
|
||||
**修复问题**:
|
||||
- 缓存清空命令执行时出现"cannot VACUUM from within a transaction"错误
|
||||
- 缓存统计查询在空表时出现NULL值转换错误
|
||||
- 缓存过期清理策略在expire_days=0时不工作
|
||||
|
||||
**测试结果**:
|
||||
- 所有缓存模块测试通过
|
||||
- 缓存命令功能正常
|
||||
- 缓存集成功能正常
|
||||
|
||||
**下一步**:
|
||||
- 完善缓存功能测试
|
||||
- 添加缓存命中率统计
|
||||
- 实现按语言清理缓存功能
|
||||
- 优化缓存性能
|
||||
|
||||
---
|
||||
|
||||
### 0.4.0 (2026-03-29) - 管道符功能
|
||||
**类型**: 功能版本
|
||||
**状态**: 已发布
|
||||
|
||||
**变更内容**:
|
||||
- ✅ 添加管道符支持,允许与其他命令行工具联合使用
|
||||
- ✅ 实现管道输入检测 (isPipeInput函数)
|
||||
- ✅ 实现从标准输入读取 (readFromStdin函数)
|
||||
- ✅ 添加 --quiet 和 -q 参数控制统计信息输出
|
||||
- ✅ 更新帮助文档,添加管道使用示例
|
||||
- ✅ 修复 content/filter.go 中的正则表达式错误
|
||||
- ✅ 更新版本号到 v0.3.0
|
||||
|
||||
**使用示例**:
|
||||
```bash
|
||||
# 管道翻译文件
|
||||
cat file.txt | yoyo
|
||||
cat file.txt | yoyo --lang=en
|
||||
|
||||
# 管道翻译命令输出
|
||||
echo "Hello world" | yoyo --lang=cn
|
||||
|
||||
# 静默模式,只输出翻译结果
|
||||
echo "Hello world" | yoyo -q
|
||||
|
||||
# 与其他命令组合使用
|
||||
cat file.txt | yoyo | grep "关键词"
|
||||
yoyo "Hello" | wc -l
|
||||
```
|
||||
|
||||
**讨论记录**:
|
||||
- [管道符功能设计](taolun.md#管道符功能设计)
|
||||
|
||||
**下一步**:
|
||||
- 实现更多厂商(火山引擎、国家超算、Qwen、OpenAI兼容)
|
||||
- 添加配置文件路径查找机制
|
||||
- 实现配置文件迁移工具
|
||||
- 完善错误处理和用户体验
|
||||
|
||||
### 0.3.0 (2026-03-29) - 内容过滤与代码处理
|
||||
**类型**: 功能版本
|
||||
**状态**: 已发布
|
||||
|
||||
Reference in New Issue
Block a user