unique_toolkit 0.8.26__tar.gz → 0.8.28__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 (122) hide show
  1. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/CHANGELOG.md +5 -0
  2. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/PKG-INFO +6 -1
  3. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/pyproject.toml +1 -1
  4. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/unique_settings.py +17 -11
  5. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/functions.py +1 -1
  6. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/service.py +1 -1
  7. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/mcp/models.py +1 -0
  8. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/LICENSE +0 -0
  9. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/README.md +0 -0
  10. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/__init__.py +0 -0
  11. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/_base_service.py +0 -0
  12. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/_time_utils.py +0 -0
  13. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/default_language_model.py +0 -0
  14. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/endpoint_builder.py +0 -0
  15. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/exception.py +0 -0
  16. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  17. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/token/token_counting.py +0 -0
  18. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/validate_required_values.py +0 -0
  19. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/_common/validators.py +0 -0
  20. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/__init__.py +0 -0
  21. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/dev_util.py +0 -0
  22. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/init_logging.py +0 -0
  23. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/init_sdk.py +0 -0
  24. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/performance/async_tasks.py +0 -0
  25. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  26. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/schemas.py +0 -0
  27. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/app/verification.py +0 -0
  28. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/__init__.py +0 -0
  29. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/constants.py +0 -0
  30. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/functions.py +0 -0
  31. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/schemas.py +0 -0
  32. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/service.py +0 -0
  33. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/state.py +0 -0
  34. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/chat/utils.py +0 -0
  35. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/__init__.py +0 -0
  36. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/constants.py +0 -0
  37. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/functions.py +0 -0
  38. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/schemas.py +0 -0
  39. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/service.py +0 -0
  40. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/content/utils.py +0 -0
  41. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/debug_info_manager/debug_info_manager.py +0 -0
  42. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/__init__.py +0 -0
  43. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/constants.py +0 -0
  44. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/functions.py +0 -0
  45. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/schemas.py +0 -0
  46. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/service.py +0 -0
  47. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/embedding/utils.py +0 -0
  48. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/config.py +0 -0
  49. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/context_relevancy/prompts.py +0 -0
  50. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/context_relevancy/schema.py +0 -0
  51. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/context_relevancy/service.py +0 -0
  52. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/evaluation_manager.py +0 -0
  53. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/exception.py +0 -0
  54. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/hallucination/constants.py +0 -0
  55. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/hallucination/hallucination_evaluation.py +0 -0
  56. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/hallucination/prompts.py +0 -0
  57. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/hallucination/service.py +0 -0
  58. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/hallucination/utils.py +0 -0
  59. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/output_parser.py +0 -0
  60. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/schemas.py +0 -0
  61. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/tests/test_context_relevancy_service.py +0 -0
  62. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evals/tests/test_output_parser.py +0 -0
  63. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/__init__.py +0 -0
  64. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/config.py +0 -0
  65. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/constants.py +0 -0
  66. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  67. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  68. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  69. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  70. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/exception.py +0 -0
  71. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  72. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  73. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  74. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  75. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/output_parser.py +0 -0
  76. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/evaluators/schemas.py +0 -0
  77. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/__init__.py +0 -0
  78. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  79. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  80. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  81. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  82. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  83. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/framework_utilities/utils.py +0 -0
  84. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/history_manager/history_construction_with_contents.py +0 -0
  85. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/history_manager/history_manager.py +0 -0
  86. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/history_manager/loop_token_reducer.py +0 -0
  87. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/history_manager/utils.py +0 -0
  88. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/__init__.py +0 -0
  89. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/builder.py +0 -0
  90. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/constants.py +0 -0
  91. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/infos.py +0 -0
  92. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/prompt.py +0 -0
  93. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/reference.py +0 -0
  94. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/schemas.py +0 -0
  95. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/language_model/utils.py +0 -0
  96. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/postprocessor/postprocessor_manager.py +0 -0
  97. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/protocols/support.py +0 -0
  98. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/reference_manager/reference_manager.py +0 -0
  99. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/__init__.py +0 -0
  100. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/constants.py +0 -0
  101. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/functions.py +0 -0
  102. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/persistent_short_term_memory_manager.py +0 -0
  103. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/schemas.py +0 -0
  104. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/short_term_memory/service.py +0 -0
  105. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/smart_rules/__init__.py +0 -0
  106. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/smart_rules/compile.py +0 -0
  107. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/thinking_manager/thinking_manager.py +0 -0
  108. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/config.py +0 -0
  109. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/factory.py +0 -0
  110. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/mcp/__init__.py +0 -0
  111. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/mcp/manager.py +3 -3
  112. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/mcp/tool_wrapper.py +0 -0
  113. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/schemas.py +0 -0
  114. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/test/test_mcp_manager.py +0 -0
  115. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/test/test_tool_progress_reporter.py +0 -0
  116. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/tool.py +0 -0
  117. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/tool_manager.py +0 -0
  118. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/tool_progress_reporter.py +0 -0
  119. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/utils/execution/execution.py +0 -0
  120. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/utils/source_handling/schema.py +0 -0
  121. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/utils/source_handling/source_formatting.py +0 -0
  122. {unique_toolkit-0.8.26 → unique_toolkit-0.8.28}/unique_toolkit/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
 
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
+ ## [0.8.28] - 2025-08-28
8
+ - Fix paths for `sdk_url` and `openai_proxy` for localhost
9
+
10
+ ## [0.8.27] - 2025-08-28
11
+ - Fixed function "create_async" in language_model.functions : "user_id" argument should be optional.
7
12
 
