a74c24b6fe
重写 OpenaiChatProvider:移除 Phase 0 临时桥接,实现真实流式状态机 (ContentBlockStart / *Delta / ContentBlockEnd / ToolCallEnd), MessageComplete.full_response 由 PartialMessageResponse::finalize 产出。 新增 AnthropicProvider:实现 Messages API + SSE 事件序列 (message_start → content_block_start → content_block_delta → content_block_stop → message_delta → message_stop), 529(overloaded)映射为 RateLimit;thinking signature 由 partial.set_thinking_signature 内部写入。 新增 DeepSeekProvider / QwenProvider:OpenAI-compatible 协议的 newtype 包装,共享 GenericOpenaiProvider 的 HTTP / SSE / 转换逻辑; Qwen 通过 extra_headers 注入 X-DashScope-SSE: enable。 新增 convert.rs 公共转换模块:从 Phase 0 cycle.rs / Phase 0 OpenaiProvider 桥接层提取 from_openai / to_openai / content_to_blocks / blocks_to_content,避免跨 Provider 重复逻辑。 新增 wiremock dev-dependency + 14 个集成测试: - OpenaiChatProvider:基础文本 / 401 / 500 / 流式 MessageComplete - AnthropicProvider:基础 / 401 / 529 / 流式 SSE 序列 / max_tokens 默认值 - DeepSeek / Qwen:基础文本响应 171 个测试全部通过(之前 157,新增 14)。
27 lines
641 B
TOML
27 lines
641 B
TOML
[package]
|
|
name = "agcore"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
tokio = { version = "1", features = ["full"] }
|
|
reqwest = { version = "0.12", features = ["json", "stream"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
thiserror = "2"
|
|
async-trait = "0.1"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
tokio-stream = "0.1"
|
|
futures = "0.3"
|
|
futures-util = "0.3"
|
|
futures-core = "0.3"
|
|
bytes = "1"
|
|
async-stream = "0.3"
|
|
tokio-util = { version = "0.7", features = ["rt"] }
|
|
time = { version = "0.3", features = ["serde"] }
|
|
|
|
[dev-dependencies]
|
|
dotenvy = "0.15.7"
|
|
wiremock = "0.6"
|