Initial commit
Co-authored-by: Zhuohan Li <zhuohan@openai.com> Co-authored-by: Maratyszcza <marat@openai.com> Co-authored-by: Volodymyr Kyrylov <vol@wilab.org.ua>
This commit is contained in:
129
gpt_oss/responses_api/events.py
Normal file
129
gpt_oss/responses_api/events.py
Normal file
@@ -0,0 +1,129 @@
|
||||
# torchrun --nproc-per-node=4 responses_api.py
|
||||
from typing import Literal, Optional, Union
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .types import (
|
||||
FunctionCallItem,
|
||||
Item,
|
||||
ReasoningItem,
|
||||
ResponseObject,
|
||||
TextContentItem,
|
||||
ReasoningTextContentItem,
|
||||
WebSearchCallItem,
|
||||
UrlCitation,
|
||||
)
|
||||
|
||||
|
||||
class ResponseEvent(BaseModel):
|
||||
sequence_number: Optional[int] = 1
|
||||
|
||||
|
||||
class ResponseCreatedEvent(ResponseEvent):
|
||||
type: Literal["response.created"]
|
||||
response: ResponseObject
|
||||
|
||||
|
||||
class ResponseCompletedEvent(ResponseEvent):
|
||||
type: Literal["response.completed"]
|
||||
response: ResponseObject
|
||||
|
||||
|
||||
class ResponseOutputTextDelta(ResponseEvent):
|
||||
type: Literal["response.output_text.delta"] = "response.output_text.delta"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
delta: str = ""
|
||||
logprobs: list = []
|
||||
|
||||
|
||||
class ResponseReasoningSummaryTextDelta(ResponseEvent):
|
||||
type: Literal["response.reasoning_summary_text.delta"] = (
|
||||
"response.reasoning_summary_text.delta"
|
||||
)
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
delta: str = ""
|
||||
|
||||
|
||||
class ResponseReasoningTextDelta(ResponseEvent):
|
||||
type: Literal["response.reasoning_text.delta"] = "response.reasoning_text.delta"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
delta: str = ""
|
||||
|
||||
|
||||
class ResponseReasoningTextDone(ResponseEvent):
|
||||
type: Literal["response.reasoning_text.done"] = "response.reasoning_text.done"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
text: str = ""
|
||||
|
||||
|
||||
class ResponseOutputItemAdded(ResponseEvent):
|
||||
type: Literal["response.output_item.added"] = "response.output_item.added"
|
||||
output_index: int = 0
|
||||
item: Union[Item, ReasoningItem, FunctionCallItem, WebSearchCallItem]
|
||||
|
||||
|
||||
class ResponseOutputItemDone(ResponseEvent):
|
||||
type: Literal["response.output_item.done"] = "response.output_item.done"
|
||||
output_index: int = 0
|
||||
item: Union[Item, ReasoningItem, FunctionCallItem, WebSearchCallItem]
|
||||
|
||||
|
||||
class ResponseInProgressEvent(ResponseEvent):
|
||||
type: Literal["response.in_progress"]
|
||||
response: ResponseObject
|
||||
|
||||
|
||||
class ResponseContentPartAdded(ResponseEvent):
|
||||
type: Literal["response.content_part.added"] = "response.content_part.added"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
part: Union[TextContentItem, ReasoningTextContentItem]
|
||||
|
||||
|
||||
class ResponseOutputTextDone(ResponseEvent):
|
||||
type: Literal["response.output_text.done"] = "response.output_text.done"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
text: str = ""
|
||||
logprobs: list = []
|
||||
|
||||
|
||||
class ResponseContentPartDone(ResponseEvent):
|
||||
type: Literal["response.content_part.done"] = "response.content_part.done"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
part: Union[TextContentItem, ReasoningTextContentItem]
|
||||
|
||||
class ResponseOutputTextAnnotationAdded(ResponseEvent):
|
||||
type: Literal["response.output_text.annotation.added"] = "response.output_text.annotation.added"
|
||||
item_id: str = "item_1234"
|
||||
output_index: int = 0
|
||||
content_index: int = 0
|
||||
annotation_index: int = 0
|
||||
annotation: UrlCitation
|
||||
|
||||
class ResponseWebSearchCallInProgress(ResponseEvent):
|
||||
type: Literal["response.web_search_call.in_progress"] = "response.web_search_call.in_progress"
|
||||
output_index: int = 0
|
||||
item_id: str = "item_1234"
|
||||
|
||||
class ResponseWebSearchCallSearching(ResponseEvent):
|
||||
type: Literal["response.web_search_call.searching"] = "response.web_search_call.searching"
|
||||
output_index: int = 0
|
||||
item_id: str = "item_1234"
|
||||
|
||||
class ResponseWebSearchCallCompleted(ResponseEvent):
|
||||
type: Literal["response.web_search_call.completed"] = "response.web_search_call.completed"
|
||||
output_index: int = 0
|
||||
item_id: str = "item_1234"
|
||||
Reference in New Issue
Block a user