unique_toolkit 0.5.46__tar.gz → 0.5.47__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.
Files changed (51) hide show
  1. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/CHANGELOG.md +4 -0
  2. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/PKG-INFO +5 -1
  3. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/pyproject.toml +1 -1
  4. unique_toolkit-0.5.47/unique_toolkit/language_model/builder.py +50 -0
  5. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/schemas.py +2 -2
  6. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/LICENSE +0 -0
  7. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/README.md +0 -0
  8. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/_common/_base_service.py +0 -0
  10. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/_common/_time_utils.py +0 -0
  11. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/_common/exception.py +0 -0
  12. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/_common/validators.py +0 -0
  13. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/__init__.py +0 -0
  14. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/init_logging.py +0 -0
  15. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/init_sdk.py +0 -0
  16. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/performance/async_tasks.py +0 -0
  17. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  18. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/schemas.py +0 -0
  19. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/app/verification.py +0 -0
  20. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/chat/__init__.py +0 -0
  21. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/chat/schemas.py +0 -0
  22. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/chat/service.py +0 -0
  23. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/chat/state.py +0 -0
  24. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/chat/utils.py +0 -0
  25. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/content/__init__.py +0 -0
  26. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/content/schemas.py +0 -0
  27. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/content/service.py +0 -0
  28. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/content/utils.py +0 -0
  29. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/embedding/__init__.py +0 -0
  30. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/embedding/schemas.py +0 -0
  31. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/embedding/service.py +0 -0
  32. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/embedding/utils.py +0 -0
  33. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/config.py +0 -0
  34. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  35. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  36. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  37. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  38. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/exception.py +0 -0
  39. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  40. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  41. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  42. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  43. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/output_parser.py +0 -0
  44. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/evaluators/schemas.py +0 -0
  45. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/__init__.py +0 -0
  46. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/infos.py +0 -0
  47. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/prompt.py +0 -0
  48. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/service.py +0 -0
  49. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/language_model/utils.py +0 -0
  50. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/short_term_memory/schemas.py +0 -0
  51. {unique_toolkit-0.5.46 → unique_toolkit-0.5.47}/unique_toolkit/short_term_memory/service.py +0 -0
@@ -5,6 +5,10 @@ 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
+ ## [0.5.47] - 2025-01-07
9
+ - Added a message builder to build language model messages conveniently without importing all different messages.
10
+ - Move tool_calls to assistant message as not needed anywhere else.
11
+
8
12
  ## [0.5.46] - 2025-01-07
9
13
  - Added `AZURE_GPT_35_TURBO_0125` as new model into toolkit.
10
14
 
@@ -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
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.5.46"
3
+ version = "0.5.47"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -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
 
File without changes