Go 运行时
适用于 AI-Protocol。
Go 协议运行时(v1.0.0)。pkg/ailib 负责清单 HTTP 聊天;pkg/contact 提供回退策略。 13 个 V2 错误码、ChatStream SSE 解码器,响应附带 ExecutionMetadata。Go 1.21+。
go get github.com/ailib-official/ai-lib-go@v1.0.0 核心特性
V2 错误码与 Feature 开关
13 个 V2 标准错误码,跨服务商统一错误处理。 Feature 门控模块:7 个可选能力,外加 full 元特性,可按需精简或完整构建。
算子流式管道
流式响应经可组合算子处理:Decoder → Selector → Accumulator → FanOut → EventMapper。各阶段均由协议配置驱动。
协议加载
从本地文件、环境变量或 GitHub 回退加载服务商清单。 支持文件监视热重载,配置更新无需重启。
韧性模式
内置熔断、令牌桶限流、指数退避重试与 max-inflight 背压。 均可通过环境变量配置。
嵌入与向量
EmbeddingClient 提供向量运算 ??cosine similarity, Euclidean distance, dot product. 可原生构建语义检索与 RAG 应用。
缓存与批处理
带 TTL 的响应缓存(内存后端)。批处理支持可配置并发、超时与多种执行策略。
插件系统
可扩展插件架构,含钩子与中间件链。无需改动核心即可注入自定义行为。 Guardrails 支持内容过滤与 PII 检测。
统一、简洁的 API
同一套代码适用于全部 37+ 服务商。只需更换模型标识符 ??协议清单会处理其余一切:端点、鉴权、参数映射与流式格式。
Builder 模式提供流畅的请求构造 API。流式结果统一为 StreamingEvent,
与底层服务商无关。
use ai_lib_rust::{AiClient, Message, StreamingEvent};
// Works with ANY provider ??protocol-driven
let client = AiClient::new(
"anthropic/claude-3-5-sonnet"
).await?;
// Builder pattern for chat requests
let mut stream = client.chat()
.user("Explain AI-Protocol")
.temperature(0.7)
.max_tokens(1000)
.stream()
.execute_stream()
.await?;
// Unified streaming events
while let Some(event) = stream.next().await {
match event? {
StreamingEvent::ContentDelta { text, .. }
=> print!("{text}"),
StreamingEvent::StreamEnd { stats, .. }
=> println!("\nTokens: {}",
stats.total_tokens),
_ => {} // ToolCall, Metadata, etc.
}
} 内部架构
从面向用户的 API 到 HTTP 传输共五层。流式管道是系统核心。
模块概览
client/ + error_code/
AiClient、AiClientBuilder、ChatRequestBuilder、执行逻辑、策略引擎、 预检、错误分类、CallStats、CancelHandle。
protocol/
ProtocolLoader(本地 / URL / GitHub)、JSON Schema 校验、ProtocolManifest 结构、UnifiedRequest 编译与配置类型。
pipeline/
Decoder(SSE、JSON Lines)、Selector(JSONPath)、Accumulator(工具调用)、FanOut (多候选)、EventMapper(统一事件),以及 Retry / Fallback 算子。
transport/
HttpTransport(reqwest)、API Key 解析(keyring + 环境变量)、代理 / 超时配置与中间件。
resilience/
熔断器(open / half-open / closed)、令牌桶限流、max-inflight 信号量背压。
embeddings/
EmbeddingClient、EmbeddingClientBuilder,以及向量运算(余弦相似度、欧氏距离、点积)。
cache/ + batch/
带 TTL 的 CacheManager(MemoryCache、NullCache)。BatchCollector / BatchExecutor 支持并发控制与多种策略。
plugins/ + guardrails/ + structured/
Plugin trait、PluginRegistry、HookManager 与中间件链。Guardrails 提供关键词 / 模式过滤与 PII 检测。