mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat: 实现 executor 流式执行路径及完善 gateway 多格式 plan 构建
- Rust executor 新增流式 plan 支持,覆盖 openai/claude/gemini 的 chat/cli/video 格式 - Gateway 新增 finalize-sync、report-stream 端点及 stream report 模型 - 新增 video sync 操作(create/cancel/remix/delete)的 plan 构建 - 修正 OpenAI Responses(openai:cli) SSE 格式: 添加 event: 行、移除 [DONE] 哨兵 - 统一 OpenAI CLI normalizer 的 ID 生成方法
This commit is contained in:
38
tests/api/handlers/base/test_cli_event_mixin.py
Normal file
38
tests/api/handlers/base/test_cli_event_mixin.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from typing import Any
|
||||
|
||||
from src.api.handlers.base.cli_event_mixin import CliEventMixin
|
||||
from src.api.handlers.base.stream_context import StreamContext
|
||||
|
||||
|
||||
class _DummyCliEventHandler(CliEventMixin):
|
||||
request_id = "req-test"
|
||||
|
||||
def _process_event_data(
|
||||
self,
|
||||
ctx: StreamContext,
|
||||
event_type: str,
|
||||
data: dict[str, Any],
|
||||
) -> None:
|
||||
del ctx, event_type, data
|
||||
|
||||
|
||||
def test_convert_sse_line_drops_done_for_openai_cli() -> None:
|
||||
handler = _DummyCliEventHandler()
|
||||
ctx = StreamContext(model="gpt-test", api_format="openai:cli")
|
||||
ctx.client_api_format = "openai:cli"
|
||||
|
||||
lines, converted = handler._convert_sse_line(ctx, "data: [DONE]", [])
|
||||
|
||||
assert lines == []
|
||||
assert converted == []
|
||||
|
||||
|
||||
def test_convert_sse_line_keeps_done_for_openai_chat() -> None:
|
||||
handler = _DummyCliEventHandler()
|
||||
ctx = StreamContext(model="gpt-test", api_format="openai:chat")
|
||||
ctx.client_api_format = "openai:chat"
|
||||
|
||||
lines, converted = handler._convert_sse_line(ctx, "data: [DONE]", [])
|
||||
|
||||
assert lines == ["data: [DONE]"]
|
||||
assert converted == []
|
||||
Reference in New Issue
Block a user