_events.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. from typing import List, Union, Generic, Optional
  2. from typing_extensions import Literal
  3. from ._types import ParsedChatCompletionSnapshot
  4. from ...._models import BaseModel, GenericModel
  5. from ..._parsing import ResponseFormatT
  6. from ....types.chat import ChatCompletionChunk, ChatCompletionTokenLogprob
  7. class ChunkEvent(BaseModel):
  8. type: Literal["chunk"]
  9. chunk: ChatCompletionChunk
  10. snapshot: ParsedChatCompletionSnapshot
  11. class ContentDeltaEvent(BaseModel):
  12. """This event is yielded for every chunk with `choice.delta.content` data."""
  13. type: Literal["content.delta"]
  14. delta: str
  15. snapshot: str
  16. parsed: Optional[object] = None
  17. class ContentDoneEvent(GenericModel, Generic[ResponseFormatT]):
  18. type: Literal["content.done"]
  19. content: str
  20. parsed: Optional[ResponseFormatT] = None
  21. class RefusalDeltaEvent(BaseModel):
  22. type: Literal["refusal.delta"]
  23. delta: str
  24. snapshot: str
  25. class RefusalDoneEvent(BaseModel):
  26. type: Literal["refusal.done"]
  27. refusal: str
  28. class FunctionToolCallArgumentsDeltaEvent(BaseModel):
  29. type: Literal["tool_calls.function.arguments.delta"]
  30. name: str
  31. index: int
  32. arguments: str
  33. """Accumulated raw JSON string"""
  34. parsed_arguments: object
  35. """The parsed arguments so far"""
  36. arguments_delta: str
  37. """The JSON string delta"""
  38. class FunctionToolCallArgumentsDoneEvent(BaseModel):
  39. type: Literal["tool_calls.function.arguments.done"]
  40. name: str
  41. index: int
  42. arguments: str
  43. """Accumulated raw JSON string"""
  44. parsed_arguments: object
  45. """The parsed arguments"""
  46. class LogprobsContentDeltaEvent(BaseModel):
  47. type: Literal["logprobs.content.delta"]
  48. content: List[ChatCompletionTokenLogprob]
  49. snapshot: List[ChatCompletionTokenLogprob]
  50. class LogprobsContentDoneEvent(BaseModel):
  51. type: Literal["logprobs.content.done"]
  52. content: List[ChatCompletionTokenLogprob]
  53. class LogprobsRefusalDeltaEvent(BaseModel):
  54. type: Literal["logprobs.refusal.delta"]
  55. refusal: List[ChatCompletionTokenLogprob]
  56. snapshot: List[ChatCompletionTokenLogprob]
  57. class LogprobsRefusalDoneEvent(BaseModel):
  58. type: Literal["logprobs.refusal.done"]
  59. refusal: List[ChatCompletionTokenLogprob]
  60. ChatCompletionStreamEvent = Union[
  61. ChunkEvent,
  62. ContentDeltaEvent,
  63. ContentDoneEvent[ResponseFormatT],
  64. RefusalDeltaEvent,
  65. RefusalDoneEvent,
  66. FunctionToolCallArgumentsDeltaEvent,
  67. FunctionToolCallArgumentsDoneEvent,
  68. LogprobsContentDeltaEvent,
  69. LogprobsContentDoneEvent,
  70. LogprobsRefusalDeltaEvent,
  71. LogprobsRefusalDoneEvent,
  72. ]