unique_toolkit 0.5.45__py3-none-any.whl → 0.5.47__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/language_model/builder.py +50 -0
- unique_toolkit/language_model/infos.py +20 -4
- unique_toolkit/language_model/schemas.py +2 -2
- {unique_toolkit-0.5.45.dist-info → unique_toolkit-0.5.47.dist-info}/METADATA +9 -2
- {unique_toolkit-0.5.45.dist-info → unique_toolkit-0.5.47.dist-info}/RECORD +7 -6
- {unique_toolkit-0.5.45.dist-info → unique_toolkit-0.5.47.dist-info}/LICENSE +0 -0
- {unique_toolkit-0.5.45.dist-info → unique_toolkit-0.5.47.dist-info}/WHEEL +0 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
from unique_toolkit.language_model import (
|
2
|
+
LanguageModelAssistantMessage,
|
3
|
+
LanguageModelMessage,
|
4
|
+
LanguageModelMessages,
|
5
|
+
LanguageModelSystemMessage,
|
6
|
+
LanguageModelToolMessage,
|
7
|
+
LanguageModelUserMessage,
|
8
|
+
)
|
9
|
+
|
10
|
+
|
11
|
+
class MessagesBuilder:
|
12
|
+
def __init__(self):
|
13
|
+
self.messages: list[LanguageModelMessage] = []
|
14
|
+
|
15
|
+
def system_message_append(self, content):
|
16
|
+
"""Appends a user message to the messages list."""
|
17
|
+
message = LanguageModelSystemMessage(content=content)
|
18
|
+
self.messages.append(message)
|
19
|
+
return self # Return self to allow method chaining
|
20
|
+
|
21
|
+
def user_message_append(self, content):
|
22
|
+
"""Appends a user message to the messages list."""
|
23
|
+
message = LanguageModelUserMessage(content=content)
|
24
|
+
self.messages.append(message)
|
25
|
+
return self # Return self to allow method chaining
|
26
|
+
|
27
|
+
def assistant_message_append(self, content):
|
28
|
+
"""Appends an assistant message to the messages list."""
|
29
|
+
message = LanguageModelAssistantMessage(content=content)
|
30
|
+
self.messages.append(message)
|
31
|
+
return self # Return self to allow method chaining
|
32
|
+
|
33
|
+
def tool_message_append(self, name: str, tool_call_id: str, content: str):
|
34
|
+
"""Appends a tool message to the messages list."""
|
35
|
+
message = LanguageModelToolMessage(
|
36
|
+
name=name, tool_call_id=tool_call_id, content=content
|
37
|
+
)
|
38
|
+
self.messages.append(message)
|
39
|
+
return self # Return self to allow method chaining
|
40
|
+
|
41
|
+
def build(self, reset: bool = True) -> LanguageModelMessages:
|
42
|
+
"""Returns the list of messages and resets the builder"""
|
43
|
+
messages = LanguageModelMessages(root=self.messages)
|
44
|
+
if reset:
|
45
|
+
self.messages = []
|
46
|
+
return messages
|
47
|
+
|
48
|
+
def model_dump(self, **kwargs):
|
49
|
+
"""Dumps the LanguageModelMessages model"""
|
50
|
+
return self.build().model_dump(**kwargs)
|
@@ -11,6 +11,7 @@ class LanguageModelName(StrEnum):
|
|
11
11
|
AZURE_GPT_35_TURBO_0613 = "AZURE_GPT_35_TURBO_0613"
|
12
12
|
AZURE_GPT_35_TURBO = "AZURE_GPT_35_TURBO"
|
13
13
|
AZURE_GPT_35_TURBO_16K = "AZURE_GPT_35_TURBO_16K"
|
14
|
+
AZURE_GPT_35_TURBO_0125 = "AZURE_GPT_35_TURBO_0125"
|
14
15
|
AZURE_GPT_4_0613 = "AZURE_GPT_4_0613"
|
15
16
|
AZURE_GPT_4_TURBO_1106 = "AZURE_GPT_4_TURBO_1106"
|
16
17
|
AZURE_GPT_4_VISION_PREVIEW = "AZURE_GPT_4_VISION_PREVIEW"
|
@@ -33,6 +34,7 @@ def get_encoder_name(model_name: LanguageModelName) -> Optional[EncoderName]:
|
|
33
34
|
LMN.AZURE_GPT_35_TURBO
|
34
35
|
| LMN.AZURE_GPT_35_TURBO_16K
|
35
36
|
| LMN.AZURE_GPT_35_TURBO_0613
|
37
|
+
| LMN.AZURE_GPT_35_TURBO_0125
|
36
38
|
):
|
37
39
|
return EncoderName.CL100K_BASE
|
38
40
|
case (
|
@@ -278,7 +280,7 @@ AzureGpt35Turbo0613 = create_language_model(
|
|
278
280
|
token_limit=8192,
|
279
281
|
info_cutoff_at=date(2021, 9, 1),
|
280
282
|
published_at=date(2023, 6, 13),
|
281
|
-
retirement_at=date(
|
283
|
+
retirement_at=date(2025, 2, 13),
|
282
284
|
)
|
283
285
|
|
284
286
|
AzureGpt35Turbo = create_language_model(
|
@@ -289,6 +291,7 @@ AzureGpt35Turbo = create_language_model(
|
|
289
291
|
token_limit=4096,
|
290
292
|
info_cutoff_at=date(2021, 9, 1),
|
291
293
|
published_at=date(2023, 3, 1),
|
294
|
+
retirement_at=date(2025, 2, 13),
|
292
295
|
)
|
293
296
|
|
294
297
|
|
@@ -300,7 +303,20 @@ AzureGpt35Turbo16k = create_language_model(
|
|
300
303
|
token_limit=16382,
|
301
304
|
info_cutoff_at=date(2021, 9, 1),
|
302
305
|
published_at=date(2023, 6, 13),
|
303
|
-
retirement_at=date(
|
306
|
+
retirement_at=date(2025, 2, 13),
|
307
|
+
)
|
308
|
+
|
309
|
+
|
310
|
+
AzureGpt35Turbo0125 = create_language_model(
|
311
|
+
name=LanguageModelName.AZURE_GPT_35_TURBO_0125,
|
312
|
+
provider=LanguageModelProvider.AZURE,
|
313
|
+
version="0125",
|
314
|
+
encoder_name=get_encoder_name(LanguageModelName.AZURE_GPT_35_TURBO_0125),
|
315
|
+
token_limit_input=16385,
|
316
|
+
token_limit_output=4096,
|
317
|
+
info_cutoff_at=date(2021, 9, 1),
|
318
|
+
published_at=date(2023, 1, 25),
|
319
|
+
retirement_at=date(5, 3, 31),
|
304
320
|
)
|
305
321
|
|
306
322
|
|
@@ -313,7 +329,7 @@ AzureGpt40613 = create_language_model(
|
|
313
329
|
info_cutoff_at=date(2021, 9, 1),
|
314
330
|
published_at=date(2023, 6, 13),
|
315
331
|
deprecated_at=date(2024, 10, 1),
|
316
|
-
retirement_at=date(2025, 6,
|
332
|
+
retirement_at=date(2025, 6, 6),
|
317
333
|
)
|
318
334
|
|
319
335
|
|
@@ -349,7 +365,7 @@ AzureGpt432k0613 = create_language_model(
|
|
349
365
|
info_cutoff_at=date(2021, 9, 1),
|
350
366
|
published_at=date(2023, 6, 13),
|
351
367
|
deprecated_at=date(2024, 10, 1),
|
352
|
-
retirement_at=date(2025, 6,
|
368
|
+
retirement_at=date(2025, 6, 6),
|
353
369
|
)
|
354
370
|
|
355
371
|
AzureGpt4Turbo20240409 = create_language_model(
|
@@ -89,7 +89,6 @@ class LanguageModelMessage(BaseModel):
|
|
89
89
|
model_config = model_config
|
90
90
|
role: LanguageModelMessageRole
|
91
91
|
content: Optional[str | list[dict]] = None
|
92
|
-
tool_calls: Optional[list[LanguageModelFunctionCall]] = None
|
93
92
|
|
94
93
|
def __str__(self):
|
95
94
|
return format_message(self.role.capitalize(), message=self.content, num_tabs=1)
|
@@ -113,6 +112,7 @@ class LanguageModelUserMessage(LanguageModelMessage):
|
|
113
112
|
|
114
113
|
class LanguageModelAssistantMessage(LanguageModelMessage):
|
115
114
|
role: LanguageModelMessageRole = LanguageModelMessageRole.ASSISTANT
|
115
|
+
tool_calls: Optional[list[LanguageModelFunctionCall]] = None
|
116
116
|
|
117
117
|
@field_validator("role", mode="before")
|
118
118
|
def set_role(cls, value):
|
@@ -159,7 +159,7 @@ class LanguageModelCompletionChoice(BaseModel):
|
|
159
159
|
model_config = model_config
|
160
160
|
|
161
161
|
index: int
|
162
|
-
message:
|
162
|
+
message: LanguageModelAssistantMessage
|
163
163
|
finish_reason: str
|
164
164
|
|
165
165
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.47
|
4
4
|
Summary:
|
5
5
|
License: Proprietary
|
6
6
|
Author: Martin Fadler
|
@@ -79,7 +79,7 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
|
|
79
79
|
The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
|
80
80
|
Unique platform.
|
81
81
|
|
82
|
-
- `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.
|
82
|
+
- `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_35_TURBO_0125) to get the information on the specific language model like the name, version, token limits or retirement date.
|
83
83
|
- `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete or stream_complete.
|
84
84
|
- `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
|
85
85
|
- `utils.py` comprises utility functions to parse the output of the language model, e.g., convert_string_to_json finds and parses the last json object in a string.
|
@@ -100,6 +100,13 @@ All notable changes to this project will be documented in this file.
|
|
100
100
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
101
101
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
102
102
|
|
103
|
+
## [0.5.47] - 2025-01-07
|
104
|
+
- Added a message builder to build language model messages conveniently without importing all different messages.
|
105
|
+
- Move tool_calls to assistant message as not needed anywhere else.
|
106
|
+
|
107
|
+
## [0.5.46] - 2025-01-07
|
108
|
+
- Added `AZURE_GPT_35_TURBO_0125` as new model into toolkit.
|
109
|
+
|
103
110
|
## [0.5.45] - 2025-01-03
|
104
111
|
- Added `ShortTermMemoryService` class to handle short term memory.
|
105
112
|
|
@@ -36,14 +36,15 @@ unique_toolkit/evaluators/hallucination/utils.py,sha256=507BsX1mFTEne1-LdRCNMgBj
|
|
36
36
|
unique_toolkit/evaluators/output_parser.py,sha256=eI72qkzK1dZyUvnfP2SOAQCGBj_-PwX5wy_aLPMsJMY,883
|
37
37
|
unique_toolkit/evaluators/schemas.py,sha256=Jaue6Uhx75X1CyHKWj8sT3RE1JZXTqoLtfLt2xQNCX8,2507
|
38
38
|
unique_toolkit/language_model/__init__.py,sha256=hgk5yiFF4SpIcE2QSoki9YknFxmcKnq2LCJ1cK9de9I,1830
|
39
|
-
unique_toolkit/language_model/
|
39
|
+
unique_toolkit/language_model/builder.py,sha256=nsRqWO_2dgFehK5CgtqR5aqXgYUU0QL6mR0lALPrQXM,1898
|
40
|
+
unique_toolkit/language_model/infos.py,sha256=NgoV05ausVWMqrYqgH6i3s7tYG7mejupROIF_bwEGZo,13050
|
40
41
|
unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
|
41
|
-
unique_toolkit/language_model/schemas.py,sha256=
|
42
|
+
unique_toolkit/language_model/schemas.py,sha256=3en2aV9I3mD6IzugCRsq33vh9-JPNobszwBTw-LsaJQ,7000
|
42
43
|
unique_toolkit/language_model/service.py,sha256=brNCPRA0XxgqHi2rI5i2lyFCkUiw4MNMe1VaR3UgWmY,15500
|
43
44
|
unique_toolkit/language_model/utils.py,sha256=bPQ4l6_YO71w-zaIPanUUmtbXC1_hCvLK0tAFc3VCRc,1902
|
44
45
|
unique_toolkit/short_term_memory/schemas.py,sha256=OhfcXyF6ACdwIXW45sKzjtZX_gkcJs8FEZXcgQTNenw,1406
|
45
46
|
unique_toolkit/short_term_memory/service.py,sha256=Jd9P72-VvJy7hnqNrjmrmB5BHmsKuOpTiT0Jr-dBbsQ,1682
|
46
|
-
unique_toolkit-0.5.
|
47
|
-
unique_toolkit-0.5.
|
48
|
-
unique_toolkit-0.5.
|
49
|
-
unique_toolkit-0.5.
|
47
|
+
unique_toolkit-0.5.47.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
|
48
|
+
unique_toolkit-0.5.47.dist-info/METADATA,sha256=idzuuHNWe1HqAkrEbASKasyAlzWwpsm6_3tI5er7b2c,15544
|
49
|
+
unique_toolkit-0.5.47.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
50
|
+
unique_toolkit-0.5.47.dist-info/RECORD,,
|
File without changes
|
File without changes
|