unique_toolkit 1.3.0__tar.gz → 1.3.2__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.
Files changed (140) hide show
  1. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/CHANGELOG.md +6 -0
  2. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/PKG-INFO +7 -1
  3. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/pyproject.toml +1 -1
  4. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/dev_util.py +4 -1
  5. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/unique_settings.py +42 -8
  6. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/schemas.py +48 -12
  7. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/LICENSE +0 -0
  8. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/README.md +0 -0
  9. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/default_language_model.py +0 -0
  20. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/endpoint_builder.py +0 -0
  21. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  22. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/exception.py +0 -0
  23. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  24. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  25. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  26. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/string_utilities.py +0 -0
  27. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  28. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/token/token_counting.py +0 -0
  29. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/utils/__init__.py +0 -0
  30. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  31. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  32. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  33. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/validate_required_values.py +0 -0
  34. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/_common/validators.py +0 -0
  35. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/__init__.py +0 -0
  36. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  37. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/config.py +0 -0
  38. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  39. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  40. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  41. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  42. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  43. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  44. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  45. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  46. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  47. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  48. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  49. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  50. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  51. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  52. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  53. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  54. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  55. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  56. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  57. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  58. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  59. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  60. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/__init__.py +0 -0
  61. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  62. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  63. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  64. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/memory.py +0 -0
  65. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  66. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  67. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
  68. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  69. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/schema.py +0 -0
  70. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/a2a/service.py +0 -0
  71. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  72. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/config.py +0 -0
  73. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/factory.py +0 -0
  74. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  75. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  76. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  77. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  78. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/schemas.py +0 -0
  79. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  80. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  81. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/tool.py +0 -0
  82. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  83. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  84. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  85. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  86. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  87. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  88. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  89. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  90. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  91. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/__init__.py +0 -0
  92. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/init_logging.py +0 -0
  93. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/init_sdk.py +0 -0
  94. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/performance/async_tasks.py +0 -0
  95. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  96. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/schemas.py +0 -0
  97. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/app/verification.py +0 -0
  98. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/__init__.py +0 -0
  99. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/constants.py +0 -0
  100. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/functions.py +0 -0
  101. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/schemas.py +0 -0
  102. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/service.py +0 -0
  103. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/state.py +0 -0
  104. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/chat/utils.py +0 -0
  105. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/__init__.py +0 -0
  106. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/constants.py +0 -0
  107. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/functions.py +0 -0
  108. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/service.py +0 -0
  109. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/content/utils.py +0 -0
  110. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/__init__.py +0 -0
  111. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/constants.py +0 -0
  112. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/functions.py +0 -0
  113. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/schemas.py +0 -0
  114. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/service.py +0 -0
  115. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/embedding/utils.py +0 -0
  116. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/__init__.py +0 -0
  117. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  118. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  119. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  120. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  121. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  122. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/framework_utilities/utils.py +0 -0
  123. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/__init__.py +0 -0
  124. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/builder.py +0 -0
  125. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/constants.py +0 -0
  126. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/functions.py +0 -0
  127. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/infos.py +0 -0
  128. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/prompt.py +0 -0
  129. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/reference.py +0 -0
  130. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/schemas.py +0 -0
  131. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/service.py +0 -0
  132. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/language_model/utils.py +0 -0
  133. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/protocols/support.py +0 -0
  134. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/short_term_memory/__init__.py +0 -0
  135. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/short_term_memory/constants.py +0 -0
  136. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/short_term_memory/functions.py +0 -0
  137. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/short_term_memory/schemas.py +0 -0
  138. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/short_term_memory/service.py +0 -0
  139. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/smart_rules/__init__.py +0 -0
  140. {unique_toolkit-1.3.0 → unique_toolkit-1.3.2}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.2] - 2025-09-29
9
+ - Auto-update unique settings on event arrival in SSE client
10
+
11
+ ## [1.3.1] - 2025-09-29
12
+ - More documentation on referencing
13
+
8
14
  ## [1.3.0] - 2025-09-28
