unique_toolkit 1.0.0__tar.gz → 1.1.0__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.
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/CHANGELOG.md +3 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/PKG-INFO +4 -1
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/pyproject.toml +1 -1
- unique_toolkit-1.1.0/unique_toolkit/agentic/__init__.py +1 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/dev_util.py +5 -2
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/schemas.py +32 -2
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/unique_settings.py +39 -2
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/LICENSE +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/README.md +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/memory.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/schema.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/a2a/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,6 +5,9 @@ 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.1.0] - 2025-09-18
|
9
|
+
- Enable chat event filtering in SSE event generator via env variables
|
10
|
+
|
8
11
|
## [1.0.0] - 2025-09-18
|
9
12
|
- Bump toolkit version to allow for both patch and minor updates
|
10
13
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.1.0
|
4
4
|
Summary:
|
5
5
|
License: Proprietary
|
6
6
|
Author: Cedric Klinkert
|
@@ -118,6 +118,9 @@ 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.1.0] - 2025-09-18
|
122
|
+
- Enable chat event filtering in SSE event generator via env variables
|
123
|
+
|
121
124
|
## [1.0.0] - 2025-09-18
|
122
125
|
- Bump toolkit version to allow for both patch and minor updates
|
123
126
|
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -42,7 +42,8 @@ def get_sse_client(
|
|
42
42
|
|
43
43
|
|
44
44
|
def get_event_generator(
|
45
|
-
unique_settings: UniqueSettings,
|
45
|
+
unique_settings: UniqueSettings,
|
46
|
+
event_type: type[T],
|
46
47
|
) -> Generator[T, None, None]:
|
47
48
|
"""
|
48
49
|
Generator that yields only events of the specified type from an SSE stream.
|
@@ -68,7 +69,9 @@ def get_event_generator(
|
|
68
69
|
try:
|
69
70
|
payload = json.loads(sse_event.data)
|
70
71
|
parsed_event = event_type.model_validate(payload)
|
71
|
-
if parsed_event is None
|
72
|
+
if parsed_event is None or parsed_event.filter_event(
|
73
|
+
filter_options=unique_settings.chat_event_filter_options
|
74
|
+
):
|
72
75
|
continue
|
73
76
|
|
74
77
|
yield parsed_event
|
@@ -1,14 +1,18 @@
|
|
1
1
|
import json
|
2
2
|
from enum import StrEnum
|
3
3
|
from pathlib import Path
|
4
|
-
from typing import Any, Optional
|
4
|
+
from typing import Any, Generic, Optional, TypeVar, override
|
5
5
|
|
6
6
|
from humps import camelize
|
7
7
|
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
8
|
+
from pydantic_settings import BaseSettings
|
8
9
|
from typing_extensions import deprecated
|
9
10
|
|
11
|
+
from unique_toolkit.app.unique_settings import UniqueChatEventFilterOptions
|
10
12
|
from unique_toolkit.smart_rules.compile import UniqueQL, parse_uniqueql
|
11
13
|
|
14
|
+
FilterOptionsT = TypeVar("FilterOptionsT", bound=BaseSettings)
|
15
|
+
|
12
16
|
# set config to convert camelCase to snake_case
|
13
17
|
model_config = ConfigDict(
|
14
18
|
alias_generator=camelize,
|
@@ -30,7 +34,7 @@ class EventName(StrEnum):
|
|
30
34
|
MAGIC_TABLE_UPDATE_CELL = "unique.magic-table.update-cell"
|
31
35
|
|
32
36
|
|
33
|
-
class BaseEvent(BaseModel):
|
37
|
+
class BaseEvent(BaseModel, Generic[FilterOptionsT]):
|
34
38
|
model_config = model_config
|
35
39
|
|
36
40
|
id: str
|
@@ -46,6 +50,10 @@ class BaseEvent(BaseModel):
|
|
46
50
|
data = json.load(f)
|
47
51
|
return cls.model_validate(data)
|
48
52
|
|
53
|
+
def filter_event(self, *, filter_options: FilterOptionsT | None = None) -> bool:
|
54
|
+
"""Determine if event should be filtered out and be neglected."""
|
55
|
+
return False
|
56
|
+
|
49
57
|
|
50
58
|
###
|
51
59
|
# MCP schemas
|
@@ -242,6 +250,28 @@ class ChatEvent(BaseEvent):
|
|
242
250
|
"assistant": {"id": self.payload.assistant_id},
|
243
251
|
}
|
244
252
|
|
253
|
+
@override
|
254
|
+
def filter_event(
|
255
|
+
self, *, filter_options: UniqueChatEventFilterOptions | None = None
|
256
|
+
) -> bool:
|
257
|
+
# Empty string evals to False
|
258
|
+
if filter_options is None:
|
259
|
+
return False
|
260
|
+
|
261
|
+
if (
|
262
|
+
filter_options.assistant_ids
|
263
|
+
and self.payload.assistant_id not in filter_options.assistant_ids
|
264
|
+
):
|
265
|
+
return True
|
266
|
+
|
267
|
+
if (
|
268
|
+
filter_options.references_in_code
|
269
|
+
and self.payload.name not in filter_options.references_in_code
|
270
|
+
):
|
271
|
+
return True
|
272
|
+
|
273
|
+
return super().filter_event(filter_options=filter_options)
|
274
|
+
|
245
275
|
|
246
276
|
@deprecated(
|
247
277
|
"""Use the more specific `ChatEvent` instead that has the same properties. \
|
@@ -49,6 +49,7 @@ class UniqueApp(BaseSettings):
|
|
49
49
|
deprecated="Use UniqueApi.base_url instead",
|
50
50
|
)
|
51
51
|
endpoint: str = Field(default="dummy")
|
52
|
+
|
52
53
|
endpoint_secret: SecretStr = Field(default=SecretStr("dummy_secret"))
|
53
54
|
|
54
55
|
@model_validator(mode="after")
|
@@ -159,6 +160,29 @@ class UniqueAuth(BaseSettings):
|
|
159
160
|
return warn_about_defaults(self)
|
160
161
|
|
161
162
|
|
163
|
+
class UniqueChatEventFilterOptions(BaseSettings):
|
164
|
+
# Empty string evals to False
|
165
|
+
assistant_ids: list[str] = Field(
|
166
|
+
default=[],
|
167
|
+
description="The assistant ids (space) to filter by. Default is all assistants.",
|
168
|
+
)
|
169
|
+
references_in_code: list[str] = Field(
|
170
|
+
default=[],
|
171
|
+
description="The module (reference) names in code to filter by. Default is all modules.",
|
172
|
+
)
|
173
|
+
|
174
|
+
model_config = SettingsConfigDict(
|
175
|
+
env_prefix="unique_chat_event_filter_options_",
|
176
|
+
env_file_encoding="utf-8",
|
177
|
+
case_sensitive=False,
|
178
|
+
extra="ignore",
|
179
|
+
)
|
180
|
+
|
181
|
+
@model_validator(mode="after")
|
182
|
+
def _warn_about_defaults(self) -> Self:
|
183
|
+
return warn_about_defaults(self)
|
184
|
+
|
185
|
+
|
162
186
|
class EnvFileNotFoundError(FileNotFoundError):
|
163
187
|
"""Raised when no environment file can be found in any of the expected locations."""
|
164
188
|
|
@@ -169,11 +193,14 @@ class UniqueSettings:
|
|
169
193
|
auth: UniqueAuth,
|
170
194
|
app: UniqueApp,
|
171
195
|
api: UniqueApi,
|
196
|
+
*,
|
197
|
+
chat_event_filter_options: UniqueChatEventFilterOptions | None = None,
|
172
198
|
env_file: Path | None = None,
|
173
199
|
):
|
174
200
|
self.app = app
|
175
201
|
self.auth = auth
|
176
202
|
self.api = api
|
203
|
+
self.chat_event_filter_options = chat_event_filter_options
|
177
204
|
self._env_file: Path | None = (
|
178
205
|
env_file if (env_file and env_file.exists()) else None
|
179
206
|
)
|
@@ -220,7 +247,10 @@ class UniqueSettings:
|
|
220
247
|
)
|
221
248
|
|
222
249
|
@classmethod
|
223
|
-
def from_env(
|
250
|
+
def from_env(
|
251
|
+
cls,
|
252
|
+
env_file: Path | None = None,
|
253
|
+
) -> "UniqueSettings":
|
224
254
|
"""Initialize settings from environment variables and/or env file.
|
225
255
|
|
226
256
|
Args:
|
@@ -241,7 +271,14 @@ class UniqueSettings:
|
|
241
271
|
auth = UniqueAuth(_env_file=env_file_str) # type: ignore[call-arg]
|
242
272
|
app = UniqueApp(_env_file=env_file_str) # type: ignore[call-arg]
|
243
273
|
api = UniqueApi(_env_file=env_file_str) # type: ignore[call-arg]
|
244
|
-
|
274
|
+
event_filter_options = UniqueChatEventFilterOptions(_env_file=env_file_str) # type: ignore[call-arg]
|
275
|
+
return cls(
|
276
|
+
auth=auth,
|
277
|
+
app=app,
|
278
|
+
api=api,
|
279
|
+
chat_event_filter_options=event_filter_options,
|
280
|
+
env_file=env_file,
|
281
|
+
)
|
245
282
|
|
246
283
|
@classmethod
|
247
284
|
def from_env_auto(cls, filename: str = "unique.env") -> "UniqueSettings":
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/default_language_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/token/token_counting.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/_common/validate_required_values.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/history_manager/utils.py
RENAMED
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
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py
RENAMED
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/agentic/tools/utils/__init__.py
RENAMED
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
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/app/performance/async_wrapper.py
RENAMED
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
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/langchain/client.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/openai/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.0.0 → unique_toolkit-1.1.0}/unique_toolkit/framework_utilities/openai/client.py
RENAMED
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
|