-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcontent.py
More file actions
80 lines (49 loc) · 2.7 KB
/
Copy pathcontent.py
File metadata and controls
80 lines (49 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
"""Message content part events."""
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
from .citation import UiPathConversationCitation, UiPathConversationCitationEvent
class UiPathConversationContentPartChunkEvent(BaseModel):
"""Contains a chunk of a message content part."""
content_part_sequence: int | None = Field(None, alias="contentPartSequence")
data: str | None = None
citation: UiPathConversationCitationEvent | None = None
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
class UiPathConversationContentPartStartEvent(BaseModel):
"""Signals the start of a message content part."""
mime_type: str = Field(..., alias="mimeType")
meta_data: dict[str, Any] | None = Field(None, alias="metaData")
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
class UiPathConversationContentPartEndEvent(BaseModel):
"""Signals the end of a message content part."""
last_chunk_content_part_sequence: int | None = Field(
None, alias="lastChunkContentPartSequence"
)
interrupted: dict[str, Any] | None = None
meta_data: dict[str, Any] | None = Field(None, alias="metaData")
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
class UiPathConversationContentPartEvent(BaseModel):
"""Encapsulates events related to message content parts."""
content_part_id: str = Field(..., alias="contentPartId")
start: UiPathConversationContentPartStartEvent | None = None
end: UiPathConversationContentPartEndEvent | None = None
chunk: UiPathConversationContentPartChunkEvent | None = None
meta_event: dict[str, Any] | None = Field(None, alias="metaEvent")
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
class UiPathInlineValue(BaseModel):
"""Used when a value is small enough to be returned inline."""
inline: Any
class UiPathExternalValue(BaseModel):
"""Used when a value is too large to be returned inline."""
url: str
byte_count: int | None = Field(None, alias="byteCount")
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
InlineOrExternal = UiPathInlineValue | UiPathExternalValue
class UiPathConversationContentPart(BaseModel):
"""Represents a single part of message content."""
content_part_id: str = Field(..., alias="contentPartId")
mime_type: str = Field(..., alias="mimeType")
data: InlineOrExternal
citations: list[UiPathConversationCitation] | None = None
is_transcript: bool | None = Field(None, alias="isTranscript")
is_incomplete: bool | None = Field(None, alias="isIncomplete")
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)