ai-lib v0.4.0
发布日期:2025-12-04
此版本标志着重大架构里程碑:Trait Shift 1.0 演进。核心调度机制已从基于枚举重新设计为基于 trait 的架构,提供更好的可扩展性和更清晰的抽象。
亮点
- ChatProvider Trait:所有提供商现在实现统一的
ChatProvidertrait 以确保行为一致性 - 策略构建器:通过
with_failover_chain和with_round_robin_chain进行运行前路由组合 - 自定义提供商:无需修改
Provider枚举即可注入 OpenAI 兼容端点 - 改进的错误处理:
AiClient::new现在返回Result<AiClient, AiLibError>以进行显式错误处理
破坏性变更
AiClient::new 返回 Result
// ⛔️ 旧版(0.3.x)
let client = AiClient::new(Provider::Groq);
// ✅ 新版(0.4.0)
let client = AiClient::new(Provider::Groq)?;
基于策略的路由
// ⛔️ 旧版(0.3.x)- 基于哨兵的故障转移
let client = AiClient::new(Provider::OpenAI)
.with_failover(vec![Provider::Anthropic, Provider::Groq]);
// ✅ 新版(0.4.0)- 策略构建器
let client = AiClientBuilder::new(Provider::OpenAI)
.with_failover_chain(vec![Provider::Anthropic, Provider::Groq])?
.build()?;
新功能
自定义提供商注入
use ai_lib::provider::builders::CustomProviderBuilder;
let custom = CustomProviderBuilder::new("my-gateway")
.with_base_url("https://gateway.example.com/v1")
.with_api_key_env("MY_GATEWAY_KEY")
.with_default_chat_model("gpt-4")
.build_provider()?;
let client = AiClientBuilder::new(Provider::OpenAI)
.with_strategy(custom)
.build()?;
轮询负载分配
let client = AiClientBuilder::new(Provider::OpenAI)
.with_round_robin_chain(vec![Provider::Groq, Provider::Mistral])?
.build()?;
升级
[dependencies]
ai-lib = "0.4.0"
tokio = { version = "1", features = ["full"] }
futures = "0.3"