unique_toolkit 0.7.32__tar.gz → 0.7.34__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 (69) hide show
  1. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/CHANGELOG.md +6 -0
  2. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/PKG-INFO +7 -1
  3. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/pyproject.toml +1 -1
  4. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/utils.py +8 -3
  5. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/reference.py +15 -6
  6. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/LICENSE +0 -0
  7. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/README.md +0 -0
  8. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/_common/_base_service.py +0 -0
  10. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/_common/_time_utils.py +0 -0
  11. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/_common/exception.py +0 -0
  12. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/_common/validate_required_values.py +0 -0
  13. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/_common/validators.py +0 -0
  14. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/__init__.py +0 -0
  15. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/init_logging.py +0 -0
  16. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/init_sdk.py +0 -0
  17. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/performance/async_tasks.py +0 -0
  18. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  19. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/schemas.py +0 -0
  20. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/app/verification.py +0 -0
  21. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/__init__.py +0 -0
  22. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/constants.py +0 -0
  23. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/functions.py +0 -0
  24. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/schemas.py +0 -0
  25. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/service.py +0 -0
  26. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/state.py +0 -0
  27. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/chat/utils.py +0 -0
  28. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/__init__.py +0 -0
  29. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/constants.py +0 -0
  30. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/functions.py +0 -0
  31. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/schemas.py +0 -0
  32. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/content/service.py +0 -0
  33. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/__init__.py +0 -0
  34. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/constants.py +0 -0
  35. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/functions.py +0 -0
  36. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/schemas.py +0 -0
  37. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/service.py +0 -0
  38. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/embedding/utils.py +0 -0
  39. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/__init__.py +0 -0
  40. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/config.py +0 -0
  41. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/constants.py +0 -0
  42. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  43. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  44. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  45. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  46. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/exception.py +0 -0
  47. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  48. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  49. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  50. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  51. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/output_parser.py +0 -0
  52. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/evaluators/schemas.py +0 -0
  53. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/__init__.py +0 -0
  54. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/builder.py +0 -0
  55. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/constants.py +0 -0
  56. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/functions.py +0 -0
  57. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/infos.py +0 -0
  58. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/prompt.py +0 -0
  59. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/schemas.py +0 -0
  60. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/service.py +0 -0
  61. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/language_model/utils.py +0 -0
  62. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/protocols/support.py +0 -0
  63. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/short_term_memory/__init__.py +0 -0
  64. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/short_term_memory/constants.py +0 -0
  65. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/short_term_memory/functions.py +0 -0
  66. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/short_term_memory/schemas.py +0 -0
  67. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/short_term_memory/service.py +0 -0
  68. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/smart_rules/__init__.py +0 -0
  69. {unique_toolkit-0.7.32 → unique_toolkit-0.7.34}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,6 +5,12 @@ 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.7.34] - 2025-05-30
9
+ - Fix incorrect mapping in `ContentService` for the `search_content` function when mapping into `ContentChunk` object
10
+
11
+ ## [0.7.33] - 2025-06-25
12
+ - Update reference post-processing
13
+
8
14
  ## [0.7.32] - 2025-06-24
9
15
  - Create `classmethod` for `LanguageModelMessages` to load raw messages to root
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.7.32
3
+ Version: 0.7.34
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -111,6 +111,12 @@ 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
+ ## [0.7.34] - 2025-05-30
115
+ - Fix incorrect mapping in `ContentService` for the `search_content` function when mapping into `ContentChunk` object
116
+
117
+ ## [0.7.33] - 2025-06-25
118
+ - Update reference post-processing
119
+
114
120
  ## [0.7.32] - 2025-06-24
115
121
  - Create `classmethod` for `LanguageModelMessages` to load raw messages to root
116
122
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.7.32"
3
+ version = "0.7.34"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -190,9 +190,11 @@ def count_tokens(text: str, encoding_model="cl100k_base") -> int:
190
190
  return len(encoding.encode(text))
191
191
 
192
192
 
