feat: The response.incomplete event is not handled when using stream_mode=['messages'] (#33871)

This commit is contained in:
riunyfir
2025-11-07 22:46:11 +08:00
committed by GitHub
parent ebfde9173c
commit 1b77a191f4
3 changed files with 21 additions and 1 deletions

View File

@@ -58,6 +58,26 @@ def _check_response(response: BaseMessage | None) -> None:
assert response.response_metadata["service_tier"] # type: ignore[typeddict-item]
@pytest.mark.vcr
def test_incomplete_response() -> None:
model = ChatOpenAI(
model=MODEL_NAME, use_responses_api=True, max_completion_tokens=16
)
response = model.invoke("Tell me a 100 word story about a bear.")
assert response.response_metadata["incomplete_details"]
assert response.response_metadata["incomplete_details"]["reason"]
assert response.response_metadata["status"] == "incomplete"
full: AIMessageChunk | None = None
for chunk in model.stream("Tell me a 100 word story about a bear."):
assert isinstance(chunk, AIMessageChunk)
full = chunk if full is None else full + chunk
assert isinstance(full, AIMessageChunk)
assert full.response_metadata["incomplete_details"]
assert full.response_metadata["incomplete_details"]["reason"]
assert full.response_metadata["status"] == "incomplete"
@pytest.mark.default_cassette("test_web_search.yaml.gz")
@pytest.mark.vcr
@pytest.mark.parametrize("output_version", ["responses/v1", "v1"])