nucliadb 6.9.1.post5180__py3-none-any.whl → 6.9.2.post5282__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.

Potentially problematic release.


This version of nucliadb might be problematic. Click here for more details.

Files changed (35) hide show
  1. migrations/pg/0010_shards_index.py +34 -0
  2. nucliadb/common/cluster/manager.py +3 -19
  3. nucliadb/common/cluster/rebalance.py +484 -110
  4. nucliadb/common/cluster/rollover.py +29 -0
  5. nucliadb/common/cluster/utils.py +26 -0
  6. nucliadb/common/datamanagers/atomic.py +6 -0
  7. nucliadb/common/filter_expression.py +15 -32
  8. nucliadb/ingest/consumer/service.py +1 -2
  9. nucliadb/ingest/consumer/shard_creator.py +16 -5
  10. nucliadb/ingest/fields/base.py +0 -17
  11. nucliadb/ingest/orm/knowledgebox.py +78 -29
  12. nucliadb/ingest/orm/processor/processor.py +21 -16
  13. nucliadb/ingest/service/writer.py +12 -5
  14. nucliadb/migrator/datamanager.py +1 -7
  15. nucliadb/purge/__init__.py +2 -7
  16. nucliadb/reader/api/v1/learning_config.py +21 -0
  17. nucliadb/search/api/v1/find.py +1 -4
  18. nucliadb/search/api/v1/resource/ask.py +21 -1
  19. nucliadb/search/api/v1/search.py +1 -4
  20. nucliadb/search/search/chat/ask.py +0 -1
  21. nucliadb/search/search/chat/prompt.py +45 -13
  22. nucliadb/search/search/chat/query.py +0 -1
  23. nucliadb/search/search/find.py +1 -6
  24. nucliadb/search/search/query.py +0 -23
  25. nucliadb/search/search/query_parser/models.py +0 -1
  26. nucliadb/search/search/query_parser/parsers/catalog.py +2 -2
  27. nucliadb/search/search/query_parser/parsers/find.py +0 -8
  28. nucliadb/search/search/query_parser/parsers/search.py +0 -8
  29. nucliadb/search/search/query_parser/parsers/unit_retrieval.py +4 -11
  30. nucliadb/writer/api/v1/knowledgebox.py +15 -22
  31. {nucliadb-6.9.1.post5180.dist-info → nucliadb-6.9.2.post5282.dist-info}/METADATA +8 -9
  32. {nucliadb-6.9.1.post5180.dist-info → nucliadb-6.9.2.post5282.dist-info}/RECORD +35 -34
  33. {nucliadb-6.9.1.post5180.dist-info → nucliadb-6.9.2.post5282.dist-info}/WHEEL +0 -0
  34. {nucliadb-6.9.1.post5180.dist-info → nucliadb-6.9.2.post5282.dist-info}/entry_points.txt +0 -0
  35. {nucliadb-6.9.1.post5180.dist-info → nucliadb-6.9.2.post5282.dist-info}/top_level.txt +0 -0
