mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat(ai-pipeline): 支持 reasoning signature 及媒体内容块的跨格式流式转换
- 在 CanonicalStreamEvent 中新增 ReasoningSignature 和 ContentPart 变体,CanonicalContentPart 枚举覆盖图片/文件/音频 - Gemini 流解析器提取 thoughtSignature,并对 inlineData/fileData 等非文本 part 生成 ContentPart 事件 - Claude 流聚合支持 thinking_delta / signature_delta,输出 thinking block 携带 signature 字段 - Gemini 同步响应聚合重写,支持媒体 part 和 reasoning signature 的完整还原 - 跨格式矩阵(gemini↔claude↔openai)补全图片块双向转换及 reasoning signature 传递 - 请求转换层(to/from openai_chat)补全 Claude/Gemini 的 thinking、图片、工具调用字段映射 - 新增/扩展测试:inline image 双向重写、thinking signature 聚合、跨格式 sync product 媒体字段
This commit is contained in:
@@ -886,7 +886,7 @@ mod tests {
|
||||
record_admin_provider_pool_stream_timeout(&runner, "provider-1", "key-4", &pool_config)
|
||||
.await;
|
||||
|
||||
let runtime = read_admin_provider_pool_runtime_state(
|
||||
let mut runtime = read_admin_provider_pool_runtime_state(
|
||||
&runner,
|
||||
"provider-1",
|
||||
&key_ids,
|
||||
@@ -894,6 +894,25 @@ mod tests {
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
for _ in 0..20 {
|
||||
if runtime
|
||||
.cooldown_reason_by_key
|
||||
.get("key-4")
|
||||
.map(String::as_str)
|
||||
== Some("stream_timeout_x2")
|
||||
{
|
||||
break;
|
||||
}
|
||||
tokio::time::sleep(std::time::Duration::from_millis(10)).await;
|
||||
runtime = read_admin_provider_pool_runtime_state(
|
||||
&runner,
|
||||
"provider-1",
|
||||
&key_ids,
|
||||
&pool_config,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
assert_eq!(
|
||||
runtime
|
||||
|
||||
Reference in New Issue
Block a user