Crates.io | async-translate |
lib.rs | async-translate |
version | 0.2.0 |
created_at | 2025-08-25 20:23:04.816467+00 |
updated_at | 2025-08-27 16:13:01.292052+00 |
description | A concurrent translation library supporting OpenAI and Microsoft Translator |
homepage | https://github.com/ba0ge/async-translate |
repository | https://github.com/ba0ge/async-translate |
max_upload_size | |
id | 1810095 |
size | 121,682 |
一个支持并发的翻译库,目前支持 OpenAI 和微软翻译服务。
OpenAI 翻译支持:
微软翻译支持:
translate_batch_to_strings
方法直接返回 Vec<String>
。并发支持:
灵活配置:
OpenAIConfig
和 MicrosoftConfig
提供更符合人体工程学的配置方式。类型安全:
统一接口:
可配置的超时和重试:
在 Cargo.toml
中添加依赖:
[dependencies]
async-translate = "0.1"
请参考 src/main.rs
中的完整示例,它包含了 Microsoft 和 OpenAI 翻译器的详细用法。
// 示例代码片段,完整示例请查看 src/main.rs
use anyhow::Result;
use async_translate::{
LanguageIdentifier, TranslateOptions,
microsoft::{MicrosoftConfig, MicrosoftTranslator},
openai::{OpenAIConfig, OpenAITranslator},
};
use tracing::{error, info};
#[tokio::main]
async fn main() -> Result<()> {
tracing_subscriber::fmt::init();
// Microsoft Translator 演示
run_microsoft_translator_demo().await?;
// OpenAI Translator 演示
run_openai_translator_demo().await?;
Ok(())
}
// 详细的 run_microsoft_translator_demo 和 run_openai_translator_demo 函数定义在 src/main.rs 中
use async_translate::openai::OpenAIConfig;
let config = OpenAIConfig::builder()
.api_keys(vec!["your-openai-api-key"]) // 支持 Vec<&str> 或 Vec<String>
.base_url("https://api.openai.com/v1")
.model("gpt-3.5-turbo")
.rpm_limit(60) // 每分钟请求数限制
.concurrent_limit(10) // 并发请求数限制
.system_prompt("You are a helpful assistant.") // 自定义系统提示词
.build();
use async_translate::microsoft::MicrosoftConfig;
let config = MicrosoftConfig::builder()
.api_key(Some("your-microsoft-api-key")) // 可选,None表示自动认证
.endpoint("https://api-edge.cognitive.microsofttranslator.com")
.concurrent_limit(10)
.build();
cargo run
运行单元测试:
cargo test
本项目采用 MIT 许可证。查看 LICENSE 文件了解更多信息。