|
3 | 3 | fromcollections.abcimportAsyncIterator |
4 | 4 | fromtypingimportAny |
5 | 5 |
|
6 | | -fromopenai.types.responsesimportResponse,ResponseCompletedEvent,ResponseUsage |
| 6 | +fromopenai.types.responsesimport ( |
| 7 | +Response, |
| 8 | +ResponseCompletedEvent, |
| 9 | +ResponseContentPartAddedEvent, |
| 10 | +ResponseContentPartDoneEvent, |
| 11 | +ResponseCreatedEvent, |
| 12 | +ResponseFunctionCallArgumentsDeltaEvent, |
| 13 | +ResponseFunctionCallArgumentsDoneEvent, |
| 14 | +ResponseFunctionToolCall, |
| 15 | +ResponseInProgressEvent, |
| 16 | +ResponseOutputItemAddedEvent, |
| 17 | +ResponseOutputItemDoneEvent, |
| 18 | +ResponseOutputMessage, |
| 19 | +ResponseOutputText, |
| 20 | +ResponseReasoningSummaryPartAddedEvent, |
| 21 | +ResponseReasoningSummaryPartDoneEvent, |
| 22 | +ResponseReasoningSummaryTextDeltaEvent, |
| 23 | +ResponseReasoningSummaryTextDoneEvent, |
| 24 | +ResponseTextDeltaEvent, |
| 25 | +ResponseTextDoneEvent, |
| 26 | +ResponseUsage, |
| 27 | +) |
| 28 | +fromopenai.types.responses.response_reasoning_itemimportResponseReasoningItem |
| 29 | +fromopenai.types.responses.response_reasoning_summary_part_added_eventimport ( |
| 30 | +PartasAddedEventPart, |
| 31 | +) |
| 32 | +fromopenai.types.responses.response_reasoning_summary_part_done_eventimportPartasDoneEventPart |
7 | 33 | fromopenai.types.responses.response_usageimportInputTokensDetails,OutputTokensDetails |
8 | 34 |
|
9 | 35 | fromagents.agent_outputimportAgentOutputSchemaBase |
@@ -143,10 +169,151 @@ async def stream_response( |
143 | 169 | ) |
144 | 170 | raiseoutput |
145 | 171 |
|
| 172 | +response=get_response_obj(output,usage=self.hardcoded_usage) |
| 173 | +sequence_number=0 |
| 174 | + |
| 175 | +yieldResponseCreatedEvent( |
| 176 | +type="response.created", |
| 177 | +response=response, |
| 178 | +sequence_number=sequence_number, |
| 179 | + ) |
| 180 | +sequence_number+=1 |
| 181 | + |
| 182 | +yieldResponseInProgressEvent( |
| 183 | +type="response.in_progress", |
| 184 | +response=response, |
| 185 | +sequence_number=sequence_number, |
| 186 | + ) |
| 187 | +sequence_number+=1 |
| 188 | + |
| 189 | +foroutput_index,output_iteminenumerate(output): |
| 190 | +yieldResponseOutputItemAddedEvent( |
| 191 | +type="response.output_item.added", |
| 192 | +item=output_item, |
| 193 | +output_index=output_index, |
| 194 | +sequence_number=sequence_number, |
| 195 | + ) |
| 196 | +sequence_number+=1 |
| 197 | + |
| 198 | +ifisinstance(output_item,ResponseReasoningItem): |
| 199 | +ifoutput_item.summary: |
| 200 | +forsummary_index,summaryinenumerate(output_item.summary): |
| 201 | +yieldResponseReasoningSummaryPartAddedEvent( |
| 202 | +type="response.reasoning_summary_part.added", |
| 203 | +item_id=output_item.id, |
| 204 | +output_index=output_index, |
| 205 | +summary_index=summary_index, |
| 206 | +part=AddedEventPart(text=summary.text,type=summary.type), |
| 207 | +sequence_number=sequence_number, |
| 208 | + ) |
| 209 | +sequence_number+=1 |
| 210 | + |
| 211 | +yieldResponseReasoningSummaryTextDeltaEvent( |
| 212 | +type="response.reasoning_summary_text.delta", |
| 213 | +item_id=output_item.id, |
| 214 | +output_index=output_index, |
| 215 | +summary_index=summary_index, |
| 216 | +delta=summary.text, |
| 217 | +sequence_number=sequence_number, |
| 218 | + ) |
| 219 | +sequence_number+=1 |
| 220 | + |
| 221 | +yieldResponseReasoningSummaryTextDoneEvent( |
| 222 | +type="response.reasoning_summary_text.done", |
| 223 | +item_id=output_item.id, |
| 224 | +output_index=output_index, |
| 225 | +summary_index=summary_index, |
| 226 | +text=summary.text, |
| 227 | +sequence_number=sequence_number, |
| 228 | + ) |
| 229 | +sequence_number+=1 |
| 230 | + |
| 231 | +yieldResponseReasoningSummaryPartDoneEvent( |
| 232 | +type="response.reasoning_summary_part.done", |
| 233 | +item_id=output_item.id, |
| 234 | +output_index=output_index, |
| 235 | +summary_index=summary_index, |
| 236 | +part=DoneEventPart(text=summary.text,type=summary.type), |
| 237 | +sequence_number=sequence_number, |
| 238 | + ) |
| 239 | +sequence_number+=1 |
| 240 | + |
| 241 | +elifisinstance(output_item,ResponseFunctionToolCall): |
| 242 | +yieldResponseFunctionCallArgumentsDeltaEvent( |
| 243 | +type="response.function_call_arguments.delta", |
| 244 | +item_id=output_item.call_id, |
| 245 | +output_index=output_index, |
| 246 | +delta=output_item.arguments, |
| 247 | +sequence_number=sequence_number, |
| 248 | + ) |
| 249 | +sequence_number+=1 |
| 250 | + |
| 251 | +yieldResponseFunctionCallArgumentsDoneEvent( |
| 252 | +type="response.function_call_arguments.done", |
| 253 | +item_id=output_item.call_id, |
| 254 | +output_index=output_index, |
| 255 | +arguments=output_item.arguments, |
| 256 | +sequence_number=sequence_number, |
| 257 | + ) |
| 258 | +sequence_number+=1 |
| 259 | + |
| 260 | +elifisinstance(output_item,ResponseOutputMessage): |
| 261 | +forcontent_index,content_partinenumerate(output_item.content): |
| 262 | +ifisinstance(content_part,ResponseOutputText): |
| 263 | +yieldResponseContentPartAddedEvent( |
| 264 | +type="response.content_part.added", |
| 265 | +item_id=output_item.id, |
| 266 | +output_index=output_index, |
| 267 | +content_index=content_index, |
| 268 | +part=content_part, |
| 269 | +sequence_number=sequence_number, |
| 270 | + ) |
| 271 | +sequence_number+=1 |
| 272 | + |
| 273 | +yieldResponseTextDeltaEvent( |
| 274 | +type="response.output_text.delta", |
| 275 | +item_id=output_item.id, |
| 276 | +output_index=output_index, |
| 277 | +content_index=content_index, |
| 278 | +delta=content_part.text, |
| 279 | +logprobs=[], |
| 280 | +sequence_number=sequence_number, |
| 281 | + ) |
| 282 | +sequence_number+=1 |
| 283 | + |
| 284 | +yieldResponseTextDoneEvent( |
| 285 | +type="response.output_text.done", |
| 286 | +item_id=output_item.id, |
| 287 | +output_index=output_index, |
| 288 | +content_index=content_index, |
| 289 | +text=content_part.text, |
| 290 | +logprobs=[], |
| 291 | +sequence_number=sequence_number, |
| 292 | + ) |
| 293 | +sequence_number+=1 |
| 294 | + |
| 295 | +yieldResponseContentPartDoneEvent( |
| 296 | +type="response.content_part.done", |
| 297 | +item_id=output_item.id, |
| 298 | +output_index=output_index, |
| 299 | +content_index=content_index, |
| 300 | +part=content_part, |
| 301 | +sequence_number=sequence_number, |
| 302 | + ) |
| 303 | +sequence_number+=1 |
| 304 | + |
| 305 | +yieldResponseOutputItemDoneEvent( |
| 306 | +type="response.output_item.done", |
| 307 | +item=output_item, |
| 308 | +output_index=output_index, |
| 309 | +sequence_number=sequence_number, |
| 310 | + ) |
| 311 | +sequence_number+=1 |
| 312 | + |
146 | 313 | yieldResponseCompletedEvent( |
147 | 314 | type="response.completed", |
148 | | -response=get_response_obj(output,usage=self.hardcoded_usage), |
149 | | -sequence_number=0, |
| 315 | +response=response, |
| 316 | +sequence_number=sequence_number, |
150 | 317 | ) |
151 | 318 |
|
152 | 319 |
|
|