Commit f33b811
committed
fix(lib): only raise finish-reason errors when there is parseable input
`parse_chat_completion` raised `LengthFinishReasonError` /
`ContentFilterFinishReasonError` for any choice whose `finish_reason` was
`length` / `content_filter`, regardless of whether structured-output parsing
was requested. This is inconsistent with the streaming accumulator
(`ChatCompletionStreamState._accumulate_chunk`), which only raises these when
`has_parseable_input` is true.
As a result a plain `client.chat.completions.stream(...)` (no `response_format`
and no parseable tools) that stops at the token limit would iterate to
completion without raising, but then raise `LengthFinishReasonError` from
`get_final_completion()` — even though `client.chat.completions.create()`
never raises for the same response and the length/content-filter restriction
is documented only for `.parse()` (structured outputs).
Guard both raises with `has_parseable_input`, mirroring the accumulator, so
the errors are only raised when there is actually something to parse.1 parent 0c09a3f commit f33b811
2 files changed
Lines changed: 60 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
97 | 105 | | |
98 | 106 | | |
99 | | - | |
| 107 | + | |
100 | 108 | | |
101 | 109 | | |
102 | | - | |
| 110 | + | |
103 | 111 | | |
104 | 112 | | |
105 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
1069 | 1070 | | |
1070 | 1071 | | |
1071 | 1072 | | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
1072 | 1122 | | |
1073 | 1123 | | |
1074 | 1124 | | |
| |||
0 commit comments