async_translate/
lib.rs

1//! # async-translate
2//!
3//! 一个支持并发的翻译库,目前支持 OpenAI 和微软翻译服务。
4//!
5//! ## 功能特性
6//!
7//! - 支持 OpenAI 翻译接口
8//!   - 支持自定义 base URL、模型、API Key
9//!   - 支持多 API Key 配置,每个 Key 单独计算并发数和 RPM
10//!   - RPM 和并发数可选配置,具备默认数值
11//! - 支持微软翻译接口
12//!   - 自动获取临时认证token,无需配置API密钥
13//!   - 支持并发操作
14//! - 统一的翻译接口,易于扩展
15//!
16//! ## 使用方法
17//!
18//! ```rust,no_run
19//! use async_translate::{TranslationManager, OpenAITranslator, OpenAIConfig, MicrosoftTranslator, MicrosoftConfig};
20//!
21//! #[tokio::main]
22//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
23//!     // 创建翻译管理器
24//!     let mut manager = TranslationManager::new();
25//!
26//!     // 配置 OpenAI 翻译器
27//!     let openai_config = OpenAIConfig {
28//!         base_url: "https://api.openai.com/v1".to_string(),
29//!         model: "gpt-3.5-turbo".to_string(),
30//!         api_keys: vec!["your-openai-api-key".to_string()],
31//!         rpm_limit: 60,
32//!         concurrent_limit: 10,
33//!         system_prompt: None,
34//!     };
35//!     let openai_translator = Box::new(OpenAITranslator::new(openai_config));
36//!     manager.add_translator("openai", openai_translator);
37//!
38//!     // 配置微软翻译器(自动获取认证token)
39//!     let microsoft_config = MicrosoftConfig {
40//!         endpoint: "https://api-edge.cognitive.microsofttranslator.com".to_string(),
41//!         concurrent_limit: 10,
42//!     };
43//!     let microsoft_translator = Box::new(MicrosoftTranslator::new(microsoft_config));
44//!     manager.add_translator("microsoft", microsoft_translator);
45//!
46//!     // 执行翻译
47//!     let text = "Hello, world!";
48//!     let target_lang = "zh";
49//!
50//!     let result = manager.translate("openai", text, target_lang).await?;
51//!     println!("OpenAI Translation: {}", result);
52//!
53//!     let result = manager.translate("microsoft", text, target_lang).await?;
54//!     println!("Microsoft Translation: {}", result);
55//!
56//!     Ok(())
57//! }
58//! ```
59
60pub mod manager;
61pub mod microsoft;
62pub mod openai;
63pub mod translator;
64
65pub use manager::TranslationManager;
66pub use microsoft::{MicrosoftConfig, MicrosoftTranslator};
67pub use openai::{OpenAIConfig, OpenAITranslator};
68pub use translator::Translator;
69
70// 导出语言标识符类型
71pub use unic_langid::LanguageIdentifier;