9
15
  - Add utilitiy to enhance pydantic model with metadata
10
16
  - Add capability to collect this metadata with same hierarchy as nested pydantic models
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -118,6 +118,12 @@ All notable changes to this project will be documented in this file.
118
118
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
119
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
120
 
121
+ ## [1.3.2] - 2025-09-29
122
+ - Auto-update unique settings on event arrival in SSE client
123
+
124
+ ## [1.3.1] - 2025-09-29
125
+ - More documentation on referencing
126
+
121
127
  ## [1.3.0] - 2025-09-28
122
128
  - Add utilitiy to enhance pydantic model with metadata
123
129
  - Add capability to collect this metadata with same hierarchy as nested pydantic models
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.3.0"
3
+ version = "1.3.2"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -46,7 +46,8 @@ def get_event_generator(
46
46
  event_type: type[T],
47
47
  ) -> Generator[T, None, None]:
48
48
  """
49
- Generator that yields only events of the specified type from an SSE stream.
49
+ Generator that updates the unique settings according to the events and
50
+ yields only events of the specified type from an SSE stream.
50
51
 
51
52
  Args:
52
53
  sse_client: The SSE client to read events from
@@ -74,6 +75,8 @@ def get_event_generator(
74
75
  ):
75
76
  continue
76
77
 
78
+ unique_settings.update_from_event(event=parsed_event)
79
+
77
80
  yield parsed_event
78
81
 
79
82
  except Exception as e:
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  from logging import getLogger
3
3
  from pathlib import Path
4
- from typing import Self, TypeVar
4
+ from typing import TYPE_CHECKING, Self, TypeVar
5
5
  from urllib.parse import ParseResult, urlparse, urlunparse
6
6
 
7
7
  import unique_sdk
@@ -9,6 +9,10 @@ from platformdirs import user_config_dir
9
9
  from pydantic import AliasChoices, Field, SecretStr, model_validator
10
10
  from pydantic_settings import BaseSettings, SettingsConfigDict
11
11
 
12
+ if TYPE_CHECKING:
13
+ from unique_toolkit.app.schemas import BaseEvent
14
+
15
+
12
16
  logger = getLogger(__name__)
13
17
 
14
18
  T = TypeVar("T", bound=BaseSettings)
@@ -159,6 +163,13 @@ class UniqueAuth(BaseSettings):
159
163
  def _warn_about_defaults(self) -> Self:
160
164
  return warn_about_defaults(self)
161
165
 
166
+ @classmethod
167
+ def from_event(cls, event: "BaseEvent") -> Self:
168
+ return cls(
169
+ company_id=SecretStr(event.company_id),
170
+ user_id=SecretStr(event.user_id),
171
+ )
172
+
162
173
 
163
174
  class UniqueChatEventFilterOptions(BaseSettings):
164
175
  # Empty string evals to False
@@ -197,10 +208,10 @@ class UniqueSettings:
197
208
  chat_event_filter_options: UniqueChatEventFilterOptions | None = None,
198
209
  env_file: Path | None = None,
199
210
  ):
200
- self.app = app
201
- self.auth = auth
202
- self.api = api
203
- self.chat_event_filter_options = chat_event_filter_options
211
+ self._app = app
212
+ self._auth = auth
213
+ self._api = api
214
+ self._chat_event_filter_options = chat_event_filter_options
204
215
  self._env_file: Path | None = (
205
216
  env_file if (env_file and env_file.exists()) else None
206
217
  )
@@ -310,9 +321,9 @@ class UniqueSettings:
310
321
  This method configures the global unique_sdk module with the API key,
311
322
  app ID, and base URL from these settings.
312
323
  """
313
- unique_sdk.api_key = self.app.key.get_secret_value()
314
- unique_sdk.app_id = self.app.id.get_secret_value()
315
- unique_sdk.api_base = self.api.sdk_url()
324
+ unique_sdk.api_key = self._app.key.get_secret_value()
325
+ unique_sdk.app_id = self._app.id.get_secret_value()
326
+ unique_sdk.api_base = self._api.sdk_url()
316
327
 
