unique_toolkit 0.5.46__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.
@@ -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)
@@ -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: LanguageModelMessage
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.46
3
+ Version: 0.5.47
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -100,6 +100,10 @@ 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
+
103
107
  ## [0.5.46] - 2025-01-07
104
108
  - Added `AZURE_GPT_35_TURBO_0125` as new model into toolkit.
105
109
 
@@ -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/builder.py,sha256=nsRqWO_2dgFehK5CgtqR5aqXgYUU0QL6mR0lALPrQXM,1898
39
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=MBwEAFnnCYjSpbZDUYLrqkCc-0bsarsepSQEj1v6YEY,6991
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.46.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
47
- unique_toolkit-0.5.46.dist-info/METADATA,sha256=dOAcMwh7VpRNOedFNvGEA_AypsA-LCuuVqQknJxO_Sc,15336
48
- unique_toolkit-0.5.46.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
49
- unique_toolkit-0.5.46.dist-info/RECORD,,
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,,