8
13
  ## [0.8.26] - 2025-08-27
9
14
  - Optimized MCP manager
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.8.26
3
+ Version: 0.8.28
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -114,6 +114,11 @@ All notable changes to this project will be documented in this file.
114
114
 
115
115
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
116
116
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
117
+ ## [0.8.28] - 2025-08-28
118
+ - Fix paths for `sdk_url` and `openai_proxy` for localhost
119
+
120
+ ## [0.8.27] - 2025-08-28
121
+ - Fixed function "create_async" in language_model.functions : "user_id" argument should be optional.
117
122
 
118
123
  ## [0.8.26] - 2025-08-27
119
124
  - Optimized MCP manager
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.8.26"
3
+ version = "0.8.28"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -2,7 +2,7 @@ import os
2
2
  from logging import getLogger
3
3
  from pathlib import Path
4
4
  from typing import Self, TypeVar
5
- from urllib.parse import urlparse, urlunparse
5
+ from urllib.parse import ParseResult, urlparse, urlunparse
6
6
 
7
7
  import unique_sdk
8
8
  from platformdirs import user_config_dir
@@ -99,22 +99,28 @@ class UniqueApi(BaseSettings):
99
99
  )
100
100
  )
101
101
 
102
- def sdk_url(self) -> str:
102
+ def base_path(self) -> tuple[ParseResult, str]:
103
103
  parsed = urlparse(self.base_url)
104
+ base_path = "/public/chat/"
104
105
 
105
- path = "/public/chat"
106
106
  if parsed.hostname and (
107
- "qa.unique" in parsed.hostname or ".unique" in parsed.hostname
107
+ "gateway.qa.unique" in parsed.hostname
108
+ or "gateway.unique" in parsed.hostname
108
109
  ):
109
- path = "/public/chat-gen2"
110
- return urlunparse(parsed._replace(path=path, query=None, fragment=None))
110
+ base_path = "/public/chat-gen2/"
111
111
 
112
- def openai_proxy_url(self) -> str:
113
- parsed = urlparse(self.base_url)
114
- path = "/public/chat/openai-proxy/"
115
- if parsed.hostname and "qa.unique" in parsed.hostname:
116
- path = "/public/chat-gen2/openai-proxy/"
112
+ if parsed.hostname and "localhost" in parsed.hostname:
113
+ base_path = "/public/"
117
114
 
115
+ return parsed, base_path
116
+
117
+ def sdk_url(self) -> str:
118
+ parsed, base_path = self.base_path()
119
+ return urlunparse(parsed._replace(path=base_path, query=None, fragment=None))
120
+
121
+ def openai_proxy_url(self) -> str:
122
+ parsed, base_path = self.base_path()
123
+ path = base_path + "openai-proxy/"
118
124
  return urlunparse(parsed._replace(path=path, query=None, fragment=None))
119
125
 
120
126
 
@@ -94,9 +94,9 @@ def complete(
94
94
 
95
95
  async def complete_async(
96
96
  company_id: str,
97
- user_id: str,
98
97
  messages: LanguageModelMessages | list[ChatCompletionMessageParam],
99
98
  model_name: LanguageModelName | str,
99
+ user_id: str | None = None,
100
100
  temperature: float = DEFAULT_COMPLETE_TEMPERATURE,
101
101
  timeout: int = DEFAULT_COMPLETE_TIMEOUT,
102
102
  tools: list[LanguageModelTool | LanguageModelToolDescription] | None = None,
@@ -277,9 +277,9 @@ class LanguageModelService:
277
277
  async def complete_async_util(
278
278
  cls,
279
279
  company_id: str,
280
- user_id: str,
281
280
  messages: LanguageModelMessages,
282
281
  model_name: LanguageModelName | str,
282
+ user_id: str | None = None,
283
283
  temperature: float = DEFAULT_COMPLETE_TEMPERATURE,
284
284
  timeout: int = DEFAULT_COMPLETE_TIMEOUT,
285
285
  tools: Optional[list[LanguageModelTool | LanguageModelToolDescription]] = None,
@@ -1,4 +1,5 @@
1
1
  from typing import Any, Dict, Optional
2
+
2
3
  from unique_toolkit.tools.schemas import BaseToolConfig
3
4
 
4
5
 
File without changes
@@ -1,11 +1,11 @@
1
1
  import logging
2
2
 
3
- from unique_toolkit.tools.config import ToolBuildConfig, ToolIcon, ToolSelectionPolicy
4
3
  from unique_toolkit.app.schemas import ChatEvent, McpServer
5
- from unique_toolkit.tools.schemas import BaseToolConfig
6
- from unique_toolkit.tools.tool import Tool
4
+ from unique_toolkit.tools.config import ToolBuildConfig, ToolIcon, ToolSelectionPolicy
7
5
  from unique_toolkit.tools.mcp.models import MCPToolConfig
8
6
  from unique_toolkit.tools.mcp.tool_wrapper import MCPToolWrapper
7
+ from unique_toolkit.tools.schemas import BaseToolConfig
8
+ from unique_toolkit.tools.tool import Tool
9
9
  from unique_toolkit.tools.tool_progress_reporter import ToolProgressReporter
10
10
 
11
11