unique_toolkit 0.8.10__tar.gz → 0.8.11__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 (89) hide show
  1. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/CHANGELOG.md +4 -0
  2. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/PKG-INFO +5 -1
  3. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/pyproject.toml +1 -1
  4. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/schemas.py +21 -9
  5. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/service.py +2 -2
  6. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/framework_utilities/openai/message_builder.py +3 -0
  7. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/LICENSE +0 -0
  8. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/README.md +0 -0
  9. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/_common/exception.py +0 -0
  13. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/_common/validate_required_values.py +0 -0
  14. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/_common/validators.py +0 -0
  15. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/__init__.py +0 -0
  16. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/dev_util.py +0 -0
  17. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/init_logging.py +0 -0
  18. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/init_sdk.py +0 -0
  19. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/performance/async_tasks.py +0 -0
  20. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  21. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/schemas.py +0 -0
  22. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/unique_settings.py +0 -0
  23. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/app/verification.py +0 -0
  24. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/__init__.py +0 -0
  25. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/constants.py +0 -0
  26. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/functions.py +0 -0
  27. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/state.py +0 -0
  28. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/chat/utils.py +0 -0
  29. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/__init__.py +0 -0
  30. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/constants.py +0 -0
  31. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/functions.py +0 -0
  32. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/schemas.py +0 -0
  33. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/service.py +0 -0
  34. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/content/utils.py +0 -0
  35. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/__init__.py +0 -0
  36. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/constants.py +0 -0
  37. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/functions.py +0 -0
  38. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/schemas.py +0 -0
  39. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/service.py +0 -0
  40. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/embedding/utils.py +0 -0
  41. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/__init__.py +0 -0
  42. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/config.py +0 -0
  43. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/constants.py +0 -0
  44. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  45. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  46. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  47. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  48. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/exception.py +0 -0
  49. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  50. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  51. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  52. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  53. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/output_parser.py +0 -0
  54. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/evaluators/schemas.py +0 -0
  55. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  56. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  57. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  58. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/framework_utilities/utils.py +0 -0
  59. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/__init__.py +0 -0
  60. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/builder.py +0 -0
  61. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/constants.py +0 -0
  62. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/functions.py +0 -0
  63. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/infos.py +0 -0
  64. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/prompt.py +0 -0
  65. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/reference.py +0 -0
  66. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/schemas.py +0 -0
  67. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/service.py +0 -0
  68. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/language_model/utils.py +0 -0
  69. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/protocols/support.py +0 -0
  70. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/reference_manager/reference_manager.py +0 -0
  71. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/short_term_memory/__init__.py +0 -0
  72. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/short_term_memory/constants.py +0 -0
  73. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/short_term_memory/functions.py +0 -0
  74. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/short_term_memory/schemas.py +0 -0
  75. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/short_term_memory/service.py +0 -0
  76. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/smart_rules/__init__.py +0 -0
  77. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/smart_rules/compile.py +0 -0
  78. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/agent_chunks_handler.py +0 -0
  79. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/config.py +0 -0
  80. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/factory.py +0 -0
  81. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/schemas.py +0 -0
  82. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/test/test_tool_progress_reporter.py +0 -0
  83. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/tool.py +0 -0
  84. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/tool_manager.py +0 -0
  85. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/tool_progress_reporter.py +0 -0
  86. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/utils/execution/execution.py +0 -0
  87. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/utils/source_handling/schema.py +0 -0
  88. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/utils/source_handling/source_formatting.py +0 -0
  89. {unique_toolkit-0.8.10 → unique_toolkit-0.8.11}/unique_toolkit/tools/utils/source_handling/tests/test_source_formatting.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.8.11] - 2025-08-15
9
+ - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
10
+ - Add simple append method to OpenAIMessageBuilder
11
+
8
12
  ## [0.8.10] - 2025-08-15
9
13
  - Add min and max temperature to `LanguageModelInfo`: temperature will be clamped to the min and max temperature
10
14
  - Add default options to `LanguageModelInfo`: These are used by default
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.8.10
3
+ Version: 0.8.11
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -114,6 +114,10 @@ All notable changes to this project will be documented in this file.
114
114
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
115
115
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
116
116
 
117
+ ## [0.8.11] - 2025-08-15
118
+ - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
119
+ - Add simple append method to OpenAIMessageBuilder
120
+
117
121
  ## [0.8.10] - 2025-08-15
118
122
  - Add min and max temperature to `LanguageModelInfo`: temperature will be clamped to the min and max temperature
119
123
  - Add default options to `LanguageModelInfo`: These are used by default
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.8.10"
3
+ version = "0.8.11"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -4,6 +4,7 @@ from enum import StrEnum
4
4
  from humps import camelize
5
5
  from openai.types.chat import (
6
6
  ChatCompletionAssistantMessageParam,
7
+ ChatCompletionMessageParam,
7
8
  ChatCompletionUserMessageParam,
8
9
  )
9
10
  from openai.types.chat.chat_completion_message_function_tool_call_param import (
@@ -96,7 +97,7 @@ class ChatMessage(BaseModel):
96
97
  raise ValueError("tool_call_ids is required when role is 'tool'")
97
98
  return self
98
99
 
99
- def to_openai_param(self):
100
+ def to_openai_param(self) -> ChatCompletionMessageParam:
100
101
  match self.role:
101
102
  case ChatMessageRole.USER:
102
103
  return ChatCompletionUserMessageParam(
@@ -105,14 +106,25 @@ class ChatMessage(BaseModel):
105
106
  )
106
107
 
107
108
  case ChatMessageRole.ASSISTANT:
108
- return ChatCompletionAssistantMessageParam(
109
- role="assistant",
110
- audio=None,
111
- content=self.content or "",
112
- function_call=None,
113
- refusal=None,
114
- tool_calls=[t.to_openai_param() for t in self.tool_calls or []],
115
- )
109
+ if self.tool_calls:
110
+ assistant_message = ChatCompletionAssistantMessageParam(
111
+ role="assistant",
112
+ audio=None,
113
+ content=self.content or "",
114
+ function_call=None,
115
+ refusal=None,
116
+ tool_calls=[t.to_openai_param() for t in self.tool_calls],
117
+ )
118
+ else:
119
+ assistant_message = ChatCompletionAssistantMessageParam(
120
+ role="assistant",
121
+ audio=None,
122
+ content=self.content or "",
123
+ function_call=None,
124
+ refusal=None,
125
+ )
126
+
127
+ return assistant_message
116
128
 
117
129
  case ChatMessageRole.TOOL:
118
130
  raise NotImplementedError
@@ -402,9 +402,9 @@ class ChatService:
402
402
  references: list[ContentReference] | None = None,
403
403
  debug_info: dict | None = None,
404
404
  message_id: str | None = None,
405
- set_completed_at: bool = False,
405
+ set_completed_at: bool | None = None,
406
406
  ) -> ChatMessage:
407
- """Modifies a message in the chat session synchronously.
407
+ """Modifies a message in the chat session synchronously if parameter is not specified the corresponding field will remain as is.
408
408
 
409
409
  Args:
410
410
  content (str, optional): The new content for the message.
@@ -49,6 +49,9 @@ class OpenAIMessageBuilder:
49
49
  builder._messages = messages.copy()
50
50
  return builder
51
51
 
52
+ def append(self, message: ChatCompletionMessageParam):
53
+ self._messages.append(message)
54
+
52
55
  def system_message_append(
53
56
  self,
54
57
  content: str | Iterable[ChatCompletionContentPartTextParam],
File without changes