193
- def map_content_chunk(content_chunk: dict):
193
+ def map_content_chunk(content_id: str, content_key: str, content_chunk: dict):
194
194
  return ContentChunk(
195
- id=content_chunk["id"],
195
+ id=content_id,
196
+ key=content_key,
197
+ chunk_id=content_chunk["id"],
196
198
  text=content_chunk["text"],
197
199
  start_page=content_chunk["startPage"],
198
200
  end_page=content_chunk["endPage"],
@@ -206,7 +208,10 @@ def map_content(content: dict):
206
208
  key=content["key"],
207
209
  title=content["title"],
208
210
  url=content["url"],
209
- chunks=[map_content_chunk(chunk) for chunk in content["chunks"]],
211
+ chunks=[
212
+ map_content_chunk(content["id"], content["key"], chunk)
213
+ for chunk in content["chunks"]
214
+ ],
210
215
  created_at=content["createdAt"],
211
216
  updated_at=content["updatedAt"],
212
217
  )
@@ -51,9 +51,9 @@ def _add_references(
51
51
  # Only reference a source once, even if it is mentioned multiple times in the text.
52
52
  with_footnotes = _add_footnotes_to_text(text=text, references=references)
53
53
 
54
- # Gemini 2.5 flash model has tendency to add multiple references for the same fact
54
+ # Gemini 2.5 models have tendency to add multiple references for the same fact
55
55
  # This is a workaround to limit the number of references to 5
56
- if model and model.startswith("litellm:gemini-2-5-flash"):
56
+ if model and model.startswith("litellm:gemini-2-5"):
57
57
  reduced_text = _limit_consecutive_source_references(with_footnotes)
58
58
 
59
59
  # Get the references that remain after reduction
@@ -92,8 +92,11 @@ def _preprocess_message(text: str) -> str:
92
92
  # Replace XML format '[<source XX>]', '[<sourceXX>]' and '[\<sourceXX>]' with [XX]
93
93
  text = re.sub(r"\[(\\)?<source[\s]?(\d+)>\]", r"[\2]", text)
94
94
 
95
- # Replace format '[source XX]' and '[sourceXX]' with [XX]
96
- text = re.sub(r"\[source[\s]?(\d+)\]", r"[\1]", text)
95
+ # Replace format 'source XX', 'source_X' and 'sourceXX' references with XX, where XX is a number
96
+ text = re.sub(r"source[\s_]?(\d+)", r"[\1]", text)
97
+
98
+ # Replace 'source_number="X"' with X, where X is a number
99
+ text = re.sub(r"source_number=\"(\d+)\"", r"[\1]", text)
97
100
 
98
101
  # Make all references non-bold
99
102
  text = re.sub(r"\[\*\*(\d+)\*\*\]", r"[\1]", text)
@@ -107,13 +110,19 @@ def _preprocess_message(text: str) -> str:
107
110
  # Replace '[<[XX]>]' and '[\<[XX]>]' with [XX]
108
111
  text = re.sub(r"\[(\\)?\[?<\[(\d+)\]?\]>\]", r"[\2]", text)
109
112
 
110
- # Replace '[[A], [B], ...]' or '[[A], B, C, ...]' with [A][B][C]...
113
+ # Replace '[source: X, Y, Z]' with [X][Y][Z], where X,Y,Z are numbers
114
+ def replace_source_colon(match):
115
+ numbers = re.findall(r"\d+", match.group(0))
116
+ return "".join(f"[{n}]" for n in numbers)
117
+ text = re.sub(r"\[source:\s*([\d,\s]+)\]", replace_source_colon, text)
118
+
119
+ # Replace '[[A], [B], ...]', '[[A], B, C, ...]', and '[X, Y, Z]' with [A][B][C]... where A,B,C are numbers
111
120
  def replace_combined_brackets(match):
112
121
  numbers = re.findall(r"\d+", match.group(0))
113
122
  return "".join(f"[{n}]" for n in numbers)
114
123
 
115
124
  text = re.sub(
116
- r"\[\[(\d+)\](?:,\s*(?:\[)?\d+(?:\])?)*\]", replace_combined_brackets, text
125
+ r"(?:\[\[(\d+)\](?:,\s*(?:\[)?\d+(?:\])?)*\]|\[([\d,\s]+)\])", replace_combined_brackets, text
117
126
  )
118
127
 
119
128
  return text
File without changes