async-translate
一个支持并发的翻译库,目前支持 OpenAI 和微软翻译服务。
功能特性
-
OpenAI 翻译支持:
- 支持自定义 base URL、模型、API Key
- 支持多 API Key 配置,每个 Key 单独计算并发数和 RPM
- RPM 和并发数可选配置,具备默认数值
- 自动轮询选择 API Key 以实现负载均衡
- 改进的提示工程:通过系统提示词和示例,确保只返回翻译结果,无额外内容。
-
微软翻译支持:
- 改进的认证管理:自动获取临时认证token,并支持缓存和过期自动刷新。
- 支持并发操作限制
- 简化批量翻译结果:提供
translate_batch_to_strings方法直接返回Vec<String>。
-
并发支持:
- 异步并发翻译
- 可配置的并发限制
- 线程安全
-
灵活配置:
- 新增 Builder 模式:为
OpenAIConfig和MicrosoftConfig提供更符合人体工程学的配置方式。 - 可选择是否启用 RPM 限制
- 高性能实现,无不必要的开销
- 支持自定义提示词
- 新增 Builder 模式:为
-
类型安全:
- 支持 LanguageIdentifier,提供编译时类型安全
- 支持源语言和目标语言同时指定
- 符合 Unicode BCP 47 标准
-
统一接口:
- 统一的翻译接口,易于扩展
- 灵活的翻译管理器
- 支持字符串和类型安全两种语言定义方式
-
可配置的超时和重试:
- 支持自定义超时时间
- 支持重试机制
- 详细的错误信息
安装
在 Cargo.toml 中添加依赖:
[]
= "0.1"
使用方法
基本用法
请参考 src/main.rs 中的完整示例,它包含了 Microsoft 和 OpenAI 翻译器的详细用法。
// 示例代码片段,完整示例请查看 src/main.rs
use Result;
use ;
use ;
async
// 详细的 run_microsoft_translator_demo 和 run_openai_translator_demo 函数定义在 src/main.rs 中
配置示例 (Builder 模式)
OpenAI 配置
use OpenAIConfig;
let config = builder
.api_keys // 支持 Vec<&str> 或 Vec<String>
.base_url
.model
.rpm_limit // 每分钟请求数限制
.concurrent_limit // 并发请求数限制
.system_prompt // 自定义系统提示词
.build;
微软配置
use MicrosoftConfig;
let config = builder
.api_key // 可选,None表示自动认证
.endpoint
.concurrent_limit
.build;
运行示例
测试
运行单元测试:
许可证
本项目采用 MIT 许可证。查看 LICENSE 文件了解更多信息。