mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 04:40:45 +08:00
- 在 oclaw/ 下重新初始化 Git 仓库 - 补齐子仓库 .gitignore,避免提交本地运行态数据(_local、node_modules、logs 等) - 提交当前工程代码与配置 Made-with: Cursor
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from oclaw.platform.llm.transports.openai_responses import parse_openai_responses_stream_events
|
|
|
|
|
|
def test_openai_responses_stream_parses_text_deltas_and_final_response_tool_calls() -> None:
|
|
events = [
|
|
{"type": "response.created"},
|
|
{"type": "response.output_text.delta", "delta": "Hel"},
|
|
{"type": "response.output_text.delta", "delta": "lo"},
|
|
{
|
|
"type": "response.completed",
|
|
"response": {
|
|
"id": "resp_1",
|
|
"output_text": "Hello",
|
|
"output": [
|
|
{
|
|
"type": "function_call",
|
|
"call_id": "call_1",
|
|
"name": "query_route",
|
|
"arguments": {"destination": "1.1.1.1"},
|
|
}
|
|
],
|
|
},
|
|
},
|
|
]
|
|
buf: list[str] = []
|
|
text, tool_calls, final_resp = parse_openai_responses_stream_events(events, on_token=buf.append)
|
|
assert text == "Hello"
|
|
assert "".join(buf) == "Hello"
|
|
assert final_resp and final_resp.get("id") == "resp_1"
|
|
assert len(tool_calls) == 1
|
|
assert tool_calls[0].id == "call_1"
|
|
assert tool_calls[0].name == "query_route"
|
|
assert tool_calls[0].arguments.get("destination") == "1.1.1.1"
|
|
|