unique_toolkit 0.5.54__py3-none-any.whl → 0.6.0__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.
- unique_toolkit/_common/validate_required_values.py +21 -0
- unique_toolkit/app/__init__.py +20 -0
- unique_toolkit/app/schemas.py +73 -7
- unique_toolkit/chat/__init__.py +5 -4
- unique_toolkit/chat/constants.py +3 -0
- unique_toolkit/chat/functions.py +661 -0
- unique_toolkit/chat/schemas.py +11 -11
- unique_toolkit/chat/service.py +273 -430
- unique_toolkit/content/__init__.py +1 -0
- unique_toolkit/content/constants.py +2 -0
- unique_toolkit/content/functions.py +475 -0
- unique_toolkit/content/service.py +163 -300
- unique_toolkit/content/utils.py +32 -0
- unique_toolkit/embedding/__init__.py +3 -0
- unique_toolkit/embedding/constants.py +2 -0
- unique_toolkit/embedding/functions.py +79 -0
- unique_toolkit/embedding/service.py +47 -34
- unique_toolkit/evaluators/__init__.py +1 -0
- unique_toolkit/evaluators/constants.py +1 -0
- unique_toolkit/evaluators/context_relevancy/constants.py +3 -3
- unique_toolkit/evaluators/context_relevancy/utils.py +5 -2
- unique_toolkit/evaluators/hallucination/utils.py +2 -1
- unique_toolkit/language_model/__init__.py +1 -0
- unique_toolkit/language_model/constants.py +4 -0
- unique_toolkit/language_model/functions.py +362 -0
- unique_toolkit/language_model/service.py +246 -293
- unique_toolkit/short_term_memory/__init__.py +5 -0
- unique_toolkit/short_term_memory/constants.py +1 -0
- unique_toolkit/short_term_memory/functions.py +175 -0
- unique_toolkit/short_term_memory/service.py +153 -27
- {unique_toolkit-0.5.54.dist-info → unique_toolkit-0.6.0.dist-info}/METADATA +36 -7
- unique_toolkit-0.6.0.dist-info/RECORD +64 -0
- unique_toolkit-0.5.54.dist-info/RECORD +0 -50
- {unique_toolkit-0.5.54.dist-info → unique_toolkit-0.6.0.dist-info}/LICENSE +0 -0
- {unique_toolkit-0.5.54.dist-info → unique_toolkit-0.6.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
from typing import Sequence, TypeVar
|
2
|
+
|
3
|
+
T = TypeVar("T")
|
4
|
+
|
5
|
+
|
6
|
+
def validate_required_values(values: Sequence[T | None]) -> Sequence[T]:
|
7
|
+
"""
|
8
|
+
Validates that all values are not None and returns the sequence.
|
9
|
+
|
10
|
+
Args:
|
11
|
+
values: Sequence of possibly None values
|
12
|
+
|
13
|
+
Returns:
|
14
|
+
The same sequence, now guaranteed to have no None values
|
15
|
+
|
16
|
+
Raises:
|
17
|
+
ValueError: If any values are None
|
18
|
+
"""
|
19
|
+
if any(v is None for v in values):
|
20
|
+
raise ValueError("Required values cannot be None")
|
21
|
+
return values # type: ignore # We know these aren't None after validation
|
unique_toolkit/app/__init__.py
CHANGED
@@ -5,6 +5,24 @@ from .performance.async_tasks import (
|
|
5
5
|
run_async_tasks_parallel as run_async_tasks_parallel,
|
6
6
|
)
|
7
7
|
from .performance.async_wrapper import to_async as to_async
|
8
|
+
from .schemas import (
|
9
|
+
BaseEvent as BaseEvent,
|
10
|
+
)
|
11
|
+
from .schemas import (
|
12
|
+
ChatEvent as ChatEvent,
|
13
|
+
)
|
14
|
+
from .schemas import (
|
15
|
+
ChatEventAdditionalParameters as ChatEventAdditionalParameters,
|
16
|
+
)
|
17
|
+
from .schemas import (
|
18
|
+
ChatEventAssistantMessage as ChatEventAssistantMessage,
|
19
|
+
)
|
20
|
+
from .schemas import (
|
21
|
+
ChatEventPayload as ChatEventPayload,
|
22
|
+
)
|
23
|
+
from .schemas import (
|
24
|
+
ChatEventUserMessage as ChatEventUserMessage,
|
25
|
+
)
|
8
26
|
from .schemas import (
|
9
27
|
Event as Event,
|
10
28
|
)
|
@@ -23,3 +41,5 @@ from .schemas import (
|
|
23
41
|
from .verification import (
|
24
42
|
verify_signature_and_construct_event as verify_signature_and_construct_event,
|
25
43
|
)
|
44
|
+
|
45
|
+
DOMAIN_NAME = "app"
|
unique_toolkit/app/schemas.py
CHANGED
@@ -3,6 +3,7 @@ from typing import Any, Optional
|
|
3
3
|
|
4
4
|
from humps import camelize
|
5
5
|
from pydantic import BaseModel, ConfigDict
|
6
|
+
from typing_extensions import deprecated
|
6
7
|
|
7
8
|
# set config to convert camelCase to snake_case
|
8
9
|
model_config = ConfigDict(
|
@@ -16,7 +17,21 @@ class EventName(StrEnum):
|
|
16
17
|
EXTERNAL_MODULE_CHOSEN = "unique.chat.external-module.chosen"
|
17
18
|
|
18
19
|
|
19
|
-
class
|
20
|
+
class BaseEvent(BaseModel):
|
21
|
+
model_config = model_config
|
22
|
+
|
23
|
+
id: str
|
24
|
+
event: str
|
25
|
+
user_id: str
|
26
|
+
company_id: str
|
27
|
+
|
28
|
+
|
29
|
+
###
|
30
|
+
# ChatEvent schemas
|
31
|
+
###
|
32
|
+
|
33
|
+
|
34
|
+
class ChatEventUserMessage(BaseModel):
|
20
35
|
model_config = model_config
|
21
36
|
|
22
37
|
id: str
|
@@ -26,21 +41,51 @@ class EventUserMessage(BaseModel):
|
|
26
41
|
language: str
|
27
42
|
|
28
43
|
|
29
|
-
|
44
|
+
@deprecated(
|
45
|
+
"Use `ChatEventUserMessage` instead. "
|
46
|
+
"This class will be removed in the next major version."
|
47
|
+
)
|
48
|
+
class EventUserMessage(ChatEventUserMessage):
|
49
|
+
"""Deprecated: Use `ChatEventUserMessage` instead."""
|
50
|
+
|
51
|
+
pass
|
52
|
+
|
53
|
+
|
54
|
+
class ChatEventAssistantMessage(BaseModel):
|
30
55
|
model_config = model_config
|
31
56
|
|
32
57
|
id: str
|
33
58
|
created_at: str
|
34
59
|
|
35
60
|
|
36
|
-
|
61
|
+
@deprecated(
|
62
|
+
"Use `ChatEventAssistantMessage` instead. "
|
63
|
+
"This class will be removed in the next major version."
|
64
|
+
)
|
65
|
+
class EventAssistantMessage(ChatEventAssistantMessage):
|
66
|
+
"""Deprecated: Use `ChatEventAssistantMessage` instead."""
|
67
|
+
|
68
|
+
pass
|
69
|
+
|
70
|
+
|
71
|
+
class ChatEventAdditionalParameters(BaseModel):
|
37
72
|
model_config = model_config
|
38
73
|
|
39
74
|
translate_to_language: Optional[str] = None
|
40
75
|
content_id_to_translate: Optional[str] = None
|
41
76
|
|
42
77
|
|
43
|
-
|
78
|
+
@deprecated(
|
79
|
+
"Use `ChatEventAdditionalParameters` instead. "
|
80
|
+
"This class will be removed in the next major version."
|
81
|
+
)
|
82
|
+
class EventAdditionalParameters(ChatEventAdditionalParameters):
|
83
|
+
"""Deprecated: Use `ChatEventAdditionalParameters` instead."""
|
84
|
+
|
85
|
+
pass
|
86
|
+
|
87
|
+
|
88
|
+
class ChatEventPayload(BaseModel):
|
44
89
|
model_config = model_config
|
45
90
|
|
46
91
|
name: str
|
@@ -48,15 +93,27 @@ class EventPayload(BaseModel):
|
|
48
93
|
configuration: dict[str, Any]
|
49
94
|
chat_id: str
|
50
95
|
assistant_id: str
|
51
|
-
user_message:
|
52
|
-
assistant_message:
|
96
|
+
user_message: ChatEventUserMessage
|
97
|
+
assistant_message: ChatEventAssistantMessage
|
53
98
|
text: Optional[str] = None
|
54
|
-
additional_parameters: Optional[
|
99
|
+
additional_parameters: Optional[ChatEventAdditionalParameters] = None
|
55
100
|
user_metadata: Optional[dict[str, Any]] = None
|
56
101
|
tool_parameters: Optional[dict[str, Any]] = None
|
57
102
|
metadata_filter: Optional[dict[str, Any]] = None
|
58
103
|
|
59
104
|
|
105
|
+
@deprecated("""UUse `ChatEventPayload` instead.
|
106
|
+
This class will be removed in the next major version.""")
|
107
|
+
class EventPayload(ChatEventPayload):
|
108
|
+
user_message: EventUserMessage
|
109
|
+
assistant_message: EventAssistantMessage
|
110
|
+
additional_parameters: Optional[EventAdditionalParameters] = None
|
111
|
+
|
112
|
+
|
113
|
+
@deprecated(
|
114
|
+
"""Use the more specific `ChatEvent` instead that has the same properties. \
|
115
|
+
This class will be removed in the next major version."""
|
116
|
+
)
|
60
117
|
class Event(BaseModel):
|
61
118
|
model_config = model_config
|
62
119
|
|
@@ -67,3 +124,12 @@ class Event(BaseModel):
|
|
67
124
|
payload: EventPayload
|
68
125
|
created_at: Optional[int] = None
|
69
126
|
version: Optional[str] = None
|
127
|
+
|
128
|
+
|
129
|
+
class ChatEvent(BaseEvent):
|
130
|
+
model_config = model_config
|
131
|
+
|
132
|
+
event: EventName
|
133
|
+
payload: ChatEventPayload
|
134
|
+
created_at: Optional[int] = None
|
135
|
+
version: Optional[str] = None
|
unique_toolkit/chat/__init__.py
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
+
from .constants import DOMAIN_NAME as DOMAIN_NAME
|
1
2
|
from .schemas import ChatMessage as ChatMessage
|
3
|
+
from .schemas import ChatMessageAssessment as ChatMessageAssessment
|
4
|
+
from .schemas import ChatMessageAssessmentLabel as ChatMessageAssessmentLabel
|
5
|
+
from .schemas import ChatMessageAssessmentStatus as ChatMessageAssessmentStatus
|
6
|
+
from .schemas import ChatMessageAssessmentType as ChatMessageAssessmentType
|
2
7
|
from .schemas import ChatMessageRole as ChatMessageRole
|
3
|
-
from .schemas import MessageAssessment as MessageAssessment
|
4
|
-
from .schemas import MessageAssessmentLabel as MessageAssessmentLabel
|
5
|
-
from .schemas import MessageAssessmentStatus as MessageAssessmentStatus
|
6
|
-
from .schemas import MessageAssessmentType as MessageAssessmentType
|
7
8
|
from .service import ChatService as ChatService
|
8
9
|
from .utils import (
|
9
10
|
convert_chat_history_to_injectable_string as convert_chat_history_to_injectable_string,
|