@@ -148,7 +148,6 @@ async def search_knowledgebox(
148
148
  extracted: list[ExtractedDataTypeName] = fastapi_query(SearchParamDefaults.extracted),
149
149
  with_duplicates: bool = fastapi_query(SearchParamDefaults.with_duplicates),
150
150
  with_synonyms: bool = fastapi_query(SearchParamDefaults.with_synonyms),
151
- autofilter: bool = fastapi_query(SearchParamDefaults.autofilter),
152
151
  security_groups: list[str] = fastapi_query(SearchParamDefaults.security_groups),
153
152
  show_hidden: bool = fastapi_query(SearchParamDefaults.show_hidden),
154
153
  x_ndb_client: NucliaDBClientType = Header(NucliaDBClientType.API),
@@ -187,7 +186,6 @@ async def search_knowledgebox(
187
186
  extracted=extracted,
188
187
  with_duplicates=with_duplicates,
189
188
  with_synonyms=with_synonyms,
190
- autofilter=autofilter,
191
189
  security=security,
192
190
  show_hidden=show_hidden,
193
191
  )
@@ -262,7 +260,7 @@ async def search(
262
260
  start_time = time()
263
261
 
264
262
  parsed = await parse_search(kbid, item)
265
- pb_query, incomplete_results, autofilters, _ = await legacy_convert_retrieval_to_proto(parsed)
263
+ pb_query, incomplete_results, _ = await legacy_convert_retrieval_to_proto(parsed)
266
264
 
267
265
  # We need to query all nodes
268
266
  results, queried_shards = await nidx_query(kbid, Method.SEARCH, pb_query)
@@ -290,5 +288,4 @@ async def search(
290
288
  )
291
289
 
292
290
  search_results.shards = queried_shards
293
- search_results.autofilters = autofilters
294
291
  return search_results, incomplete_results
@@ -1077,7 +1077,6 @@ def calculate_prequeries_for_json_schema(
1077
1077
  rephrase=ask_request.rephrase,
1078
1078
  rephrase_prompt=parse_rephrase_prompt(ask_request),
1079
1079
  security=ask_request.security,
1080
- autofilter=False,
1081
1080
  )
1082
1081
  prequery = PreQuery(
1083
1082
  request=req,
@@ -26,6 +26,7 @@ from typing import Deque, Dict, List, Optional, Sequence, Tuple, Union, cast
26
26
  import yaml
27
27
  from pydantic import BaseModel
28
28
 
29
+ from nucliadb.common import datamanagers
29
30
  from nucliadb.common.ids import FIELD_TYPE_STR_TO_PB, FieldId, ParagraphId
30
31
  from nucliadb.common.maindb.utils import get_driver
31
32
  from nucliadb.common.models_utils import from_proto
@@ -589,18 +590,7 @@ async def field_extension_prompt_context(
589
590
  if resource_uuid not in ordered_resources:
590
591
  ordered_resources.append(resource_uuid)
591
592
 
592
- # Fetch the extracted texts of the specified fields for each resource
593
- extend_fields = strategy.fields
594
- extend_field_ids = []
595
- for resource_uuid in ordered_resources:
596
- for field_id in extend_fields:
597
- try:
598
- fid = FieldId.from_string(f"{resource_uuid}/{field_id.strip('/')}")
599
- extend_field_ids.append(fid)
600
- except ValueError: # pragma: no cover
601
- # Invalid field id, skiping
602
- continue
603
-
593
+ extend_field_ids = await get_matching_field_ids(kbid, ordered_resources, strategy)
604
594
  tasks = [hydrate_field_text(kbid, fid) for fid in extend_field_ids]
605
595
  field_extracted_texts = await run_concurrently(tasks)
606
596
 
@@ -630,6 +620,43 @@ async def field_extension_prompt_context(
630
620
  context[paragraph.id] = _clean_paragraph_text(paragraph)
631
621
 
632
622
 
623
+ async def get_matching_field_ids(
624
+ kbid: str, ordered_resources: list[str], strategy: FieldExtensionStrategy
625
+ ) -> list[FieldId]:
626
+ extend_field_ids: list[FieldId] = []
627
+ # Fetch the extracted texts of the specified fields for each resource
628
+ for resource_uuid in ordered_resources:
629
+ for field_id in strategy.fields:
630
+ try:
631
+ fid = FieldId.from_string(f"{resource_uuid}/{field_id.strip('/')}")
632
+ extend_field_ids.append(fid)
633
+ except ValueError: # pragma: no cover
634
+ # Invalid field id, skiping
635
+ continue
636
+ if len(strategy.data_augmentation_field_prefixes) > 0:
637
+ for resource_uuid in ordered_resources:
638
+ all_field_ids = await datamanagers.atomic.resources.get_all_field_ids(
639
+ kbid=kbid, rid=resource_uuid, for_update=False
640
+ )
641
+ if all_field_ids is None:
642
+ continue
643
+ for fieldid in all_field_ids.fields:
644
+ # Generated fields are always text fields starting with "da-"
645
+ if any(
646
+ (
647
+ fieldid.field_type == resources_pb2.FieldType.TEXT
648
+ and fieldid.field.startswith(f"da-{prefix}-")
649
+ )
650
+ for prefix in strategy.data_augmentation_field_prefixes
651
+ ):
652
+ extend_field_ids.append(
653
+ FieldId.from_pb(
654
+ rid=resource_uuid, field_type=fieldid.field_type, key=fieldid.field
655
+ )
656
+ )
657
+ return extend_field_ids
658
+
659
+
633
660
  async def get_orm_field(kbid: str, field_id: FieldId) -> Optional[Field]:
634
661
  resource = await cache.get_resource(kbid, field_id.rid)
635
662
  if resource is None: # pragma: no cover
@@ -946,9 +973,14 @@ async def hierarchy_prompt_context(
946
973
  paragraph_id = ParagraphId.from_string(paragraph.id)
947
974
  extended_paragraph_text = paragraph.text
948
975
  if paragraphs_extra_characters > 0:
976
+ extended_paragraph_id = ParagraphId(
977
+ field_id=paragraph_id.field_id,
978
+ paragraph_start=paragraph_id.paragraph_start,
979
+ paragraph_end=paragraph_id.paragraph_end + paragraphs_extra_characters,
980
+ )
949
981
  extended_paragraph_text = await get_paragraph_text(
950
982
  kbid=kbid,
951
- paragraph_id=paragraph_id,
983
+ paragraph_id=extended_paragraph_id,
952
984
  log_on_missing_field=True,
953
985
  )
954
986
  rid = paragraph_id.rid
@@ -200,7 +200,6 @@ def find_request_from_ask_request(item: AskRequest, query: str) -> FindRequest:
200
200
  find_request.range_modification_end = item.range_modification_end
201
201
  find_request.show = item.show
202
202
  find_request.extracted = item.extracted
203
- find_request.autofilter = item.autofilter
204
203
  find_request.highlight = item.highlight
205
204
  find_request.security = item.security
206
205
  find_request.debug = item.debug
@@ -100,7 +100,6 @@ async def _index_node_retrieval(
100
100
  (
101
101
  pb_query,
102
102
  incomplete_results,
103
- autofilters,
104
103
  rephrased_query,
105
104
  ) = await legacy_convert_retrieval_to_proto(parsed)
106
105
 
@@ -137,7 +136,6 @@ async def _index_node_retrieval(
137
136
  )
138
137
 
139
138
  search_results.shards = queried_shards
140
- search_results.autofilters = autofilters
141
139
 
142
140
  ndb_time = metrics["index_search"] + metrics["results_merge"]
143
141
  if metrics["index_search"] > settings.slow_node_query_log_threshold:
@@ -180,9 +178,7 @@ async def _external_index_retrieval(
180
178
  parsed = await parse_find(kbid, item)
181
179
  assert parsed.retrieval.reranker is not None, "find parser must provide a reranking algorithm"
182
180
  reranker = get_reranker(parsed.retrieval.reranker)
183
- search_request, incomplete_results, _, rephrased_query = await legacy_convert_retrieval_to_proto(
184
- parsed
185
- )
181
+ search_request, incomplete_results, rephrased_query = await legacy_convert_retrieval_to_proto(parsed)
186
182
 
187
183
  # Query index
188
184
  query_results = await external_index_manager.query(search_request) # noqa
@@ -220,7 +216,6 @@ async def _external_index_retrieval(
220
216
  page_number=0,
221
217
  page_size=item.top_k,
222
218
  relations=None, # Not implemented for external indexes yet
223
- autofilters=[], # Not implemented for external indexes yet
224
219
  min_score=results_min_score,
225
220
  best_matches=best_matches,
226
221
  # These are not used for external indexes
@@ -26,9 +26,6 @@ from nidx_protos.noderesources_pb2 import Resource
26
26
  from nucliadb.common import datamanagers
27
27
  from nucliadb.common.exceptions import InvalidQueryError
28
28
  from nucliadb.common.filter_expression import add_and_expression, parse_expression
29
- from nucliadb.search.search.filters import (
30
- translate_label,
31
- )
32
29
  from nucliadb.search.search.query_parser.fetcher import Fetcher
33
30
  from nucliadb_models.filters import FilterExpression
34
31
  from nucliadb_models.labels import LABEL_HIDDEN
@@ -166,26 +163,6 @@ def expand_entities(
166
163
  return list(result_entities.values())
167
164
 
168
165
 
169
- def apply_entities_filter(
170
- request: nodereader_pb2.SearchRequest,
171
- detected_entities: list[utils_pb2.RelationNode],
172
- ) -> list[str]:
173
- added_filters = []
174
- for entity_filter in [
175
- f"/e/{entity.subtype}/{entity.value}"
176
- for entity in detected_entities
177
- if entity.ntype == utils_pb2.RelationNode.NodeType.ENTITY
178
- ]:
179
- if entity_filter not in added_filters:
180
- added_filters.append(entity_filter)
181
- # Add the entity to the filter expression (with AND)
182
- entity_expr = nodereader_pb2.FilterExpression()
183
- entity_expr.facet.facet = translate_label(entity_filter)
184
- add_and_expression(request.field_filter, entity_expr)
185
-
186
- return added_filters
187
-
188
-
189
166
  async def suggest_query_to_pb(
190
167
  kbid: str,
191
168
  features: list[SuggestOptions],
@@ -85,7 +85,6 @@ class Filters(BaseModel):
85
85
  nodereader_pb2.FilterOperator.AND
86
86
  )
87
87
 
88
- autofilter: Optional[list[utils_pb2.RelationNode]] = None
89
88
  facets: list[str] = Field(default_factory=list)
90
89
  hidden: Optional[bool] = None
91
90
  security: Optional[search_models.RequestSecurity] = None
@@ -21,7 +21,7 @@
21
21
  from nucliadb.common import datamanagers
22
22
  from nucliadb.common.catalog.interface import CatalogExpression, CatalogQuery
23
23
  from nucliadb.common.exceptions import InvalidQueryError
24
- from nucliadb.common.filter_expression import FacetFilterTypes, facet_from_filter
24
+ from nucliadb.common.filter_expression import FacetFilter, facet_from_filter
25
25
  from nucliadb.search.search.filters import translate_label
26
26
  from nucliadb_models import search as search_models
27
27
  from nucliadb_models.filters import (
@@ -189,7 +189,7 @@ async def parse_filter_expression(expr: ResourceFilterExpression, kbid: str) ->
189
189
  cat.date = CatalogExpression.Date(field="created_at", since=expr.since, until=expr.until)
190
190
  elif isinstance(expr, DateModified):
191
191
  cat.date = CatalogExpression.Date(field="modified_at", since=expr.since, until=expr.until)
192
- elif isinstance(expr, FacetFilterTypes):
192
+ elif isinstance(expr, FacetFilter):
193
193
  cat.facet = facet_from_filter(expr)
194
194
  else:
195
195
  # This is a trick so mypy generates an error if this branch can be reached,
@@ -253,17 +253,9 @@ class _FindParser:
253
253
  else:
254
254
  filter_operator = nodereader_pb2.FilterOperator.AND
255
255
 
256
- autofilter = None
257
- if self.item.autofilter:
258
- if self._query.relation is not None:
259
- autofilter = self._query.relation.entry_points
260
- else:
261
- autofilter = await self._get_detected_entities()
262
-
263
256
  hidden = await filter_hidden_resources(self.kbid, self.item.show_hidden)
264
257
 
265
258
  return Filters(
266
- autofilter=autofilter,
267
259
  facets=[],
268
260
  field_expression=field_expr,
269
261
  paragraph_expression=paragraph_expr,
@@ -251,17 +251,9 @@ class _SearchParser:
251
251
  else:
252
252
  filter_operator = nodereader_pb2.FilterOperator.AND
253
253
 
254
- autofilter = None
255
- if self.item.autofilter:
256
- if self._query.relation is not None:
257
- autofilter = self._query.relation.entry_points
258
- else:
259
- autofilter = await self._get_detected_entities()
260
-
261
254
  hidden = await filter_hidden_resources(self.kbid, self.item.show_hidden)
262
255
 
263
256
  return Filters(
264
- autofilter=autofilter,
265
257
  facets=self.item.faceted,
266
258
  field_expression=field_expr,
267
259
  paragraph_expression=paragraph_expr,
@@ -25,10 +25,10 @@ from nidx_protos.nodereader_pb2 import SearchRequest
25
25
  from nucliadb.common.filter_expression import add_and_expression
26
26
  from nucliadb.search.search.filters import translate_label
27
27
  from nucliadb.search.search.metrics import node_features, query_parser_observer
28
- from nucliadb.search.search.query import apply_entities_filter, get_sort_field_proto
28
+ from nucliadb.search.search.query import get_sort_field_proto
29
29
  from nucliadb.search.search.query_parser.models import ParsedQuery, PredictReranker, UnitRetrieval
30
30
  from nucliadb.search.search.query_parser.parsers.graph import parse_path_query
31
- from nucliadb_models.labels import LABEL_HIDDEN, translate_system_to_alias_label
31
+ from nucliadb_models.labels import LABEL_HIDDEN
32
32
  from nucliadb_models.search import SortOrderMap
33
33
  from nucliadb_protos import utils_pb2
34
34
 
@@ -36,7 +36,7 @@ from nucliadb_protos import utils_pb2
36
36
  @query_parser_observer.wrap({"type": "convert_retrieval_to_proto"})
37
37
  async def legacy_convert_retrieval_to_proto(
38
38
  parsed: ParsedQuery,
39
- ) -> tuple[SearchRequest, bool, list[str], Optional[str]]:
39
+ ) -> tuple[SearchRequest, bool, Optional[str]]:
40
40
  converter = _Converter(parsed.retrieval)
41
41
  request = converter.into_search_request()
42
42
 
@@ -44,13 +44,12 @@ async def legacy_convert_retrieval_to_proto(
44
44
  # needed. We should find a better abstraction
45
45
 
46
46
  incomplete = is_incomplete(parsed.retrieval)
47
- autofilter = converter._autofilter
48
47
 
49
48
  rephrased_query = None
50
49
  if parsed.retrieval.query.semantic:
51
50
  rephrased_query = await parsed.fetcher.get_rephrased_query()
52
51
 
53
- return request, incomplete, autofilter, rephrased_query
52
+ return request, incomplete, rephrased_query
54
53
 
55
54
 
56
55
  @query_parser_observer.wrap({"type": "convert_retrieval_to_proto"})
@@ -65,8 +64,6 @@ class _Converter:
65
64
  self.req = nodereader_pb2.SearchRequest()
66
65
  self.retrieval = retrieval
67
66
 
68
- self._autofilter: list[str] = []
69
-
70
67
  def into_search_request(self) -> nodereader_pb2.SearchRequest:
71
68
  """Generate a SearchRequest proto from a retrieval operation."""
72
69
  self._apply_text_queries()
@@ -235,10 +232,6 @@ class _Converter:
235
232
  self.req.paragraph_filter.CopyFrom(self.retrieval.filters.paragraph_expression)
236
233
  self.req.filter_operator = self.retrieval.filters.filter_expression_operator
237
234
 
238
- if self.retrieval.filters.autofilter:
239
- entity_filters = apply_entities_filter(self.req, self.retrieval.filters.autofilter)
240
- self._autofilter.extend([translate_system_to_alias_label(e) for e in entity_filters])
241
-
242
235
  if self.retrieval.filters.hidden is not None:
243
236
  expr = nodereader_pb2.FilterExpression()
244
237
  if self.retrieval.filters.hidden:
@@ -147,8 +147,6 @@ async def create_kb(item: KnowledgeBoxConfig) -> tuple[str, str]:
147
147
  @requires(NucliaDBRoles.MANAGER)
148
148
  @version(1)
149
149
  async def update_kb(request: Request, kbid: str, item: KnowledgeBoxConfig) -> KnowledgeBoxObjID:
150
- driver = get_driver()
151
- config = None
152
150
  if (
153
151
  item.slug
154
152
  or item.title
@@ -156,29 +154,24 @@ async def update_kb(request: Request, kbid: str, item: KnowledgeBoxConfig) -> Kn
156
154
  or item.hidden_resources_enabled
157
155
  or item.hidden_resources_hide_on_creation
158
156
  ):
159
- config = knowledgebox_pb2.KnowledgeBoxConfig(
160
- slug=item.slug or "",
161
- title=item.title or "",
162
- description=item.description or "",
163
- hidden_resources_enabled=item.hidden_resources_enabled,
164
- hidden_resources_hide_on_creation=item.hidden_resources_hide_on_creation,
165
- )
166
- try:
167
- async with driver.rw_transaction() as txn:
157
+ try:
158
+ driver = get_driver()
168
159
  await KnowledgeBox.update(
169
- txn,
170
- uuid=kbid,
160
+ driver,
161
+ kbid=kbid,
171
162
  slug=item.slug,
172
- config=config,
163
+ title=item.title,
164
+ description=item.description,
165
+ hidden_resources_enabled=item.hidden_resources_enabled,
166
+ hidden_resources_hide_on_creation=item.hidden_resources_hide_on_creation,
173
167
  )
174
- await txn.commit()
175
- except datamanagers.exceptions.KnowledgeBoxNotFound:
176
- raise HTTPException(status_code=404, detail="Knowledge box does not exist")
177
- except Exception as exc:
178
- logger.exception("Could not update KB", exc_info=exc, extra={"kbid": kbid})
179
- raise HTTPException(status_code=500, detail="Error updating knowledge box")
180
- else:
181
- return KnowledgeBoxObjID(uuid=kbid)
168
+ except datamanagers.exceptions.KnowledgeBoxNotFound:
169
+ raise HTTPException(status_code=404, detail="Knowledge box does not exist")
170
+ except Exception as exc:
171
+ logger.exception("Could not update KB", exc_info=exc, extra={"kbid": kbid})
172
+ raise HTTPException(status_code=500, detail="Error updating knowledge box")
173
+
174
+ return KnowledgeBoxObjID(uuid=kbid)
182
175
 
183
176
 
184
177
  @only_for_onprem
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nucliadb
3
- Version: 6.9.1.post5180
3
+ Version: 6.9.2.post5282
4
4
  Summary: NucliaDB
5
5
  Author-email: Nuclia <nucliadb@nuclia.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -12,18 +12,17 @@ Classifier: Development Status :: 4 - Beta
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Intended Audience :: Information Technology
14
14
  Classifier: Programming Language :: Python
15
- Classifier: Programming Language :: Python :: 3.9
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Requires-Python: <4,>=3.9
19
+ Requires-Python: <4,>=3.10
21
20
  Description-Content-Type: text/markdown
22
- Requires-Dist: nucliadb-telemetry[all]>=6.9.1.post5180
23
- Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.9.1.post5180
24
- Requires-Dist: nucliadb-protos>=6.9.1.post5180
25
- Requires-Dist: nucliadb-models>=6.9.1.post5180
26
- Requires-Dist: nidx-protos>=6.9.1.post5180
21
+ Requires-Dist: nucliadb-telemetry[all]>=6.9.2.post5282
22
+ Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.9.2.post5282
23
+ Requires-Dist: nucliadb-protos>=6.9.2.post5282
24
+ Requires-Dist: nucliadb-models>=6.9.2.post5282
25
+ Requires-Dist: nidx-protos>=6.9.2.post5282
27
26
  Requires-Dist: nucliadb-admin-assets>=1.0.0.post1224
28
27
  Requires-Dist: nuclia-models>=0.50.0
29
28
  Requires-Dist: uvicorn[standard]
@@ -57,7 +56,7 @@ Requires-Dist: jwcrypto>=1.5.6
57
56
  Requires-Dist: pyyaml>=5.1
58
57
  Requires-Dist: fastapi-versioning>=0.10.0
59
58
  Requires-Dist: fastapi>=0.95.2
60
- Requires-Dist: sentry-sdk>=2.8.0
59
+ Requires-Dist: sentry-sdk[fastapi]>=2.8.0
61
60
  Requires-Dist: pyjwt>=2.4.0
62
61
  Requires-Dist: mmh3>=3.0.0
63
62
  Requires-Dist: httpx>=0.23.0
@@ -46,6 +46,7 @@ migrations/pg/0006_catalog_title_indexes.py,sha256=n2OGxwE4oeCwHAYaxBkja4t10BmwT
46
46
  migrations/pg/0007_catalog_slug.py,sha256=mArzZCBO-RD5DkWxRIyDKgEzrnAcis1TOGvSNUe7Kgg,1150
47
47
  migrations/pg/0008_catalog_facets.py,sha256=dxIUdHJHtI_Gyk2dpP7tjHEnL2iPzAufi6ajYm2FVMI,1595
48
48
  migrations/pg/0009_extract_facets_safety.py,sha256=k9Appx7ipp3wDyLy70qgw9oLjN7N6BEadE-N5Fhan-4,1066
49
+ migrations/pg/0010_shards_index.py,sha256=7s7c2s5768BkOqexJ2CedzJq8SigGKC9rfOigtQOraA,1417
49
50
  migrations/pg/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
50
51
  nucliadb/__init__.py,sha256=_abCmDJ_0ku483Os4UAjPX7Nywm39cQgAV_DiyjsKeQ,891
51
52
  nucliadb/health.py,sha256=UIxxA4oms4HIsCRZM_SZsdkIZIlgzmOxw-qSHLlWuak,3465
@@ -67,7 +68,7 @@ nucliadb/common/cache.py,sha256=FmMVPoxmKGODvOCyO_pxEHjAV3sYeefW9Jeh1cVLTU0,6538
67
68
  nucliadb/common/constants.py,sha256=QpigxJh_CtD85Evy0PtV5cVq6x0U_f9xfIcXz1ymkUg,869
68
69
  nucliadb/common/counters.py,sha256=8lOi3A2HeLDDlcNaS2QT1SfD3350VPBjiY3FkmHH1V8,977
69
70
  nucliadb/common/exceptions.py,sha256=_PJk_NfAhZBFBvmgAfvsJKZ9KuRt5Y1cNsH3-cXE07w,1120
70
- nucliadb/common/filter_expression.py,sha256=-6buKY1SCVYpkrG_60Ui3ebSDWnXeF_xVmBCrNipoII,6569
71
+ nucliadb/common/filter_expression.py,sha256=qVNVBqhD-RgKR3U_fBnp_a33vhuw684dkKaoMgjyWjI,6233
71
72
  nucliadb/common/ids.py,sha256=M4bcl6gmBhVeD3XhRMv40YsbY83bOgSHInQ2ol33Mjc,8829
72
73
  nucliadb/common/locking.py,sha256=eZG47mI1OPnKbxSd95qa6jDXBhUoxVBIuSjxoEuBRWE,5894
73
74
  nucliadb/common/nidx.py,sha256=W0NkbYfhXgyP9f0QCdAZDv4P-S99QuVrt6ft3B8CZM8,10089
@@ -85,17 +86,17 @@ nucliadb/common/catalog/utils.py,sha256=lQLTe3rN_ra0CiNjTQIiIaU4lhx5beRkx1Va10ZB
85
86
  nucliadb/common/cluster/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
86
87
  nucliadb/common/cluster/exceptions.py,sha256=t7v_l93t44l2tQpdQXgO_w-c4YZRcaayOz1A2i0w4RQ,1258
87
88
  nucliadb/common/cluster/grpc_node_dummy.py,sha256=JkufazWzMA4KFEU8EBkMbiiDW4C8lLcRhiiCxP7aCQY,2949
88
- nucliadb/common/cluster/manager.py,sha256=QOHA7trtZVwV5G9IIxM1Y-0P2KE5mEhsXUMPs8vxIg0,12816
89
- nucliadb/common/cluster/rebalance.py,sha256=238JxqdSl1_oeJNpKuGBgfVn8WXVmyX5yl2PyHomYX8,8715
90
- nucliadb/common/cluster/rollover.py,sha256=swuYNXJ8u5p11PvYaHxVtomiYIPVWVGVsicwTgm24-Q,25862
89
+ nucliadb/common/cluster/manager.py,sha256=p-haaGEnCa-20t-I2XEo4QJ5ZC1QgJ6p2jzXFYVB6nQ,12346
90
+ nucliadb/common/cluster/rebalance.py,sha256=XT8APmvvjwr5pbMPqnVcFj1ZehSQwOP5US-cKkEyEag,23559
91
+ nucliadb/common/cluster/rollover.py,sha256=kmVCdyjJ1dilnSodHMqf0EUkTjPC5H0aA4JqW9KsEa4,27168
91
92
  nucliadb/common/cluster/settings.py,sha256=f6Y5K0PGahkedwe5wtkWMnbqwDFJgOOwX_MOIGwH9Dg,2271
92
- nucliadb/common/cluster/utils.py,sha256=IfW5PA7Ab26xWUYNOc3yBoksWV1GK4BGhTRo1vnHNKg,4662
93
+ nucliadb/common/cluster/utils.py,sha256=E4GqidwTKczJX_lTnncBCof2fL4CFVVF1eLiz9NWjlc,5494
93
94
  nucliadb/common/cluster/standalone/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
94
95
  nucliadb/common/cluster/standalone/utils.py,sha256=af3r-x_GF7A6dwIAhZLR-r-SZQEVxsFrDKeMfUTA6G0,1908
95
96
  nucliadb/common/context/__init__.py,sha256=IKAHuiCjbOEsqfLozWwJ6mRFzFncsZMyxNC5E_XZ5EM,6016
96
97
  nucliadb/common/context/fastapi.py,sha256=mH_8n5t7quNSPivNM2JS5EQf2sTVJsdzXW6LaY7EHAA,1629
97
98
  nucliadb/common/datamanagers/__init__.py,sha256=xKc6ZMqKUs20R90jJT4xkQ8TFMNwQnhhuWnBBqVnKdM,2084
98
- nucliadb/common/datamanagers/atomic.py,sha256=WihdtBWQIAuElZQjh1xQ--q5dJowwlkovqsW-OB_t2k,3230
99
+ nucliadb/common/datamanagers/atomic.py,sha256=tZEOUqrbUjNKEgxNn8IpukK0BuBQMtf-rKUq0KuT_YY,3409
99
100
  nucliadb/common/datamanagers/cluster.py,sha256=iU0b7AESm1Yi8Wp3pIKgqixZGNMjeBrxSpvEKsaZKgY,1831
100
101
  nucliadb/common/datamanagers/entities.py,sha256=gI-0mbMlqrr9FiyhexEh6czhgYcMxE2s9m4o866EK9o,5340
101
102
  nucliadb/common/datamanagers/exceptions.py,sha256=Atz_PP_GGq4jgJaWcAkcRbHBoBaGcC9yJvFteylKtTE,883
@@ -150,11 +151,11 @@ nucliadb/ingest/consumer/consumer.py,sha256=1OetpJXp6glaAe4kKqUA_L46BS-ZyEccTkwt
150
151
  nucliadb/ingest/consumer/materializer.py,sha256=tgD_rDI2twQzcz8kKNiW_L4YIth16IGh9mUfD5wiSD4,3858
151
152
  nucliadb/ingest/consumer/metrics.py,sha256=ji1l_4cKiHJthQd8YNem1ft4iMbw9KThmVvJmLcv3Xg,1075
152
153
  nucliadb/ingest/consumer/pull.py,sha256=Ki_aHi72W83yD03lPt6Yz2l_uCeu62fd4upEMcOZcm4,9201
153
- nucliadb/ingest/consumer/service.py,sha256=mjiEJFO9t8nsQBdbWfGyyGajaW012-6mAwMARBkedgU,5600
154
- nucliadb/ingest/consumer/shard_creator.py,sha256=UKIk0yaS_jC_nGQqymn9NGJWzwZEqhIr0gznJYorlAE,4348
154
+ nucliadb/ingest/consumer/service.py,sha256=_yj3gUKaCUA6Wp_73Bm8tO2Xk1vR8-aJV2xvPZpjAfM,5524
155
+ nucliadb/ingest/consumer/shard_creator.py,sha256=qUEpxZLE1etw1nL8L3O9HvZBx5NNql7S1vKDyqelN2M,4849
155
156
  nucliadb/ingest/consumer/utils.py,sha256=jpX8D4lKzuPCpArQLZeX_Zczq3pfen_zAf8sPJfOEZU,2642
156
157
  nucliadb/ingest/fields/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
157
- nucliadb/ingest/fields/base.py,sha256=D8NzawonF7hivDW9zvQBbV938TKA6e2OCGqV4kS96RU,24405
158
+ nucliadb/ingest/fields/base.py,sha256=Yk6b7OQ96YAAaDEyckry6-dBhzXASzuJucjTpEvFUZ4,23715
158
159
  nucliadb/ingest/fields/conversation.py,sha256=KkOvNM1rZFQRg2RsfGd3Jrz3lpx0HpGpN1cmlpz_mZw,9563
159
160
  nucliadb/ingest/fields/exceptions.py,sha256=sZBk21BSrXFdOdo1qUdCAyD-9YMYakSLdn4_WdIPCIQ,1217
160
161
  nucliadb/ingest/fields/file.py,sha256=1v4jLg3balUua2VmSV8hHkAwPFShTUCOzufZvIUQcQw,4740
@@ -167,23 +168,23 @@ nucliadb/ingest/orm/broker_message.py,sha256=XWaiZgDOz94NPOPT-hqbRr5ZkpVimUw6PjU
167
168
  nucliadb/ingest/orm/entities.py,sha256=kXyeF6XOpFKhEsGLcY-GLIk21Exp0cJst4XQQ9jJoug,14791
168
169
  nucliadb/ingest/orm/exceptions.py,sha256=gsp7TtVNQPiIEh-zf_UEJClwuFU0iu-5vzj0OrKMScg,1550
169
170
  nucliadb/ingest/orm/index_message.py,sha256=mWlpQ0-KChSVIbHewVE8sXCe-7LiPIIh0cBqr3axU8o,16554
170
- nucliadb/ingest/orm/knowledgebox.py,sha256=n72wuqordGbKhUcFd1jEbf3c7E3IQPnyBXq9rIEDtvM,23428
171
+ nucliadb/ingest/orm/knowledgebox.py,sha256=rjZKD8dIhr-2kvm77K0OBjQKv8VU1FoWi0YQDswZ9fo,25630
171
172
  nucliadb/ingest/orm/metrics.py,sha256=OiuggTh-n3kZHA2G73NEUdIlh8c3yFrbusI88DK-Mko,1273
172
173
  nucliadb/ingest/orm/resource.py,sha256=zQeZyZ-tCxr-DhonLobfZRkz_iEew0Y-cGfXeNNIHG0,40432
173
174
  nucliadb/ingest/orm/utils.py,sha256=fCQRuyecgqhaY7mcBG93oaXMkzkKb9BFjOcy4-ZiSNw,2693
174
175
  nucliadb/ingest/orm/processor/__init__.py,sha256=xhDNKCxY0XNOlIVKEtM8QT75vDUkJIt7K-_VgGbbOQU,904
175
176
  nucliadb/ingest/orm/processor/auditing.py,sha256=gxn5v30KVaH0TnIjo715mWjzKGJ-DMviElEXJG9BNN4,4612
176
177
  nucliadb/ingest/orm/processor/data_augmentation.py,sha256=v-pj4GbBWSuO8dQyahs5UDr5ghsyfhCZDS0ftKd6ZYc,5179
177
- nucliadb/ingest/orm/processor/processor.py,sha256=3wlGiCXXaVpqLyCJ3AHWHfpKTwtywU78_LkNtpqOiuQ,31391
178
+ nucliadb/ingest/orm/processor/processor.py,sha256=S7myNucnK8v_5y4gZxS_5nL-glGx_fZe2l8gSzDy2CU,31808
178
179
  nucliadb/ingest/orm/processor/sequence_manager.py,sha256=kUH0bCuM6NqpA0xSwfyb9igig3Btu57pc8VYnKggqx4,1693
179
180
  nucliadb/ingest/service/__init__.py,sha256=LHQFUkdmNBOWqBG0Md9sMMI7g5TQZ-hLAnhw6ZblrJg,2002
180
181
  nucliadb/ingest/service/exceptions.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
181
- nucliadb/ingest/service/writer.py,sha256=6LvBcwdu5MbL8SWI4HhQwULFsTnnbeHpg4xIzj5Hw_M,21570
182
+ nucliadb/ingest/service/writer.py,sha256=ilHBV3cW4D-vO0hWKZP0hA9j5xNnEgsXrrw7r0VOt9M,21988
182
183
  nucliadb/middleware/__init__.py,sha256=A8NBlBuEkunCFMKpR9gnfNELsVn0Plc55BIQMbWDM8Q,2202
183
184
  nucliadb/migrator/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
184
185
  nucliadb/migrator/command.py,sha256=dKbJ1tAmP6X4lMVRSSlz351euaqs2wBPpOczLjATUes,2089
185
186
  nucliadb/migrator/context.py,sha256=3h6M_AG2HFjTYtQC2XDmKps7wywdUduT1RM3C30S_S0,1334
186
- nucliadb/migrator/datamanager.py,sha256=WLOKVbkU-G4dtWscKMc4WhQHpncWq_hH3Kf4qHfPzXI,5237
187
+ nucliadb/migrator/datamanager.py,sha256=PttueVXSqwXHNvrT8p2626Td-NHb4eGBbfBY_F4vVdw,4928
187
188
  nucliadb/migrator/exceptions.py,sha256=jTj3YhKmFwUyjjgoKUNoCAiGrpEbB64X1Um212nSNQ8,889
188
189
  nucliadb/migrator/migrator.py,sha256=NUOhaCyEoAldXVexYEqClppIN0TMXrF37Ulz0y0TWCY,10840
189
190
  nucliadb/migrator/models.py,sha256=3PJkL2PGvKgIG0KIBv4H5XCsOVmwWMlRV3m0ntDj10Q,1145
@@ -193,7 +194,7 @@ nucliadb/models/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,8
193
194
  nucliadb/models/responses.py,sha256=qnuOoc7TrVSUnpikfTwHLKez47_DE4mSFzpxrwtqijA,1599
194
195
  nucliadb/models/internal/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
195
196
  nucliadb/models/internal/processing.py,sha256=F_WpDItHsBWuMNeLMxXOKqpZoRYdjPuB2l0s29PVcfI,4213
196
- nucliadb/purge/__init__.py,sha256=FWqY2ln2ecGgVcZaMhfs8nTt4HzpprubkCsurSrIrC8,13070
197
+ nucliadb/purge/__init__.py,sha256=RFqMj3JRML2sGrQtmRm2fzRg350f0PhkBpZh-KRWnlc,12954
197
198
  nucliadb/purge/orphan_shards.py,sha256=5QvTBoYJ2h14TUvJmZxphHJPf_WB-VVC9453n-zjSrU,7747
198
199
  nucliadb/reader/__init__.py,sha256=C5Efic7WlGm2U2C5WOyquMFbIj2Pojwe_8mwzVYnOzE,1304
199
200
  nucliadb/reader/app.py,sha256=Se-BFTE6d1v1msLzQn4q5XIhjnSxa2ckDSHdvm7NRf8,3096
@@ -207,7 +208,7 @@ nucliadb/reader/api/v1/__init__.py,sha256=ieP8lsCCwG66Jupv8II5MSTj6nh3eCtLcF4utH
207
208
  nucliadb/reader/api/v1/download.py,sha256=F48YM3BPwuHwDgYk0jjRHHJHh732QUb4nCAS5xyNqzg,10819
208
209
  nucliadb/reader/api/v1/export_import.py,sha256=x4VBNDFjnlY1nIt5kdq0eZTB_DeRzGzT8T7uB7wUhNU,6448
209
210
  nucliadb/reader/api/v1/knowledgebox.py,sha256=lmKDGbpDC30XTH1yhDWwrHdV8-uc5KGfI73zlmxImGA,4973
210
- nucliadb/reader/api/v1/learning_config.py,sha256=wL4k9ZFK0BX17ocq1tUmbh-atLrw-Xag7Ly8wgD1xrQ,6812
211
+ nucliadb/reader/api/v1/learning_config.py,sha256=BIhhBN6NlpcoqqmLmk3YThqa49kLsypuAVRTXXj1ZEY,7476
211
212
  nucliadb/reader/api/v1/resource.py,sha256=WTBIEywfHfy4sIffnVm9s__3--JpHi9hprVpK0Ddd04,14164
212
213
  nucliadb/reader/api/v1/router.py,sha256=eyNmEGSP9zHkCIG5XlAXl6sukq950B7gFT3X2peMtIE,1011
213
214
  nucliadb/reader/api/v1/services.py,sha256=Fcj4fRDBNnIwnf5Q3VZxpP_6UwdPYOtyEZUGr9_lhqo,13438
@@ -229,18 +230,18 @@ nucliadb/search/api/v1/__init__.py,sha256=hiIGqIVD0ETJWHvX41_RDEMPHq7jWrE4q4rFQo
229
230
  nucliadb/search/api/v1/ask.py,sha256=hZUnk1opZuXp1IwTiingSatlUefg2CZ9r_Z9sUwZMaU,5698
230
231
  nucliadb/search/api/v1/catalog.py,sha256=zMflTu9UKfvuEO_u4Et33Q2kSni0TIk2E5t-_Ad5BXM,8069
231
232
  nucliadb/search/api/v1/feedback.py,sha256=kNLc4dHz2SXHzV0PwC1WiRAwY88fDptPcP-kO0q-FrQ,2620
232
- nucliadb/search/api/v1/find.py,sha256=j6mxEyxjlLnZSqCT_N2LmOJlytsm1vkY4KFFmJRrtP8,10904
233
+ nucliadb/search/api/v1/find.py,sha256=X17Sj8T_WAZHkkbhXvEr3fK3oItKL1aDzqvB4TY5cbY,10768
233
234
  nucliadb/search/api/v1/graph.py,sha256=gthqxCOn9biE6D6s93jRGLglk0ono8U7OyS390kWiI8,4178
234
235
  nucliadb/search/api/v1/hydrate.py,sha256=31HuYvQPZthBhDulVWU8q3EPiBfm4bJDpWMbtM3gtCk,11954
235
236
  nucliadb/search/api/v1/knowledgebox.py,sha256=e9xeLPUqnQTx33i4A8xuV93ENvtJGrpjPlLRbGJtAI8,8415
236
237
  nucliadb/search/api/v1/predict_proxy.py,sha256=TnXKAqf_Go-9QVi6L5z4cXjnuNRe7XLJjF5QH_uwA1I,3504
237
238
  nucliadb/search/api/v1/router.py,sha256=mtT07rBZcVfpa49doaw9b1tj3sdi3qLH0gn9Io6NYM0,988
238
- nucliadb/search/api/v1/search.py,sha256=eqlrvRE7IlMpunNwD1RJwt6RgMV01sIDJLgxxE7CFcE,12297
239
+ nucliadb/search/api/v1/search.py,sha256=DwfA0gPpf4g7ng7rqX27wa1jeo-RVF4eK4byL21G0fA,12134
239
240
  nucliadb/search/api/v1/suggest.py,sha256=gaJE60r8-z6TVO05mQRKBITwXn2_ofM3B4-OtpOgZEk,6343
240
241
  nucliadb/search/api/v1/summarize.py,sha256=eJzgFJWUO80STx3lHc_0h9RZVaBCWF196nZUecfmqbE,2700
241
242
  nucliadb/search/api/v1/utils.py,sha256=5Ve-frn7LAE2jqAgB85F8RSeqxDlyA08--gS-AdOLS4,1434
242
243
  nucliadb/search/api/v1/resource/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
243
- nucliadb/search/api/v1/resource/ask.py,sha256=PlOXa17lnmj3KA9bARNfDqvnx7Pe9OTnwz-OwgGTUjU,4035
244
+ nucliadb/search/api/v1/resource/ask.py,sha256=Il9Y9lGtmlAXolnxAGGZsubRYSe5FjQCG3LWkmgDcsE,4871
244
245
  nucliadb/search/api/v1/resource/ingestion_agents.py,sha256=AZ5_cH1jbf7d5wh_gz6EHLEKAzEOMrQZwEZAu1Q_3FE,4846
245
246
  nucliadb/search/api/v1/resource/search.py,sha256=PZR7fs5oYD0RKqKoD38NZMAnOJzBv35NB2YOr2xy1ck,4923
246
247
  nucliadb/search/api/v1/resource/utils.py,sha256=-NjZqAQtFEXKpIh8ui5S26ItnJ5rzmmG0BHxGSS9QPw,1141
@@ -252,7 +253,7 @@ nucliadb/search/search/cut.py,sha256=ytY0_GY7ocNjfxTb4aosxEp4ZfhQNDP--JkhEMGD298
252
253
  nucliadb/search/search/exceptions.py,sha256=q6IKlajYRGLx_AVc2DI6gIZLpOY7ydf4EevMr5_2Krw,940
253
254
  nucliadb/search/search/fetch.py,sha256=QweK9WOl9ilxVPsVU5qTnIg7lhISWVFknij4vGhdBFk,6170
254
255
  nucliadb/search/search/filters.py,sha256=vZnbf3BjYuDkEQcBeLX_GDkq3Ahbbb7pLJ6DJU9z-QE,6490
255
- nucliadb/search/search/find.py,sha256=ZocoQNN28OHOmMaroGVFCnce3YHPZbFb1-9jxLNHSFM,7805
256
+ nucliadb/search/search/find.py,sha256=pM1Qcm9VM9Cnp6vmy1YX_bXcMGnPp-zJBVPnkeah3Lw,7650
256
257
  nucliadb/search/search/find_merge.py,sha256=c-7IlfjfdmWAvQOyM7IO3bKS1EQpnR4oi6pN6mwrQKw,19815
257
258
  nucliadb/search/search/graph_merge.py,sha256=y5V7X-BhjHsKDXE69tzQLIIKGm4XuaFrZXw0odcHVNM,3402
258
259
  nucliadb/search/search/graph_strategy.py,sha256=VNa-XLQnJometUTbDJumhHf_LUHphHBoEQhopL3rDGk,36122
@@ -261,18 +262,18 @@ nucliadb/search/search/merge.py,sha256=XiRBsxhYPshPV7lZXD-9E259KZOPIf4I2tKosY0lP
261
262
  nucliadb/search/search/metrics.py,sha256=yodhoyn-smFdS7rKUn_XXNNXT93WqVdZj9F3TCbbQTI,4160
262
263
  nucliadb/search/search/paragraphs.py,sha256=pNAEiYqJGGUVcEf7xf-PFMVqz0PX4Qb-WNG-_zPGN2o,7799
263
264
  nucliadb/search/search/predict_proxy.py,sha256=fjy4HsIkv-CfiHIk9282Pp0DfLgl3939F-whYk4LnYI,10051
264
- nucliadb/search/search/query.py,sha256=lYCesbUv-B7IyVFQoCCurcxl_Azc5nq3jtVQJ9tk1Ao,11552
265
+ nucliadb/search/search/query.py,sha256=0iF8QKmft5Y14TD4ww893cEoCxXOAwpHtCDoksNEPkE,10753
265
266
  nucliadb/search/search/rank_fusion.py,sha256=xZtXhbmKb_56gs73u6KkFm2efvTATOSMmpOV2wrAIqE,9613
266
267
  nucliadb/search/search/rerankers.py,sha256=2LNC0I28EXriffMuBlOYzjQq0vCTjpCxaK29f852n3s,7473
267
268
  nucliadb/search/search/shards.py,sha256=mc5DK-MoCv9AFhlXlOFHbPvetcyNDzTFOJ5rimK8PC8,2636
268
269
  nucliadb/search/search/summarize.py,sha256=3lLdwsM28W505bKvmK7JLXmz7kcjd8Hp70LQs391ofY,5087
269
270
  nucliadb/search/search/utils.py,sha256=ajRIXfdTF67dBVahQCXW-rSv6gJpUMPt3QhJrWqArTQ,2175
270
271
  nucliadb/search/search/chat/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
271
- nucliadb/search/search/chat/ask.py,sha256=A-XKXXMt9i2sw1thuztAVLG2hgP8eJwd3KXEBfA1CQI,41640
272
+ nucliadb/search/search/chat/ask.py,sha256=siMKgXEuAOUPa9oxi72idEOhN9BXZ-NVvWY3rqMMM3I,41610
272
273
  nucliadb/search/search/chat/exceptions.py,sha256=Siy4GXW2L7oPhIR86H3WHBhE9lkV4A4YaAszuGGUf54,1356
273
274
  nucliadb/search/search/chat/images.py,sha256=PA8VWxT5_HUGfW1ULhKTK46UBsVyINtWWqEM1ulzX1E,3095
274
- nucliadb/search/search/chat/prompt.py,sha256=Bk69WVki5XIzXFYO6o1uQw1feHtuMwfEx_A1TT3piR0,54136
275
- nucliadb/search/search/chat/query.py,sha256=qWrwVEX_GrDV7LFRyC21BURtl-WsRt8BkIocY8njkKM,17147
275
+ nucliadb/search/search/chat/prompt.py,sha256=Ti0dO8RDY9YeRPowwiWbojjd-IgpAKkHEat79jGFidk,55671
276
+ nucliadb/search/search/chat/query.py,sha256=Ds_0vYfCdbfTZerSM0AykkfKYYJj88j_M2XA87FfjJQ,17101
276
277
  nucliadb/search/search/hydrator/__init__.py,sha256=3Pc-rcax4TI174qcrllnReE728DoJTaA8tpvBUFf98g,7005
277
278
  nucliadb/search/search/hydrator/fields.py,sha256=LhKw-aNU5eJqfZADtq3iB7AGXm0l_QabAAoSHJTk8Is,5962
278
279
  nucliadb/search/search/hydrator/images.py,sha256=gS7-dr1e_DpRQ6XaGxwMW1AMEV9a-u73h_jTVy7XY38,4602
@@ -281,16 +282,16 @@ nucliadb/search/search/hydrator/resources.py,sha256=1pNyUac8xWRnQVXU6FkDwsXHzmOZ
281
282
  nucliadb/search/search/query_parser/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
282
283
  nucliadb/search/search/query_parser/exceptions.py,sha256=sVl9gRNzhE-s480LBBVkiXzNRbKhYRQN5F3it5tNNp8,939
283
284
  nucliadb/search/search/query_parser/fetcher.py,sha256=0Eg_7x9BaAQ1AuTK6NXQMUoGFAXIZiMRurR32tydeNM,17198
284
- nucliadb/search/search/query_parser/models.py,sha256=ARJYv88bj-u1G4-JxLKNbaz8gwC5sIyeZx_9Aai3KKI,4302
285
+ nucliadb/search/search/query_parser/models.py,sha256=eejW44oZ-XMl3CP8qFPMTqqK4MC_k7blLWZDR82c7yQ,4240
285
286
  nucliadb/search/search/query_parser/old_filters.py,sha256=GsU3T3-WiSPvjucP7evHkshzAWZOli8qsuXChvWRCY0,9092
286
287
  nucliadb/search/search/query_parser/parsers/__init__.py,sha256=ySCNSdbesLXGZyR88919njulA6UE10_3PhqMG_Yj1o4,1034
287
288
  nucliadb/search/search/query_parser/parsers/ask.py,sha256=ySa3lBhUuammIchJvj7xodeGIYGkR0uyLnHuOtLfWE8,2810
288
- nucliadb/search/search/query_parser/parsers/catalog.py,sha256=DErVfWJ9a_F5a8Qbht1WY4Lm8r3ui9Y3C7oJMOOZOng,7474
289
+ nucliadb/search/search/query_parser/parsers/catalog.py,sha256=ZECncFrgcxtsXrvAA2sqH9h0HJrQvSdezdlQhPR78Lk,7464
289
290
  nucliadb/search/search/query_parser/parsers/common.py,sha256=LvpCHL5a8mwVn3_3MMZq9WiVHOFMfLuJlZKvh_neHiM,6872
290
- nucliadb/search/search/query_parser/parsers/find.py,sha256=7z6GDscMGybvlXENAKOs7XM3p1IJmdC-AZsb4GX_O3g,12698
291
+ nucliadb/search/search/query_parser/parsers/find.py,sha256=HgBFqLSZICg6zT6k14riJzyn-XLP--EVjKNDDDyy-k8,12408
291
292
  nucliadb/search/search/query_parser/parsers/graph.py,sha256=s7nCB7ly_4BZWds-8zce1R-r2fHSiEhAK8P-eL14wTk,9390
292
- nucliadb/search/search/query_parser/parsers/search.py,sha256=k9JaE9qWGi_eUxEKe_pOKrMIpx7k2wr2j3XrNqZJx9A,10428
293
- nucliadb/search/search/query_parser/parsers/unit_retrieval.py,sha256=xiOQ7_X6MkcZs3W_0DjdVfyk-G1AY6RBx3oG5hsq7ig,11455
293
+ nucliadb/search/search/query_parser/parsers/search.py,sha256=1L-m7TrpqoaWmO-saxLxN7l4MC_WzD8pMwz5z_uZBbE,10138
294
+ nucliadb/search/search/query_parser/parsers/unit_retrieval.py,sha256=Oz2L9W21h5XVzQDa5v9cdZsJs8nc9jl8T2nP57F29CU,11054
294
295
  nucliadb/standalone/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
295
296
  nucliadb/standalone/api_router.py,sha256=zRSMlaRVHUDGTYA3zC03UV_aLLn-ch-kaeWn1tEjTXw,4338
296
297
  nucliadb/standalone/app.py,sha256=mAApNK_iVsQgJyd-mtwCeZq5csSimwnXmlQGH9a70pE,5586
@@ -362,7 +363,7 @@ nucliadb/writer/api/utils.py,sha256=wIQHlU8RQiIGVLI72suvyVIKlCU44Unh0Ae0IiN6Qwo,
362
363
  nucliadb/writer/api/v1/__init__.py,sha256=akI9A_jloNLb0dU4T5zjfdyvmSAiDeIdjAlzNx74FlU,1128
363
364
  nucliadb/writer/api/v1/export_import.py,sha256=v0sU55TtRSqDzwkDgcwv2uSaqKCuQTtGcMpYoHQYBQA,8192
364
365
  nucliadb/writer/api/v1/field.py,sha256=nO3IEV6v5hokdIo5HoaecdwDqvr1PzCJlh5DafzcNTw,19130
365
- nucliadb/writer/api/v1/knowledgebox.py,sha256=oSeM0HkOhvDIvjwrBeqbd9ubeN91x2-PiuhJgNuBn-w,8084
366
+ nucliadb/writer/api/v1/knowledgebox.py,sha256=hx3J91fziaISU1aYdfI0eIQNuJj8BrBzGb6B4Rt2j-I,7881
366
367
  nucliadb/writer/api/v1/learning_config.py,sha256=DTLEzKJ3dHvi8pbZscjElUqCH_ZvLc6WZgvalFqHo10,4450
367
368
  nucliadb/writer/api/v1/resource.py,sha256=IfcT6HXnR5sC5wSnQSuKmFzEWcLTh7OzZEAV4hYmXnA,20442
368
369
  nucliadb/writer/api/v1/router.py,sha256=RjuoWLpZer6Kl2BW_wznpNo6XL3BOpdTGqXZCn3QrrQ,1034
@@ -385,8 +386,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
385
386
  nucliadb/writer/tus/s3.py,sha256=vu1BGg4VqJ_x2P1u2BxqPKlSfw5orT_a3R-Ln5oPUpU,8483
386
387
  nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
387
388
  nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
388
- nucliadb-6.9.1.post5180.dist-info/METADATA,sha256=PhL__aPElxMSqdXzorM3VPQxLB1TgGY7AO4QMtOKPjA,4158
389
- nucliadb-6.9.1.post5180.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
390
- nucliadb-6.9.1.post5180.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
391
- nucliadb-6.9.1.post5180.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
392
- nucliadb-6.9.1.post5180.dist-info/RECORD,,
389
+ nucliadb-6.9.2.post5282.dist-info/METADATA,sha256=MNuuXVQr1JrZlO3SgVsGXLokyn81ahQc46LPnZw2oaI,4118
390
+ nucliadb-6.9.2.post5282.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
391
+ nucliadb-6.9.2.post5282.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
392
+ nucliadb-6.9.2.post5282.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
393
+ nucliadb-6.9.2.post5282.dist-info/RECORD,,