317
328
  @classmethod
318
329
  def from_env_auto_with_sdk_init(
@@ -331,3 +342,26 @@ class UniqueSettings:
331
342
  settings = cls.from_env_auto(filename)
332
343
  settings.init_sdk()
333
344
  return settings
345
+
346
+ def update_from_event(self, event: "BaseEvent") -> None:
347
+ self._auth = UniqueAuth.from_event(event)
348
+
349
+ @property
350
+ def api(self) -> UniqueApi:
351
+ return self._api
352
+
353
+ @property
354
+ def app(self) -> UniqueApp:
355
+ return self._app
356
+
357
+ @property
358
+ def auth(self) -> UniqueAuth:
359
+ return self._auth
360
+
361
+ @auth.setter
362
+ def auth(self, value: UniqueAuth) -> None:
363
+ self._auth = value
364
+
365
+ @property
366
+ def chat_event_filter_options(self) -> UniqueChatEventFilterOptions | None:
367
+ return self._chat_event_filter_options
@@ -26,15 +26,41 @@ class ContentMetadata(BaseModel):
26
26
 
27
27
  class ContentChunk(BaseModel):
28
28
  model_config = model_config
29
- id: str
30
- text: str
31
- order: int
32
- key: str | None = None
33
- chunk_id: str | None = None
34
- url: str | None = None
35
- title: str | None = None
36
- start_page: int | None = None
37
- end_page: int | None = None
29
+ id: str = Field(
30
+ default="",
31
+ description="The id of the content this chunk belongs to. The id starts with 'cont_' followed by an alphanumeric string of length 24.",
32
+ examples=["cont_abcdefgehijklmnopqrstuvwx"],
33
+ )
34
+ text: str = Field(default="", description="The text content of the chunk.")
35
+ order: int = Field(
36
+ default=0,
37
+ description="The order of the chunk in the original content. Concatenating the chunks in order will give the original content.",
38
+ )
39
+ key: str | None = Field(
40
+ default=None,
41
+ description="The key of the chunk. For document chunks this is the the filename",
42
+ )
43
+ chunk_id: str | None = Field(
44
+ default=None,
45
+ description="The id of the chunk. The id starts with 'chunk_' followed by an alphanumeric string of length 24.",
46
+ examples=["chunk_abcdefgehijklmnopqrstuv"],
47
+ )
48
+ url: str | None = Field(
49
+ default=None,
50
+ description="For chunk retrieved from the web this is the url of the chunk.",
51
+ )
52
+ title: str | None = Field(
53
+ default=None,
54
+ description="The title of the chunk. For document chunks this is the title of the document.",
55
+ )
56
+ start_page: int | None = Field(
57
+ default=None,
58
+ description="The start page of the chunk. For document chunks this is the start page of the document.",
59
+ )
60
+ end_page: int | None = Field(
61
+ default=None,
62
+ description="The end page of the chunk. For document chunks this is the end page of the document.",
63
+ )
38
64
 
39
65
  object: str | None = None
40
66
  metadata: ContentMetadata | None = None
@@ -45,9 +71,19 @@ class ContentChunk(BaseModel):
45
71
 
46
72
  class Content(BaseModel):
47
73
  model_config = model_config
48
- id: str
49
- key: str
50
- title: str | None = None
74
+ id: str = Field(
75
+ default="",
76
+ description="The id of the content. The id starts with 'cont_' followed by an alphanumeric string of length 24.",
77
+ examples=["cont_abcdefgehijklmnopqrstuvwx"],
78
+ )
79
+ key: str = Field(
80
+ default="",
81
+ description="The key of the content. For documents this is the the filename",
82
+ )
83
+ title: str | None = Field(
84
+ default=None,
85
+ description="The title of the content. For documents this is the title of the document.",
86
+ )
51
87
  url: str | None = None
52
88
  chunks: list[ContentChunk] = []
53
89
  write_url: str | None = None
File without changes
File without changes