chainlit 2.8.0__tar.gz → 2.8.1__tar.gz

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.

Files changed (149) hide show
  1. {chainlit-2.8.0 → chainlit-2.8.1}/PKG-INFO +4 -2
  2. {chainlit-2.8.0 → chainlit-2.8.1}/README.md +3 -1
  3. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/config.py +4 -0
  4. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/sql_alchemy.py +10 -1
  5. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/server.py +3 -3
  6. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/slack/app.py +0 -2
  7. chainlit-2.8.1/chainlit/translations/de-DE.json +245 -0
  8. chainlit-2.8.1/chainlit/translations/ko.json +245 -0
  9. chainlit-2.8.1/chainlit/version.py +1 -0
  10. chainlit-2.8.0/chainlit/version.py +0 -1
  11. {chainlit-2.8.0 → chainlit-2.8.1}/.gitignore +0 -0
  12. {chainlit-2.8.0 → chainlit-2.8.1}/build.py +0 -0
  13. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/__init__.py +0 -0
  14. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/__main__.py +0 -0
  15. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/_utils.py +0 -0
  16. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/action.py +0 -0
  17. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/auth/__init__.py +0 -0
  18. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/auth/cookie.py +0 -0
  19. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/auth/jwt.py +0 -0
  20. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/cache.py +0 -0
  21. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/callbacks.py +0 -0
  22. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/chat_context.py +0 -0
  23. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/chat_settings.py +0 -0
  24. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/cli/__init__.py +0 -0
  25. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/context.py +0 -0
  26. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/copilot/dist/index.js +0 -0
  27. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/__init__.py +0 -0
  28. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/acl.py +0 -0
  29. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/base.py +0 -0
  30. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/chainlit_data_layer.py +0 -0
  31. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/dynamodb.py +0 -0
  32. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/literalai.py +0 -0
  33. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/__init__.py +0 -0
  34. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/azure.py +0 -0
  35. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/azure_blob.py +0 -0
  36. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/base.py +0 -0
  37. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/gcs.py +0 -0
  38. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/storage_clients/s3.py +0 -0
  39. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/data/utils.py +0 -0
  40. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/discord/__init__.py +0 -0
  41. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/discord/app.py +0 -0
  42. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/element.py +0 -0
  43. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/emitter.py +0 -0
  44. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/DailyMotion-BKZB3K1o.js +0 -0
  45. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/DailyMotion-BKZB3K1o.js.map +0 -0
  46. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Dataframe-CgsnUvQn.js +0 -0
  47. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Dataframe-CgsnUvQn.js.map +0 -0
  48. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Facebook-BbQ3b7m8.js +0 -0
  49. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Facebook-BbQ3b7m8.js.map +0 -0
  50. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/FilePlayer-CrnjtJ_4.js +0 -0
  51. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/FilePlayer-CrnjtJ_4.js.map +0 -0
  52. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Kaltura-BaF5B9Gz.js +0 -0
  53. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Kaltura-BaF5B9Gz.js.map +0 -0
  54. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Mixcloud-C3AJY_TK.js +0 -0
  55. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Mixcloud-C3AJY_TK.js.map +0 -0
  56. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Mux-BNzsxVsZ.js +0 -0
  57. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Mux-BNzsxVsZ.js.map +0 -0
  58. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Preview-BWbkjXT0.js +0 -0
  59. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Preview-BWbkjXT0.js.map +0 -0
  60. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/SoundCloud-drvyuesJ.js +0 -0
  61. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/SoundCloud-drvyuesJ.js.map +0 -0
  62. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Streamable-25wD99Nb.js +0 -0
  63. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Streamable-25wD99Nb.js.map +0 -0
  64. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Twitch-CSKdMjpE.js +0 -0
  65. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Twitch-CSKdMjpE.js.map +0 -0
  66. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Vidyard-DAbV3CfF.js +0 -0
  67. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Vidyard-DAbV3CfF.js.map +0 -0
  68. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Vimeo-DB3n9AdR.js +0 -0
  69. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Vimeo-DB3n9AdR.js.map +0 -0
  70. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Wistia-CQyxInPE.js +0 -0
  71. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/Wistia-CQyxInPE.js.map +0 -0
  72. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/YouTube-oq9lBLbf.js +0 -0
  73. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/YouTube-oq9lBLbf.js.map +0 -0
  74. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/index-CrZ89Sf1.css +0 -0
  75. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/index-__ik8WHI.js +0 -0
  76. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/index-__ik8WHI.js.map +0 -0
  77. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/react-plotly-BvgIi118.js +0 -0
  78. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/assets/react-plotly-BvgIi118.js.map +0 -0
  79. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/favicon.svg +0 -0
  80. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/index.html +0 -0
  81. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/logo_dark.svg +0 -0
  82. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/frontend/dist/logo_light.svg +0 -0
  83. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/hello.py +0 -0
  84. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/input_widget.py +0 -0
  85. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/langchain/__init__.py +0 -0
  86. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/langchain/callbacks.py +0 -0
  87. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/langflow/__init__.py +0 -0
  88. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/llama_index/__init__.py +0 -0
  89. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/llama_index/callbacks.py +0 -0
  90. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/logger.py +0 -0
  91. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/markdown.py +0 -0
  92. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/mcp.py +0 -0
  93. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/message.py +0 -0
  94. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/mistralai/__init__.py +0 -0
  95. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/oauth_providers.py +0 -0
  96. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/openai/__init__.py +0 -0
  97. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/py.typed +0 -0
  98. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/secret.py +0 -0
  99. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/semantic_kernel/__init__.py +0 -0
  100. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/session.py +0 -0
  101. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/sidebar.py +0 -0
  102. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/slack/__init__.py +0 -0
  103. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/socket.py +0 -0
  104. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/step.py +0 -0
  105. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/sync.py +0 -0
  106. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/teams/__init__.py +0 -0
  107. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/teams/app.py +0 -0
  108. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/bn.json +0 -0
  109. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/el-GR.json +0 -0
  110. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/en-US.json +0 -0
  111. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/es.json +0 -0
  112. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/fr-FR.json +0 -0
  113. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/gu.json +0 -0
  114. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/he-IL.json +0 -0
  115. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/hi.json +0 -0
  116. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/ja.json +0 -0
  117. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/kn.json +0 -0
  118. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/ml.json +0 -0
  119. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/mr.json +0 -0
  120. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/nl.json +0 -0
  121. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/ta.json +0 -0
  122. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/te.json +0 -0
  123. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/zh-CN.json +0 -0
  124. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations/zh-TW.json +0 -0
  125. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/translations.py +0 -0
  126. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/types.py +0 -0
  127. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/user.py +0 -0
  128. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/user_session.py +0 -0
  129. {chainlit-2.8.0 → chainlit-2.8.1}/chainlit/utils.py +0 -0
  130. {chainlit-2.8.0 → chainlit-2.8.1}/pyproject.toml +0 -0
  131. {chainlit-2.8.0 → chainlit-2.8.1}/tests/__init__.py +0 -0
  132. {chainlit-2.8.0 → chainlit-2.8.1}/tests/auth/__init__.py +0 -0
  133. {chainlit-2.8.0 → chainlit-2.8.1}/tests/auth/test_cookie.py +0 -0
  134. {chainlit-2.8.0 → chainlit-2.8.1}/tests/conftest.py +0 -0
  135. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/__init__.py +0 -0
  136. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/conftest.py +0 -0
  137. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/storage_clients/test_gcs.py +0 -0
  138. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/storage_clients/test_s3.py +0 -0
  139. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/test_get_data_layer.py +0 -0
  140. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/test_literalai.py +0 -0
  141. {chainlit-2.8.0 → chainlit-2.8.1}/tests/data/test_sql_alchemy.py +0 -0
  142. {chainlit-2.8.0 → chainlit-2.8.1}/tests/llama_index/test_callbacks.py +0 -0
  143. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_callbacks.py +0 -0
  144. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_context.py +0 -0
  145. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_emitter.py +0 -0
  146. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_server.py +0 -0
  147. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_slack_socket_mode.py +0 -0
  148. {chainlit-2.8.0 → chainlit-2.8.1}/tests/test_user_session.py +0 -0
  149. {chainlit-2.8.0 → chainlit-2.8.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chainlit
3
- Version: 2.8.0
3
+ Version: 2.8.1
4
4
  Summary: Build Conversational AI.
5
5
  Project-URL: Homepage, https://chainlit.io/
6
6
  Project-URL: Documentation, https://docs.chainlit.io/
@@ -83,7 +83,9 @@ Description-Content-Type: text/markdown
83
83
 
84
84
  </p>
85
85
  <p align="center">
86
- <a href="https://discord.gg/k73SQ3FyUh" rel="nofollow"><img alt="Discord" src="https://dcbadge.vercel.app/api/server/ZThrUxbAYw?style=flat" style="max-width:100%;"></a>
86
+ <a href="https://discord.gg/k73SQ3FyUh" target="_blank">
87
+ <img src="https://img.shields.io/discord/1088038867602526210?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb"
88
+ alt="chat on Discord"></a>
87
89
  <a href="https://twitter.com/chainlit_io" rel="nofollow"><img alt="Twitter" src="https://img.shields.io/twitter/url/https/twitter.com/chainlit_io.svg?style=social&label=Follow%20%40chainlit_io" style="max-width:100%;"></a>
88
90
  <a href="https://pypistats.org/packages/chainlit" rel="nofollow"><img alt="Downloads" src="https://img.shields.io/pypi/dm/chainlit" style="max-width:100%;"></a>
89
91
  <a href="https://github.com/chainlit/chainlit/graphs/contributors" rel="nofollow"><img alt="Contributors" src="https://img.shields.io/github/contributors/chainlit/chainlit" style="max-width:100%;"></a>
@@ -5,7 +5,9 @@
5
5
 
6
6
  </p>
7
7
  <p align="center">
8
- <a href="https://discord.gg/k73SQ3FyUh" rel="nofollow"><img alt="Discord" src="https://dcbadge.vercel.app/api/server/ZThrUxbAYw?style=flat" style="max-width:100%;"></a>
8
+ <a href="https://discord.gg/k73SQ3FyUh" target="_blank">
9
+ <img src="https://img.shields.io/discord/1088038867602526210?logo=discord&labelColor=%20%235462eb&logoColor=%20%23f5f5f5&color=%20%235462eb"
10
+ alt="chat on Discord"></a>
9
11
  <a href="https://twitter.com/chainlit_io" rel="nofollow"><img alt="Twitter" src="https://img.shields.io/twitter/url/https/twitter.com/chainlit_io.svg?style=social&label=Follow%20%40chainlit_io" style="max-width:100%;"></a>
10
12
  <a href="https://pypistats.org/packages/chainlit" rel="nofollow"><img alt="Downloads" src="https://img.shields.io/pypi/dm/chainlit" style="max-width:100%;"></a>
11
13
  <a href="https://github.com/chainlit/chainlit/graphs/contributors" rel="nofollow"><img alt="Contributors" src="https://img.shields.io/github/contributors/chainlit/chainlit" style="max-width:100%;"></a>
@@ -191,6 +191,8 @@ alert_style = "classic"
191
191
  # login_page_image_filter = "brightness-50 grayscale"
192
192
  # login_page_image_dark_filter = "contrast-200 blur-sm"
193
193
 
194
+ # Specify a custom meta URL (used for meta tags like og:url)
195
+ # custom_meta_url = "https://github.com/Chainlit/chainlit"
194
196
 
195
197
  # Specify a custom meta image url.
196
198
  # custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png"
@@ -335,6 +337,8 @@ class UISettings(BaseModel):
335
337
  login_page_image_filter: Optional[str] = None
336
338
  login_page_image_dark_filter: Optional[str] = None
337
339
 
340
+ # Optional custom meta tag for URL preview
341
+ custom_meta_url: Optional[str] = None
338
342
  # Optional custom meta tag for image preview
339
343
  custom_meta_image_url: Optional[str] = None
340
344
  # Optional logo file url
@@ -737,12 +737,21 @@ class SQLAlchemyDataLayer(BaseDataLayer):
737
737
  for element in elements:
738
738
  thread_id = element["element_threadid"]
739
739
  if thread_id is not None:
740
+ element_url: str | None = None
741
+ if (self.storage_provider is not None) and (
742
+ "element_objectkey" in element
743
+ ):
744
+ element_url = await self.storage_provider.get_read_url(
745
+ object_key=element["element_objectkey"],
746
+ )
747
+ else:
748
+ element_url = element.get("element_url")
740
749
  element_dict = ElementDict(
741
750
  id=element["element_id"],
742
751
  threadId=thread_id,
743
752
  type=element["element_type"],
744
753
  chainlitKey=element.get("element_chainlitkey"),
745
- url=element.get("element_url"),
754
+ url=element_url,
746
755
  objectKey=element.get("element_objectkey"),
747
756
  name=element["element_name"],
748
757
  display=element["element_display"],
@@ -374,7 +374,7 @@ def get_html_template(root_path):
374
374
  JS_PLACEHOLDER = "<!-- JS INJECTION PLACEHOLDER -->"
375
375
  CSS_PLACEHOLDER = "<!-- CSS INJECTION PLACEHOLDER -->"
376
376
 
377
- default_url = "https://github.com/Chainlit/chainlit"
377
+ default_url = config.ui.custom_meta_url or "https://github.com/Chainlit/chainlit"
378
378
  default_meta_image_url = (
379
379
  "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png"
380
380
  )
@@ -1001,8 +1001,8 @@ async def get_shared_thread(
1001
1001
 
1002
1002
  is_shared = bool(metadata.get("is_shared"))
1003
1003
 
1004
- # Proceed only if both conditions are True.
1005
- if not (user_can_view and is_shared):
1004
+ # Proceed only raise an error if both conditions are False.
1005
+ if (not user_can_view) and (not is_shared):
1006
1006
  raise HTTPException(status_code=404, detail="Thread not found")
1007
1007
 
1008
1008
  metadata.pop("chat_profile", None)
@@ -318,8 +318,6 @@ async def process_slack_message(
318
318
  author=user.metadata.get("real_name"),
319
319
  )
320
320
 
321
- await msg.send()
322
-
323
321
  if on_message := config.code.on_message:
324
322
  await on_message(msg)
325
323
 
@@ -0,0 +1,245 @@
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "Abbrechen",
5
+ "confirm": "Bestätigen",
6
+ "continue": "Fortfahren",
7
+ "goBack": "Zurück",
8
+ "reset": "Zurücksetzen",
9
+ "submit": "Absenden"
10
+ },
11
+ "status": {
12
+ "loading": "Lädt...",
13
+ "error": {
14
+ "default": "Ein Fehler ist aufgetreten",
15
+ "serverConnection": "Server konnte nicht erreicht werden"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "Melde dich an, um auf die App zuzugreifen",
22
+ "form": {
23
+ "email": {
24
+ "label": "E-Mail Adresse",
25
+ "required": "E-Mail Adresse ist ein Pflichtfeld",
26
+ "placeholder": "me@example.com"
27
+ },
28
+ "password": {
29
+ "label": "Passwort",
30
+ "required": "Passwort ist ein Pflichtfeld"
31
+ },
32
+ "actions": {
33
+ "signin": "Anmelden"
34
+ },
35
+ "alternativeText": {
36
+ "or": "ODER"
37
+ }
38
+ },
39
+ "errors": {
40
+ "default": "Anmeldung fehlgeschlagen",
41
+ "signin": "Versuche dich mit einem anderen Konto anzumelden",
42
+ "oauthSignin": "Versuche dich mit einem anderen Konto anzumelden",
43
+ "redirectUriMismatch": "Der Redirect-URI stimmt nicht mit der Konfiguration der Oauth-Anwendung überein",
44
+ "oauthCallback": "Versuche dich mit einem anderen Konto anzumelden",
45
+ "oauthCreateAccount": "Versuche dich mit einem anderen Konto anzumelden",
46
+ "emailCreateAccount": "Versuche dich mit einem anderen Konto anzumelden",
47
+ "callback": "Versuche dich mit einem anderen Konto anzumelden",
48
+ "oauthAccountNotLinked": "Um die Identität zu bestätigen, melde dich mit demselben Konto an, das du ursprünglich verwendet hast",
49
+ "emailSignin": "Die E-Mail konnte nicht gesendet werden",
50
+ "emailVerify": "Es wurde eine neue E-Mail versandt. Bitte überprüfe dein E-Mail Postfach",
51
+ "credentialsSignin": "Anmeldung fehlgeschlagen. Überprüfe, ob die angegebenen Benutzerdaten korrekt sind",
52
+ "sessionRequired": "Bitte melde dich an, um auf diese Seite zuzugreifen"
53
+ }
54
+ },
55
+ "provider": {
56
+ "continue": "Fortfahren mit {{provider}}"
57
+ }
58
+ },
59
+ "chat": {
60
+ "input": {
61
+ "placeholder": "Nachricht eingeben...",
62
+ "actions": {
63
+ "send": "Nachricht senden",
64
+ "stop": "Aufgabe stoppen",
65
+ "attachFiles": "Dateien anhängen"
66
+ }
67
+ },
68
+ "commands": {
69
+ "button": "Tools",
70
+ "changeTool": "Tool wechseln",
71
+ "availableTools": "Verfügbare Tools"
72
+ },
73
+ "speech": {
74
+ "start": "Aufnahme starten",
75
+ "stop": "Aufnahme stoppen",
76
+ "connecting": "Verbinde"
77
+ },
78
+ "fileUpload": {
79
+ "dragDrop": "Ziehe deine Dateien hierher",
80
+ "browse": "Dateien durchsuchen",
81
+ "sizeLimit": "Limit:",
82
+ "errors": {
83
+ "failed": "Hochladen fehlgeschlagen",
84
+ "cancelled": "Abbruch des hochladens von"
85
+ },
86
+ "actions": {
87
+ "cancelUpload": "Upload abbrechen",
88
+ "removeAttachment": "Anhang entfernen"
89
+ }
90
+ },
91
+ "messages": {
92
+ "status": {
93
+ "using": "Verwendet",
94
+ "used": "Verwendete"
95
+ },
96
+ "actions": {
97
+ "copy": {
98
+ "button": "In Zwischenablage kopieren",
99
+ "success": "Kopiert!"
100
+ }
101
+ },
102
+ "feedback": {
103
+ "positive": "Hilfreich",
104
+ "negative": "Nicht hilfreich",
105
+ "edit": "Feedback editieren",
106
+ "dialog": {
107
+ "title": "Füge einen Kommentar hinzu",
108
+ "submit": "Feedback absenden",
109
+ "yourFeedback": "Dein Feedback..."
110
+ },
111
+ "status": {
112
+ "updating": "Aktualisiert",
113
+ "updated": "Feedback aktualisiert"
114
+ }
115
+ }
116
+ },
117
+ "history": {
118
+ "title": "Vergangene Eingaben",
119
+ "empty": "Leer...",
120
+ "show": "Historie anzeigen"
121
+ },
122
+ "settings": {
123
+ "title": "Einstellungen",
124
+ "customize": "Passe die Chat Einstellungen hier an"
125
+ },
126
+ "watermark": "LLMs können Fehler machen. Überprüfe bitte stets die Inhalte."
127
+ },
128
+ "threadHistory": {
129
+ "sidebar": {
130
+ "title": "Vergangene Chats",
131
+ "filters": {
132
+ "search": "Suche",
133
+ "placeholder": "Suche konversationen..."
134
+ },
135
+ "timeframes": {
136
+ "today": "Heute",
137
+ "yesterday": "Gestern",
138
+ "previous7days": "Vor 7 Tagen",
139
+ "previous30days": "Vor 30 Tagen"
140
+ },
141
+ "empty": "Kein Chat gefunden",
142
+ "actions": {
143
+ "close": "Seitenleiste schließen",
144
+ "open": "Seitenleiste öffnen"
145
+ }
146
+ },
147
+ "thread": {
148
+ "untitled": "Unbenannter Thread",
149
+ "menu": {
150
+ "rename": "Umbenennen",
151
+ "share": "Teilen",
152
+ "delete": "Löschen"
153
+ },
154
+ "actions": {
155
+ "share": {
156
+ "title": "Thread löschen bestätigen",
157
+ "button": "Teilen",
158
+ "status": {
159
+ "copied": "Link kopiert",
160
+ "created": "Freigabelink erstellt!",
161
+ "unshared": "Teilen ist für diesen Thread deaktiviert"
162
+ },
163
+ "error": {
164
+ "create": "Fehler beim Erstellen des Freigabelinks",
165
+ "unshare": "Freigabe des Threads konnte nicht aufgehoben werden"
166
+ }
167
+ },
168
+ "delete": {
169
+ "title": "Löschen bestätigen",
170
+ "description": "Dies wird den Thread sowie seine Nachrichten und Elemente löschen. Dies kann nicht rückgängig gemacht werden",
171
+ "success": "Chat gelöscht",
172
+ "inProgress": "Chat wird gelöscht"
173
+ },
174
+ "rename": {
175
+ "title": "Thread umbenennen",
176
+ "description": "Gebe einen neuen Namen für den Thread ein",
177
+ "form": {
178
+ "name": {
179
+ "label": "Name",
180
+ "placeholder": "Neuen Namen eingeben"
181
+ }
182
+ },
183
+ "success": "Thread umbenannt!",
184
+ "inProgress": "Thread wird umbenannt"
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "navigation": {
190
+ "header": {
191
+ "chat": "Chat",
192
+ "readme": "Anleitung",
193
+ "theme": {
194
+ "light": "Helles Design",
195
+ "dark": "Dunkles Design",
196
+ "system": "System Design"
197
+ }
198
+ },
199
+ "newChat": {
200
+ "button": "Neuer Chat",
201
+ "dialog": {
202
+ "title": "Möchtest du einen neuen Chat erstellen?",
203
+ "description": "Es werden die aktuellen Nachrichten gelöscht und ein neuer Chat geöffnet.",
204
+ "tooltip": "Neuer Chat"
205
+ }
206
+ },
207
+ "user": {
208
+ "menu": {
209
+ "settings": "Einstellungen",
210
+ "settingsKey": "S",
211
+ "apiKeys": "API Schlüssel",
212
+ "logout": "Abmelden"
213
+ }
214
+ }
215
+ },
216
+ "apiKeys": {
217
+ "title": "Benötigte API Schlüssel",
218
+ "description": "Um diese App zu nutzen, werden die folgenden API Schlüssel benötigt. Die Schlüssel werden im lokalen Speicher Ihres Geräts gespeichert.",
219
+ "success": {
220
+ "saved": "Erfolgreich gespeichert"
221
+ }
222
+ },
223
+ "alerts": {
224
+ "info": "Info",
225
+ "note": "Hinweis",
226
+ "tip": "Tipp",
227
+ "important": "Wichtig",
228
+ "warning": "Warnung",
229
+ "caution": "Vorsicht",
230
+ "debug": "Debug",
231
+ "example": "Beispiel",
232
+ "success": "Erfolg",
233
+ "help": "Hilfe",
234
+ "idea": "Idee",
235
+ "pending": "Ausstehend",
236
+ "security": "Sicherheit",
237
+ "beta": "Beta",
238
+ "best-practice": "Bewährte Praxis"
239
+ },
240
+ "components": {
241
+ "MultiSelectInput": {
242
+ "placeholder": "Wähle aus..."
243
+ }
244
+ }
245
+ }
@@ -0,0 +1,245 @@
1
+ {
2
+ "common": {
3
+ "actions": {
4
+ "cancel": "취소",
5
+ "confirm": "확인",
6
+ "continue": "계속",
7
+ "goBack": "뒤로 가기",
8
+ "reset": "초기화",
9
+ "submit": "제출"
10
+ },
11
+ "status": {
12
+ "loading": "로딩 중...",
13
+ "error": {
14
+ "default": "오류가 발생했습니다",
15
+ "serverConnection": "서버에 연결할 수 없습니다"
16
+ }
17
+ }
18
+ },
19
+ "auth": {
20
+ "login": {
21
+ "title": "앱에 접근하려면 로그인하세요",
22
+ "form": {
23
+ "email": {
24
+ "label": "이메일 주소",
25
+ "required": "이메일은 필수 입력 항목입니다",
26
+ "placeholder": "me@example.com"
27
+ },
28
+ "password": {
29
+ "label": "비밀번호",
30
+ "required": "비밀번호는 필수 입력 항목입니다"
31
+ },
32
+ "actions": {
33
+ "signin": "로그인"
34
+ },
35
+ "alternativeText": {
36
+ "or": "또는"
37
+ }
38
+ },
39
+ "errors": {
40
+ "default": "로그인할 수 없습니다",
41
+ "signin": "다른 계정으로 로그인해보세요",
42
+ "oauthSignin": "다른 계정으로 로그인해보세요",
43
+ "redirectUriMismatch": "리다이렉트 URI가 OAuth 앱 설정과 일치하지 않습니다",
44
+ "oauthCallback": "다른 계정으로 로그인해보세요",
45
+ "oauthCreateAccount": "다른 계정으로 로그인해보세요",
46
+ "emailCreateAccount": "다른 계정으로 로그인해보세요",
47
+ "callback": "다른 계정으로 로그인해보세요",
48
+ "oauthAccountNotLinked": "신원을 확인하려면 원래 사용했던 계정으로 로그인하세요",
49
+ "emailSignin": "이메일을 보낼 수 없습니다",
50
+ "emailVerify": "이메일을 확인해주세요. 새로운 이메일이 발송되었습니다",
51
+ "credentialsSignin": "로그인 실패. 제공한 정보가 올바른지 확인하세요",
52
+ "sessionRequired": "이 페이지에 접근하려면 로그인해주세요"
53
+ }
54
+ },
55
+ "provider": {
56
+ "continue": "{{provider}}로 계속하기"
57
+ }
58
+ },
59
+ "chat": {
60
+ "input": {
61
+ "placeholder": "여기에 메시지를 입력하세요...",
62
+ "actions": {
63
+ "send": "메시지 보내기",
64
+ "stop": "작업 중지",
65
+ "attachFiles": "파일 첨부"
66
+ }
67
+ },
68
+ "commands": {
69
+ "button": "도구",
70
+ "changeTool": "도구 변경",
71
+ "availableTools": "사용 가능한 도구"
72
+ },
73
+ "speech": {
74
+ "start": "녹음 시작",
75
+ "stop": "녹음 중지",
76
+ "connecting": "연결 중"
77
+ },
78
+ "fileUpload": {
79
+ "dragDrop": "여기에 파일을 드래그 앤 드롭하세요",
80
+ "browse": "파일 찾아보기",
81
+ "sizeLimit": "제한:",
82
+ "errors": {
83
+ "failed": "업로드 실패",
84
+ "cancelled": "업로드 취소:"
85
+ },
86
+ "actions": {
87
+ "cancelUpload": "업로드 취소",
88
+ "removeAttachment": "첨부 파일 제거"
89
+ }
90
+ },
91
+ "messages": {
92
+ "status": {
93
+ "using": "사용 중",
94
+ "used": "사용됨"
95
+ },
96
+ "actions": {
97
+ "copy": {
98
+ "button": "클립보드로 복사",
99
+ "success": "복사되었습니다!"
100
+ }
101
+ },
102
+ "feedback": {
103
+ "positive": "도움이 되었음",
104
+ "negative": "도움이 되지 않음",
105
+ "edit": "피드백 수정",
106
+ "dialog": {
107
+ "title": "댓글 추가",
108
+ "submit": "피드백 제출",
109
+ "yourFeedback": "귀하의 피드백..."
110
+ },
111
+ "status": {
112
+ "updating": "업데이트 중",
113
+ "updated": "피드백이 업데이트되었습니다"
114
+ }
115
+ }
116
+ },
117
+ "history": {
118
+ "title": "최근 입력",
119
+ "empty": "비어 있습니다...",
120
+ "show": "기록 표시"
121
+ },
122
+ "settings": {
123
+ "title": "설정 패널",
124
+ "customize": "여기에서 채팅 설정을 사용자 지정하세요"
125
+ },
126
+ "watermark": "LLM은 실수할 수 있습니다. 중요한 정보는 확인하세요."
127
+ },
128
+ "threadHistory": {
129
+ "sidebar": {
130
+ "title": "이전 채팅",
131
+ "filters": {
132
+ "search": "검색",
133
+ "placeholder": "대화 검색..."
134
+ },
135
+ "timeframes": {
136
+ "today": "오늘",
137
+ "yesterday": "어제",
138
+ "previous7days": "지난 7일",
139
+ "previous30days": "지난 30일"
140
+ },
141
+ "empty": "스레드를 찾을 수 없습니다",
142
+ "actions": {
143
+ "close": "사이드바 닫기",
144
+ "open": "사이드바 열기"
145
+ }
146
+ },
147
+ "thread": {
148
+ "untitled": "제목 없는 대화",
149
+ "menu": {
150
+ "rename": "이름 변경",
151
+ "share": "공유",
152
+ "delete": "삭제"
153
+ },
154
+ "actions": {
155
+ "share": {
156
+ "title": "채팅 링크 공유",
157
+ "button": "공유",
158
+ "status": {
159
+ "copied": "링크 복사됨",
160
+ "created": "공유 링크가 생성되었습니다!",
161
+ "unshared": "이 스레드의 공유가 비활성화되었습니다"
162
+ },
163
+ "error": {
164
+ "create": "공유 링크 생성 실패",
165
+ "unshare": "스레드 공유 해제 실패"
166
+ }
167
+ },
168
+ "delete": {
169
+ "title": "삭제 확인",
170
+ "description": "이렇게 하면 스레드와 그 메시지 및 요소가 삭제됩니다. 이 작업은 취소할 수 없습니다",
171
+ "success": "채팅이 삭제되었습니다",
172
+ "inProgress": "채팅 삭제 중"
173
+ },
174
+ "rename": {
175
+ "title": "스레드 이름 변경",
176
+ "description": "이 스레드의 새 이름을 입력하세요",
177
+ "form": {
178
+ "name": {
179
+ "label": "이름",
180
+ "placeholder": "새 이름 입력"
181
+ }
182
+ },
183
+ "success": "스레드 이름이 변경되었습니다!",
184
+ "inProgress": "스레드 이름 변경 중"
185
+ }
186
+ }
187
+ }
188
+ },
189
+ "navigation": {
190
+ "header": {
191
+ "chat": "채팅",
192
+ "readme": "읽어보기",
193
+ "theme": {
194
+ "light": "밝은 테마",
195
+ "dark": "어두운 테마",
196
+ "system": "시스템 따라가기"
197
+ }
198
+ },
199
+ "newChat": {
200
+ "button": "새 채팅",
201
+ "dialog": {
202
+ "title": "새 채팅 만들기",
203
+ "description": "이렇게 하면 현재 채팅 기록이 지워집니다. 계속하시겠습니까?",
204
+ "tooltip": "새 채팅"
205
+ }
206
+ },
207
+ "user": {
208
+ "menu": {
209
+ "settings": "설정",
210
+ "settingsKey": "S",
211
+ "apiKeys": "API 키",
212
+ "logout": "로그아웃"
213
+ }
214
+ }
215
+ },
216
+ "apiKeys": {
217
+ "title": "필요한 API 키",
218
+ "description": "이 앱을 사용하려면 다음 API 키가 필요합니다. 키는 기기의 로컬 저장소에 저장됩니다.",
219
+ "success": {
220
+ "saved": "성공적으로 저장되었습니다"
221
+ }
222
+ },
223
+ "alerts": {
224
+ "info": "정보",
225
+ "note": "참고",
226
+ "tip": "팁",
227
+ "important": "중요",
228
+ "warning": "경고",
229
+ "caution": "주의",
230
+ "debug": "디버그",
231
+ "example": "예시",
232
+ "success": "성공",
233
+ "help": "도움말",
234
+ "idea": "아이디어",
235
+ "pending": "대기 중",
236
+ "security": "보안",
237
+ "beta": "베타",
238
+ "best-practice": "모범 사례"
239
+ },
240
+ "components": {
241
+ "MultiSelectInput": {
242
+ "placeholder": "선택..."
243
+ }
244
+ }
245
+ }
@@ -0,0 +1 @@
1
+ __version__ = "2.8.1"
@@ -1 +0,0 @@
1
- __version__ = "2.8.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes