unique_toolkit 0.6.2__py3-none-any.whl → 0.6.4__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.
@@ -0,0 +1,17 @@
1
+ # Re-export commonly used classes for easier imports
2
+ from unique_toolkit.chat import ChatService
3
+ from unique_toolkit.content import ContentService
4
+ from unique_toolkit.embedding import EmbeddingService
5
+ from unique_toolkit.language_model import LanguageModelMessages, LanguageModelService
6
+ from unique_toolkit.short_term_memory import ShortTermMemoryService
7
+
8
+ # You can add other classes you frequently use here as well
9
+
10
+ __all__ = [
11
+ "LanguageModelService",
12
+ "LanguageModelMessages",
13
+ "ChatService",
14
+ "ContentService",
15
+ "EmbeddingService",
16
+ "ShortTermMemoryService",
17
+ ]
@@ -1,3 +1,5 @@
1
+ from typing_extensions import Self
2
+
1
3
  from unique_toolkit.language_model import (
2
4
  LanguageModelAssistantMessage,
3
5
  LanguageModelMessage,
@@ -12,25 +14,38 @@ class MessagesBuilder:
12
14
  def __init__(self):
13
15
  self.messages: list[LanguageModelMessage] = []
14
16
 
15
- def system_message_append(self, content):
16
- """Appends a user message to the messages list."""
17
+ def system_message_append(self, content: str) -> Self:
18
+ """Appends a system message to the messages list."""
17
19
  message = LanguageModelSystemMessage(content=content)
18
20
  self.messages.append(message)
19
21
  return self # Return self to allow method chaining
20
22
 
21
- def user_message_append(self, content):
23
+ def user_message_append(self, content: str) -> Self:
22
24
  """Appends a user message to the messages list."""
23
25
  message = LanguageModelUserMessage(content=content)
24
26
  self.messages.append(message)
25
27
  return self # Return self to allow method chaining
26
28
 
27
- def assistant_message_append(self, content):
29
+ def image_message_append(self, content: str, images: list[str]) -> Self:
30
+ message = LanguageModelUserMessage(
31
+ content=[
32
+ {"type": "text", "text": content},
33
+ *[
34
+ {"type": "image_url", "imageUrl": {"url": image}}
35
+ for image in images
36
+ ],
37
+ ]
38
+ )
39
+ self.messages.append(message)
40
+ return self
41
+
42
+ def assistant_message_append(self, content: str) -> Self:
28
43
  """Appends an assistant message to the messages list."""
29
44
  message = LanguageModelAssistantMessage(content=content)
30
45
  self.messages.append(message)
31
46
  return self # Return self to allow method chaining
32
47
 
33
- def tool_message_append(self, name: str, tool_call_id: str, content: str):
48
+ def tool_message_append(self, name: str, tool_call_id: str, content: str) -> Self:
34
49
  """Appends a tool message to the messages list."""
35
50
  message = LanguageModelToolMessage(
36
51
  name=name, tool_call_id=tool_call_id, content=content
@@ -165,6 +165,14 @@ class LanguageModelMessages(RootModel):
165
165
  def __getitem__(self, item):
166
166
  return self.root[item]
167
167
 
168
+ def builder(self):
169
+ """Returns a MessagesBuilder instance pre-populated with existing messages."""
170
+ from unique_toolkit.language_model.builder import MessagesBuilder
171
+
172
+ builder = MessagesBuilder()
173
+ builder.messages = self.root.copy() # Start with existing messages
174
+ return builder
175
+
168
176
 
169
177
  class LanguageModelCompletionChoice(BaseModel):
170
178
  model_config = model_config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.6.2
3
+ Version: 0.6.4
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -111,6 +111,13 @@ All notable changes to this project will be documented in this file.
111
111
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
112
112
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
113
113
 
114
+
115
+ ## [0.6.3] - 2025-02-27
116
+ - Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
117
+
118
+ ## [0.6.3] - 2025-02-26
119
+ - Add `builder` method to `LanguageModelMessages` class
120
+
114
121
  ## [0.6.2] - 2025-02-25
115
122
  - Deprecate `LanguageModel` in favor of `LanguageModelInfo`
116
123
  - `LanguageModelTokenLimits` properties become mandatory, initialization allows
@@ -1,4 +1,4 @@
1
- unique_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1
+ unique_toolkit/__init__.py,sha256=waK7W0EK3v2RJ26hawccwVz1i3yHGvHIIu5qgGjEGHQ,583
2
2
  unique_toolkit/_common/_base_service.py,sha256=S8H0rAebx7GsOldA7xInLp3aQJt9yEPDQdsGSFRJsGg,276
3
3
  unique_toolkit/_common/_time_utils.py,sha256=ztmTovTvr-3w71Ns2VwXC65OKUUh-sQlzbHdKTQWm-w,135
4
4
  unique_toolkit/_common/exception.py,sha256=caQIE1btsQnpKCHqL2cgWUSbHup06enQu_Pt7uGUTTE,727
@@ -45,12 +45,12 @@ unique_toolkit/evaluators/hallucination/utils.py,sha256=4KTJH8low_fBzOcuVlcHB2FR
45
45
  unique_toolkit/evaluators/output_parser.py,sha256=eI72qkzK1dZyUvnfP2SOAQCGBj_-PwX5wy_aLPMsJMY,883
46
46
  unique_toolkit/evaluators/schemas.py,sha256=Jaue6Uhx75X1CyHKWj8sT3RE1JZXTqoLtfLt2xQNCX8,2507
47
47
  unique_toolkit/language_model/__init__.py,sha256=jWko_vQj48wjnpTtlkg8iNdef0SMI3FN2kGywXRTMzg,1880
48
- unique_toolkit/language_model/builder.py,sha256=nsRqWO_2dgFehK5CgtqR5aqXgYUU0QL6mR0lALPrQXM,1898
48
+ unique_toolkit/language_model/builder.py,sha256=qP1SlUnYJHLqT-fpXs4lgUixnekhx8IIfuoXnMHvRKE,2408
49
49
  unique_toolkit/language_model/constants.py,sha256=B-topqW0r83dkC_25DeQfnPk3n53qzIHUCBS7YJ0-1U,119
50
50
  unique_toolkit/language_model/functions.py,sha256=I5jHhHsKoq7GwEQyTrM8LXB2n_6dvMAk7UklenjuHSY,7945
51
51
  unique_toolkit/language_model/infos.py,sha256=-axWHj55mp6tZfX_3i-FSkfh8e9fwORXWMfi9xQ_UjA,12232
52
52
  unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
53
- unique_toolkit/language_model/schemas.py,sha256=76FtgWc0qtk9fpEwoecA59WxG__aR7_kYyWJooHIaF8,8297
53
+ unique_toolkit/language_model/schemas.py,sha256=rrwzUgKANFOrdehCULW8Hh03uRW3tsE5dXpWqxmClfg,8618
54
54
  unique_toolkit/language_model/service.py,sha256=GupYD4uDZjy1TfVQW3jichmgQwiSgQCj350FtL4O0W4,5569
55
55
  unique_toolkit/language_model/utils.py,sha256=bPQ4l6_YO71w-zaIPanUUmtbXC1_hCvLK0tAFc3VCRc,1902
56
56
  unique_toolkit/short_term_memory/__init__.py,sha256=2mI3AUrffgH7Yt-xS57EGqnHf7jnn6xquoKEhJqk3Wg,185
@@ -58,7 +58,7 @@ unique_toolkit/short_term_memory/constants.py,sha256=698CL6-wjup2MvU19RxSmQk3gX7
58
58
  unique_toolkit/short_term_memory/functions.py,sha256=3WiK-xatY5nh4Dr5zlDUye1k3E6kr41RiscwtTplw5k,4484
59
59
  unique_toolkit/short_term_memory/schemas.py,sha256=OhfcXyF6ACdwIXW45sKzjtZX_gkcJs8FEZXcgQTNenw,1406
60
60
  unique_toolkit/short_term_memory/service.py,sha256=gdsVzoNqTXmLoBR_-p_lJlZDBo8L7Cr5EKchTNVJg1Q,5233
61
- unique_toolkit-0.6.2.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
62
- unique_toolkit-0.6.2.dist-info/METADATA,sha256=X3vk5KZ3npmcio6kiyCcOKhw2WE7g4zLCkA-urhZsSA,19409
63
- unique_toolkit-0.6.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
64
- unique_toolkit-0.6.2.dist-info/RECORD,,
61
+ unique_toolkit-0.6.4.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
62
+ unique_toolkit-0.6.4.dist-info/METADATA,sha256=dSeB-ilRjS8PXAPrssjGar0aCsxTqBqqju2hPiDCYNw,19703
63
+ unique_toolkit-0.6.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
64
+ unique_toolkit-0.6.4.dist-info/RECORD,,