# xz-provider
LLM 服务商抽象:统一的 `complete` / `complete_stream` 接口,经协议适配器对接 OpenAI Chat、OpenAI Responses、Anthropic Messages 等。
## 架构(收敛后)
```text
CompletionRequest ──► ProtocolAdapter ──► HTTP ──► ProtocolAdapter ──► Response / StreamEvent
▲
│
OpenAiChat / Responses / Anthropic
│
GenericProvider(唯一 HTTP 栈)
│
ProviderBuilder / ProviderRouter
```
- **不要**再寻找 `OpenAiCompatibleProvider`:已删除,OpenAI 兼容端点一律 `GenericProvider` + adapter。
- 共享编解码在 `protocol/openai_wire.rs`。
## 最小用法
```rust,ignore
use xz_provider::{
ProviderBuilder, ProviderConfig, CompletionRequest, Message, RequestOptions, RouteContext,
};
let router = ProviderBuilder::new()
.with_config(ProviderConfig::from_json(r#"{ ... }"#)?)
.build()
.await?;
let resp = router
.complete(
&RouteContext::default(),
CompletionRequest::new("gpt-4o", vec![Message::user("hi")]),
RequestOptions::default(),
)
.await?;
```
## Features
| `openai_compatible` (default) | 配置里 `open_ai` / `open_ai_compatible` 类型 |
| `claude` / `anthropic` | Anthropic Messages 适配器 |
| `integration-tests` | 真机集成测试 |
## 模块导航
| `traits` | `LlmProvider` |
| `providers::GenericProvider` | HTTP + 取消 + 超时 |
| `protocol::*` | 协议适配器 |
| `builder` | 从配置装配 |
| `router` | 多模型路由 |
| `types` | 请求/响应/消息(完整类型) |