chainlit 1.0.506__py3-none-any.whl → 1.1.0rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of chainlit might be problematic. Click here for more details.

chainlit/data/__init__.py CHANGED
@@ -156,6 +156,7 @@ class ChainlitDataLayer(BaseDataLayer):
156
156
  "chainlitKey": None,
157
157
  "display": metadata.get("display", "side"),
158
158
  "language": metadata.get("language"),
159
+ "autoPlay": metadata.get("autoPlay", None),
159
160
  "page": metadata.get("page"),
160
161
  "size": metadata.get("size"),
161
162
  "type": metadata.get("type", "file"),
@@ -219,7 +220,7 @@ class ChainlitDataLayer(BaseDataLayer):
219
220
  "disableFeedback": metadata.get("disableFeedback", False),
220
221
  "indent": metadata.get("indent"),
221
222
  "language": metadata.get("language"),
222
- "isError": metadata.get("isError", False),
223
+ "isError": bool(step.error),
223
224
  "waitForAnswer": metadata.get("waitForAnswer", False),
224
225
  }
225
226
 
@@ -348,7 +349,6 @@ class ChainlitDataLayer(BaseDataLayer):
348
349
  step_dict.get("metadata", {}),
349
350
  **{
350
351
  "disableFeedback": step_dict.get("disableFeedback"),
351
- "isError": step_dict.get("isError"),
352
352
  "waitForAnswer": step_dict.get("waitForAnswer"),
353
353
  "language": step_dict.get("language"),
354
354
  "showInput": step_dict.get("showInput"),
@@ -372,6 +372,8 @@ class ChainlitDataLayer(BaseDataLayer):
372
372
  step["input"] = {"content": step_dict.get("input")}
373
373
  if step_dict.get("output"):
374
374
  step["output"] = {"content": step_dict.get("output")}
375
+ if step_dict.get("isError"):
376
+ step["error"] = step_dict.get("output")
375
377
 
376
378
  await self.client.api.send_steps([step])
377
379
 
@@ -170,12 +170,14 @@ class SQLAlchemyDataLayer(BaseDataLayer):
170
170
  raise ValueError("User not found in session context")
171
171
  data = {
172
172
  "id": thread_id,
173
- "createdAt": await self.get_current_timestamp()
174
- if metadata is None
175
- else None,
176
- "name": name
177
- if name is not None
178
- else (metadata.get("name") if metadata and "name" in metadata else None),
173
+ "createdAt": (
174
+ await self.get_current_timestamp() if metadata is None else None
175
+ ),
176
+ "name": (
177
+ name
178
+ if name is not None
179
+ else (metadata.get("name") if metadata and "name" in metadata else None)
180
+ ),
179
181
  "userId": user_id,
180
182
  "userIdentifier": user_identifier,
181
183
  "tags": tags,
@@ -552,13 +554,17 @@ class SQLAlchemyDataLayer(BaseDataLayer):
552
554
  streaming=step_feedback.get("step_streaming", False),
553
555
  waitForAnswer=step_feedback.get("step_waitforanswer"),
554
556
  isError=step_feedback.get("step_iserror"),
555
- metadata=step_feedback["step_metadata"]
556
- if step_feedback.get("step_metadata") is not None
557
- else {},
557
+ metadata=(
558
+ step_feedback["step_metadata"]
559
+ if step_feedback.get("step_metadata") is not None
560
+ else {}
561
+ ),
558
562
  tags=step_feedback.get("step_tags"),
559
- input=step_feedback.get("step_input", "")
560
- if step_feedback["step_showinput"]
561
- else "",
563
+ input=(
564
+ step_feedback.get("step_input", "")
565
+ if step_feedback["step_showinput"]
566
+ else ""
567
+ ),
562
568
  output=step_feedback.get("step_output", ""),
563
569
  createdAt=step_feedback.get("step_createdat"),
564
570
  start=step_feedback.get("step_start"),
@@ -587,6 +593,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
587
593
  display=element["element_display"],
588
594
  size=element.get("element_size"),
589
595
  language=element.get("element_language"),
596
+ autoPlay=element.get("element_autoPlay"),
590
597
  page=element.get("element_page"),
591
598
  forId=element.get("element_forid"),
592
599
  mime=element.get("element_mime"),
chainlit/element.py CHANGED
@@ -38,6 +38,7 @@ class ElementDict(TypedDict):
38
38
  size: Optional[ElementSize]
39
39
  language: Optional[str]
40
40
  page: Optional[int]
41
+ autoPlay: Optional[bool]
41
42
  forId: Optional[str]
42
43
  mime: Optional[str]
43
44
 
@@ -61,7 +62,7 @@ class Element:
61
62
  # The byte content of the element.
62
63
  content: Optional[Union[bytes, str]] = None
63
64
  # Controls how the image element should be displayed in the UI. Choices are “side” (default), “inline”, or “page”.
64
- display: ElementDisplay = Field(default="side")
65
+ display: ElementDisplay = Field(default="inline")
65
66
  # Controls element size
66
67
  size: Optional[ElementSize] = None
67
68
  # The ID of the message this element is associated with.
@@ -93,6 +94,7 @@ class Element:
93
94
  "objectKey": getattr(self, "object_key", None),
94
95
  "size": getattr(self, "size", None),
95
96
  "page": getattr(self, "page", None),
97
+ "autoPlay": getattr(self, "auto_play", None),
96
98
  "language": getattr(self, "language", None),
97
99
  "forId": getattr(self, "for_id", None),
98
100
  "mime": getattr(self, "mime", None),
@@ -306,6 +308,7 @@ class TaskList(Element):
306
308
  @dataclass
307
309
  class Audio(Element):
308
310
  type: ClassVar[ElementType] = "audio"
311
+ auto_play: bool = False
309
312
 
310
313
 
311
314
  @dataclass