nucliadb 6.7.0.post4773__py3-none-any.whl → 6.7.0.post4786__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.
- nucliadb/search/predict.py +14 -31
- nucliadb/search/predict_models.py +41 -0
- nucliadb/search/search/chat/ask.py +1 -0
- nucliadb/search/search/chat/prompt.py +9 -3
- nucliadb/search/search/chat/query.py +1 -0
- nucliadb/search/search/query.py +2 -0
- nucliadb/search/search/query_parser/fetcher.py +15 -1
- nucliadb/search/search/query_parser/parsers/ask.py +1 -0
- nucliadb/search/search/query_parser/parsers/find.py +1 -0
- nucliadb/search/search/query_parser/parsers/search.py +1 -0
- {nucliadb-6.7.0.post4773.dist-info → nucliadb-6.7.0.post4786.dist-info}/METADATA +6 -6
- {nucliadb-6.7.0.post4773.dist-info → nucliadb-6.7.0.post4786.dist-info}/RECORD +15 -15
- {nucliadb-6.7.0.post4773.dist-info → nucliadb-6.7.0.post4786.dist-info}/WHEEL +0 -0
- {nucliadb-6.7.0.post4773.dist-info → nucliadb-6.7.0.post4786.dist-info}/entry_points.txt +0 -0
- {nucliadb-6.7.0.post4773.dist-info → nucliadb-6.7.0.post4786.dist-info}/top_level.txt +0 -0
nucliadb/search/predict.py
CHANGED
@@ -24,7 +24,7 @@ import os
|
|
24
24
|
import random
|
25
25
|
from dataclasses import dataclass
|
26
26
|
from enum import Enum
|
27
|
-
from typing import
|
27
|
+
from typing import AsyncGenerator, Optional
|
28
28
|
from unittest.mock import AsyncMock, Mock
|
29
29
|
|
30
30
|
import aiohttp
|
@@ -37,6 +37,7 @@ from nucliadb.search import logger
|
|
37
37
|
from nucliadb.search.predict_models import (
|
38
38
|
AppliedDataAugmentation,
|
39
39
|
AugmentedField,
|
40
|
+
QueryModel,
|
40
41
|
RunAgentsRequest,
|
41
42
|
RunAgentsResponse,
|
42
43
|
)
|
@@ -326,11 +327,7 @@ class PredictEngine:
|
|
326
327
|
async def query(
|
327
328
|
self,
|
328
329
|
kbid: str,
|
329
|
-
|
330
|
-
semantic_model: Optional[str] = None,
|
331
|
-
generative_model: Optional[str] = None,
|
332
|
-
rephrase: bool = False,
|
333
|
-
rephrase_prompt: Optional[str] = None,
|
330
|
+
item: QueryModel,
|
334
331
|
) -> QueryInfo:
|
335
332
|
"""
|
336
333
|
Query endpoint: returns information to be used by NucliaDB at retrieval time, for instance:
|
@@ -354,21 +351,10 @@ class PredictEngine:
|
|
354
351
|
logger.warning(error)
|
355
352
|
raise SendToPredictError(error)
|
356
353
|
|
357
|
-
params: dict[str, Any] = {
|
358
|
-
"text": sentence,
|
359
|
-
"rephrase": str(rephrase),
|
360
|
-
}
|
361
|
-
if rephrase_prompt is not None:
|
362
|
-
params["rephrase_prompt"] = rephrase_prompt
|
363
|
-
if semantic_model is not None:
|
364
|
-
params["semantic_models"] = [semantic_model]
|
365
|
-
if generative_model is not None:
|
366
|
-
params["generative_model"] = generative_model
|
367
|
-
|
368
354
|
resp = await self.make_request(
|
369
|
-
"
|
355
|
+
"POST",
|
370
356
|
url=self.get_predict_url(QUERY, kbid),
|
371
|
-
|
357
|
+
json=item.model_dump(),
|
372
358
|
headers=self.get_predict_headers(kbid),
|
373
359
|
)
|
374
360
|
await self.check_response(kbid, resp, expected_status=200)
|
@@ -501,16 +487,13 @@ class DummyPredictEngine(PredictEngine):
|
|
501
487
|
|
502
488
|
return (DUMMY_LEARNING_ID, DUMMY_LEARNING_MODEL, generate())
|
503
489
|
|
504
|
-
async def query(
|
505
|
-
self
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
rephrase_prompt: Optional[str] = None,
|
512
|
-
) -> QueryInfo:
|
513
|
-
self.calls.append(("query", sentence))
|
490
|
+
async def query(self, kbid: str, item: QueryModel) -> QueryInfo:
|
491
|
+
self.calls.append(
|
492
|
+
(
|
493
|
+
"query",
|
494
|
+
item,
|
495
|
+
)
|
496
|
+
)
|
514
497
|
|
515
498
|
if os.environ.get("TEST_SENTENCE_ENCODER") == "multilingual-2023-02-21": # pragma: no cover
|
516
499
|
base_vector = Qm2023
|
@@ -534,7 +517,7 @@ class DummyPredictEngine(PredictEngine):
|
|
534
517
|
timings[vectorset_id] = 0.010
|
535
518
|
|
536
519
|
# and fake data with the passed one too
|
537
|
-
model =
|
520
|
+
model = item.semantic_models[0] if item.semantic_models else "<PREDICT-DEFAULT-SEMANTIC-MODEL>"
|
538
521
|
semantic_thresholds[model] = self.default_semantic_threshold
|
539
522
|
vectors[model] = base_vector
|
540
523
|
timings[model] = 0.0
|
@@ -550,7 +533,7 @@ class DummyPredictEngine(PredictEngine):
|
|
550
533
|
vectors=vectors,
|
551
534
|
timings=timings,
|
552
535
|
),
|
553
|
-
query=
|
536
|
+
query=model,
|
554
537
|
)
|
555
538
|
|
556
539
|
async def detect_entities(self, kbid: str, sentence: str) -> list[RelationNode]:
|
@@ -25,6 +25,7 @@ from google.protobuf.message import DecodeError, Message
|
|
25
25
|
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
26
26
|
from typing_extensions import TypedDict
|
27
27
|
|
28
|
+
from nucliadb_models.search import Image
|
28
29
|
from nucliadb_protos.resources_pb2 import FieldMetadata, FieldText, QuestionAnswers
|
29
30
|
|
30
31
|
|
@@ -163,3 +164,43 @@ class RunAgentsResponse(BaseModel):
|
|
163
164
|
...,
|
164
165
|
title="Pairs of augmented FieldMetadata and Data Augmentation results by field id",
|
165
166
|
)
|
167
|
+
|
168
|
+
|
169
|
+
class QueryModel(BaseModel):
|
170
|
+
"""
|
171
|
+
Model to represent a query request
|
172
|
+
"""
|
173
|
+
|
174
|
+
text: Optional[str] = Field(default=None, description="The query text to be processed")
|
175
|
+
query_image: Optional[Image] = Field(
|
176
|
+
default=None,
|
177
|
+
description="Image to be considered as part of the query. Even if the `rephrase` parameter is set to `false`, the rephrasing process will occur, combining the provided text with the image's visual features in the rephrased query.",
|
178
|
+
)
|
179
|
+
rephrase: bool = Field(
|
180
|
+
default=False,
|
181
|
+
description="If true, the model will rephrase the input text before processing",
|
182
|
+
)
|
183
|
+
rephrase_prompt: Optional[str] = Field(
|
184
|
+
default=None,
|
185
|
+
description="Custom prompt for rephrasing the input text",
|
186
|
+
examples=[
|
187
|
+
"""Rephrase this question so its better for retrieval, and keep the rephrased question in the same language as the original.
|
188
|
+
QUESTION: {question}
|
189
|
+
Please return ONLY the question without any explanation. Just the rephrased question.""",
|
190
|
+
"""Rephrase this question so its better for retrieval, if in the image there are any machinery components with numeric identifiers, append them to the end of the question separated by a commas.
|
191
|
+
QUESTION: {question}
|
192
|
+
Please return ONLY the question without any explanation.""",
|
193
|
+
],
|
194
|
+
)
|
195
|
+
generative_model: Optional[str] = Field(
|
196
|
+
default=None,
|
197
|
+
description="The generative model to use for rephrasing",
|
198
|
+
)
|
199
|
+
semantic_models: Optional[list[str]] = Field(
|
200
|
+
default=None,
|
201
|
+
description="Semantic models to compute the sentence vector for, if not provided, it will only compute the sentence vector for default semantic model in the Knowledge box's configuration.",
|
202
|
+
)
|
203
|
+
agentic_entities: bool = Field(
|
204
|
+
default=False,
|
205
|
+
description="If true, the model will return the entities detected in the sentence guided by an already defined Graph Extraction Agent in the Knowledge Box.",
|
206
|
+
)
|
@@ -595,6 +595,7 @@ async def ask(
|
|
595
595
|
image_strategies=ask_request.rag_images_strategies,
|
596
596
|
max_context_characters=tokens_to_chars(generation.max_context_tokens),
|
597
597
|
visual_llm=generation.use_visual_llm,
|
598
|
+
query_image=ask_request.query_image,
|
598
599
|
metrics=metrics.child_span("context_building"),
|
599
600
|
)
|
600
601
|
(
|
@@ -1042,6 +1042,7 @@ class PromptContextBuilder:
|
|
1042
1042
|
image_strategies: Optional[Sequence[ImageRagStrategy]] = None,
|
1043
1043
|
max_context_characters: Optional[int] = None,
|
1044
1044
|
visual_llm: bool = False,
|
1045
|
+
query_image: Optional[Image] = None,
|
1045
1046
|
metrics: Metrics = Metrics("prompt_context_builder"),
|
1046
1047
|
):
|
1047
1048
|
self.kbid = kbid
|
@@ -1054,6 +1055,7 @@ class PromptContextBuilder:
|
|
1054
1055
|
self.max_context_characters = max_context_characters
|
1055
1056
|
self.visual_llm = visual_llm
|
1056
1057
|
self.metrics = metrics
|
1058
|
+
self.query_image = query_image
|
1057
1059
|
self.augmented_context = AugmentedContext(paragraphs={}, fields={})
|
1058
1060
|
|
1059
1061
|
def prepend_user_context(self, context: CappedPromptContext):
|
@@ -1061,8 +1063,12 @@ class PromptContextBuilder:
|
|
1061
1063
|
# it is added first, followed by the found text blocks in order of relevance
|
1062
1064
|
for i, text_block in enumerate(self.user_context or []):
|
1063
1065
|
context[f"USER_CONTEXT_{i}"] = text_block
|
1064
|
-
|
1065
|
-
|
1066
|
+
# Add the query image as part of the image context
|
1067
|
+
if self.query_image is not None:
|
1068
|
+
context.images["QUERY_IMAGE"] = self.query_image
|
1069
|
+
else:
|
1070
|
+
for i, image in enumerate(self.user_image_context or []):
|
1071
|
+
context.images[f"USER_IMAGE_CONTEXT_{i}"] = image
|
1066
1072
|
|
1067
1073
|
async def build(
|
1068
1074
|
self,
|
@@ -1070,7 +1076,7 @@ class PromptContextBuilder:
|
|
1070
1076
|
ccontext = CappedPromptContext(max_size=self.max_context_characters)
|
1071
1077
|
self.prepend_user_context(ccontext)
|
1072
1078
|
await self._build_context(ccontext)
|
1073
|
-
if self.visual_llm:
|
1079
|
+
if self.visual_llm and not self.query_image:
|
1074
1080
|
await self._build_context_images(ccontext)
|
1075
1081
|
context = ccontext.cap()
|
1076
1082
|
context_images = ccontext.images
|
@@ -206,6 +206,7 @@ def find_request_from_ask_request(item: AskRequest, query: str) -> FindRequest:
|
|
206
206
|
find_request.debug = item.debug
|
207
207
|
find_request.rephrase = item.rephrase
|
208
208
|
find_request.rephrase_prompt = parse_rephrase_prompt(item)
|
209
|
+
find_request.query_image = item.query_image
|
209
210
|
find_request.rank_fusion = item.rank_fusion
|
210
211
|
find_request.reranker = item.reranker
|
211
212
|
# We don't support pagination, we always get the top_k results.
|
nucliadb/search/search/query.py
CHANGED
@@ -85,6 +85,7 @@ async def paragraph_query_to_pb(
|
|
85
85
|
rephrase=False,
|
86
86
|
rephrase_prompt=None,
|
87
87
|
generative_model=None,
|
88
|
+
query_image=None,
|
88
89
|
)
|
89
90
|
field_expr, paragraph_expr = await parse_old_filters(old, fetcher)
|
90
91
|
if field_expr is not None:
|
@@ -225,6 +226,7 @@ async def suggest_query_to_pb(
|
|
225
226
|
rephrase=False,
|
226
227
|
rephrase_prompt=None,
|
227
228
|
generative_model=None,
|
229
|
+
query_image=None,
|
228
230
|
)
|
229
231
|
field_expr, _ = await parse_old_filters(old, fetcher)
|
230
232
|
if field_expr is not None and filter_expression is not None:
|
@@ -28,12 +28,14 @@ from nucliadb.common.exceptions import InvalidQueryError
|
|
28
28
|
from nucliadb.common.maindb.utils import get_driver
|
29
29
|
from nucliadb.search import logger
|
30
30
|
from nucliadb.search.predict import SendToPredictError, convert_relations
|
31
|
+
from nucliadb.search.predict_models import QueryModel
|
31
32
|
from nucliadb.search.search.metrics import (
|
32
33
|
query_parse_dependency_observer,
|
33
34
|
)
|
34
35
|
from nucliadb.search.utilities import get_predict
|
35
36
|
from nucliadb_models.internal.predict import QueryInfo
|
36
37
|
from nucliadb_models.search import (
|
38
|
+
Image,
|
37
39
|
MaxTokens,
|
38
40
|
)
|
39
41
|
from nucliadb_protos import knowledgebox_pb2, utils_pb2
|
@@ -93,6 +95,7 @@ class Fetcher:
|
|
93
95
|
rephrase: bool,
|
94
96
|
rephrase_prompt: Optional[str],
|
95
97
|
generative_model: Optional[str],
|
98
|
+
query_image: Optional[Image],
|
96
99
|
):
|
97
100
|
self.kbid = kbid
|
98
101
|
self.query = query
|
@@ -102,6 +105,7 @@ class Fetcher:
|
|
102
105
|
self.rephrase = rephrase
|
103
106
|
self.rephrase_prompt = rephrase_prompt
|
104
107
|
self.generative_model = generative_model
|
108
|
+
self.query_image = query_image
|
105
109
|
|
106
110
|
self.cache = FetcherCache()
|
107
111
|
self.locks: dict[str, asyncio.Lock] = {}
|
@@ -327,6 +331,7 @@ class Fetcher:
|
|
327
331
|
self.generative_model,
|
328
332
|
self.rephrase,
|
329
333
|
self.rephrase_prompt,
|
334
|
+
self.query_image,
|
330
335
|
)
|
331
336
|
except (SendToPredictError, TimeoutError):
|
332
337
|
query_info = None
|
@@ -360,9 +365,18 @@ async def query_information(
|
|
360
365
|
generative_model: Optional[str] = None,
|
361
366
|
rephrase: bool = False,
|
362
367
|
rephrase_prompt: Optional[str] = None,
|
368
|
+
query_image: Optional[Image] = None,
|
363
369
|
) -> QueryInfo:
|
364
370
|
predict = get_predict()
|
365
|
-
|
371
|
+
item = QueryModel(
|
372
|
+
text=query,
|
373
|
+
semantic_models=[semantic_model] if semantic_model else None,
|
374
|
+
generative_model=generative_model,
|
375
|
+
rephrase=rephrase,
|
376
|
+
rephrase_prompt=rephrase_prompt,
|
377
|
+
query_image=query_image,
|
378
|
+
)
|
379
|
+
return await predict.query(kbid, item)
|
366
380
|
|
367
381
|
|
368
382
|
@query_parse_dependency_observer.wrap({"type": "detect_entities"})
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nucliadb
|
3
|
-
Version: 6.7.0.
|
3
|
+
Version: 6.7.0.post4786
|
4
4
|
Summary: NucliaDB
|
5
5
|
Author-email: Nuclia <nucliadb@nuclia.com>
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
@@ -19,11 +19,11 @@ Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
20
20
|
Requires-Python: <4,>=3.9
|
21
21
|
Description-Content-Type: text/markdown
|
22
|
-
Requires-Dist: nucliadb-telemetry[all]>=6.7.0.
|
23
|
-
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.7.0.
|
24
|
-
Requires-Dist: nucliadb-protos>=6.7.0.
|
25
|
-
Requires-Dist: nucliadb-models>=6.7.0.
|
26
|
-
Requires-Dist: nidx-protos>=6.7.0.
|
22
|
+
Requires-Dist: nucliadb-telemetry[all]>=6.7.0.post4786
|
23
|
+
Requires-Dist: nucliadb-utils[cache,fastapi,storages]>=6.7.0.post4786
|
24
|
+
Requires-Dist: nucliadb-protos>=6.7.0.post4786
|
25
|
+
Requires-Dist: nucliadb-models>=6.7.0.post4786
|
26
|
+
Requires-Dist: nidx-protos>=6.7.0.post4786
|
27
27
|
Requires-Dist: nucliadb-admin-assets>=1.0.0.post1224
|
28
28
|
Requires-Dist: nuclia-models>=0.46.0
|
29
29
|
Requires-Dist: uvicorn[standard]
|
@@ -213,8 +213,8 @@ nucliadb/search/__init__.py,sha256=tnypbqcH4nBHbGpkINudhKgdLKpwXQCvDtPchUlsyY4,1
|
|
213
213
|
nucliadb/search/app.py,sha256=-WEX1AZRA8R_9aeOo9ovOTwjXW_7VfwWN7N2ccSoqXg,3387
|
214
214
|
nucliadb/search/lifecycle.py,sha256=hiylV-lxsAWkqTCulXBg0EIfMQdejSr8Zar0L_GLFT8,2218
|
215
215
|
nucliadb/search/openapi.py,sha256=t3Wo_4baTrfPftg2BHsyLWNZ1MYn7ZRdW7ht-wFOgRs,1016
|
216
|
-
nucliadb/search/predict.py,sha256=
|
217
|
-
nucliadb/search/predict_models.py,sha256=
|
216
|
+
nucliadb/search/predict.py,sha256=HK8E2N0Uru9FdVsNs8mbhKocN0m5kj32x4NtT0NZLRc,23111
|
217
|
+
nucliadb/search/predict_models.py,sha256=ozuQZGWAK7v8W6UOk3xXQ_zW7YUNtRy_4l5LE5BuT_A,8172
|
218
218
|
nucliadb/search/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
219
219
|
nucliadb/search/run.py,sha256=aFb-CXRi_C8YMpP_ivNj8KW1BYhADj88y8K9Lr_nUPI,1402
|
220
220
|
nucliadb/search/settings.py,sha256=vem3EcyYlTPSim0kEK-xe-erF4BZg0CT_LAb8ZRQAE8,1684
|
@@ -257,30 +257,30 @@ nucliadb/search/search/metrics.py,sha256=3I6IN0qDSmqIvUaWJmT3rt-Jyjs6LcvnKI8ZqCi
|
|
257
257
|
nucliadb/search/search/paragraphs.py,sha256=pNAEiYqJGGUVcEf7xf-PFMVqz0PX4Qb-WNG-_zPGN2o,7799
|
258
258
|
nucliadb/search/search/pgcatalog.py,sha256=0n_gDihZZhqrDLRHvHzS3IESvMRTcU6YShqizQMyE_Y,16807
|
259
259
|
nucliadb/search/search/predict_proxy.py,sha256=Df8F5K-oS4TIXJc_y8UDViJTo7st5L0kMgxYPFZ39Vk,8806
|
260
|
-
nucliadb/search/search/query.py,sha256=
|
260
|
+
nucliadb/search/search/query.py,sha256=lYCesbUv-B7IyVFQoCCurcxl_Azc5nq3jtVQJ9tk1Ao,11552
|
261
261
|
nucliadb/search/search/rank_fusion.py,sha256=xZtXhbmKb_56gs73u6KkFm2efvTATOSMmpOV2wrAIqE,9613
|
262
262
|
nucliadb/search/search/rerankers.py,sha256=E2J1QdKAojqbhHM3KAyaOXKf6tJyETUxKs4tf_BEyqk,7472
|
263
263
|
nucliadb/search/search/shards.py,sha256=mc5DK-MoCv9AFhlXlOFHbPvetcyNDzTFOJ5rimK8PC8,2636
|
264
264
|
nucliadb/search/search/summarize.py,sha256=S4-mUS8d-rvHFcsr8Pa8N5NTxU6ZTxLFZTMKTTOOpr4,5098
|
265
265
|
nucliadb/search/search/utils.py,sha256=ajRIXfdTF67dBVahQCXW-rSv6gJpUMPt3QhJrWqArTQ,2175
|
266
266
|
nucliadb/search/search/chat/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
267
|
-
nucliadb/search/search/chat/ask.py,sha256=
|
267
|
+
nucliadb/search/search/chat/ask.py,sha256=c8gvGkspW5KUbDhVzcUfd7eF7SMfqzwKfCPidJniRLI,39417
|
268
268
|
nucliadb/search/search/chat/exceptions.py,sha256=Siy4GXW2L7oPhIR86H3WHBhE9lkV4A4YaAszuGGUf54,1356
|
269
269
|
nucliadb/search/search/chat/images.py,sha256=PA8VWxT5_HUGfW1ULhKTK46UBsVyINtWWqEM1ulzX1E,3095
|
270
|
-
nucliadb/search/search/chat/prompt.py,sha256=
|
271
|
-
nucliadb/search/search/chat/query.py,sha256=
|
270
|
+
nucliadb/search/search/chat/prompt.py,sha256=G8Z-8amdx7527-I17U4j80Tv8j9XGt2soYn3txsAWAE,54158
|
271
|
+
nucliadb/search/search/chat/query.py,sha256=AhOPMf68p2BRjKz7CdkcUIDMANtxr00oGt42iKUUjAw,16698
|
272
272
|
nucliadb/search/search/query_parser/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
273
273
|
nucliadb/search/search/query_parser/exceptions.py,sha256=sVl9gRNzhE-s480LBBVkiXzNRbKhYRQN5F3it5tNNp8,939
|
274
|
-
nucliadb/search/search/query_parser/fetcher.py,sha256=
|
274
|
+
nucliadb/search/search/query_parser/fetcher.py,sha256=dB_nQHbhdlAmztWqtuQ6Xx8UV1kozzGnpocrWwzW-X0,17253
|
275
275
|
nucliadb/search/search/query_parser/models.py,sha256=kAslqX_-zaIdUpcpdNU2a5uQPQh7LC605qWLZ4aZ5T4,5064
|
276
276
|
nucliadb/search/search/query_parser/old_filters.py,sha256=GsU3T3-WiSPvjucP7evHkshzAWZOli8qsuXChvWRCY0,9092
|
277
277
|
nucliadb/search/search/query_parser/parsers/__init__.py,sha256=ySCNSdbesLXGZyR88919njulA6UE10_3PhqMG_Yj1o4,1034
|
278
|
-
nucliadb/search/search/query_parser/parsers/ask.py,sha256=
|
278
|
+
nucliadb/search/search/query_parser/parsers/ask.py,sha256=mc4Rx7jLM101tRZYOxEQC-txO5C-fDJid_oMAtZTRug,2809
|
279
279
|
nucliadb/search/search/query_parser/parsers/catalog.py,sha256=JuDiBL2wdjAuEFEPo0e2nQ4VqWjF3FXakT0ziZk3Oes,7495
|
280
280
|
nucliadb/search/search/query_parser/parsers/common.py,sha256=mJMPOKurBK7-A7s3oNlPLxHP_yIn4j5Uw8rh_OQtzS4,6339
|
281
|
-
nucliadb/search/search/query_parser/parsers/find.py,sha256=
|
281
|
+
nucliadb/search/search/query_parser/parsers/find.py,sha256=4xQwa0BxNucenUrW_iZ2jCGd15Dm4AKS_B91BE8sDi4,12773
|
282
282
|
nucliadb/search/search/query_parser/parsers/graph.py,sha256=zyqdUg5Afmhb2_-hvj9FUCaoLh026MUP1fgY2j-lD7c,9385
|
283
|
-
nucliadb/search/search/query_parser/parsers/search.py,sha256=
|
283
|
+
nucliadb/search/search/query_parser/parsers/search.py,sha256=78KSJ9t3I7nFVY2Qk2fMw2P1RHUdGRsWzBf59FdAeTA,10503
|
284
284
|
nucliadb/search/search/query_parser/parsers/unit_retrieval.py,sha256=xiOQ7_X6MkcZs3W_0DjdVfyk-G1AY6RBx3oG5hsq7ig,11455
|
285
285
|
nucliadb/standalone/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
|
286
286
|
nucliadb/standalone/api_router.py,sha256=zRSMlaRVHUDGTYA3zC03UV_aLLn-ch-kaeWn1tEjTXw,4338
|
@@ -376,8 +376,8 @@ nucliadb/writer/tus/local.py,sha256=7jYa_w9b-N90jWgN2sQKkNcomqn6JMVBOVeDOVYJHto,
|
|
376
376
|
nucliadb/writer/tus/s3.py,sha256=vu1BGg4VqJ_x2P1u2BxqPKlSfw5orT_a3R-Ln5oPUpU,8483
|
377
377
|
nucliadb/writer/tus/storage.py,sha256=ToqwjoYnjI4oIcwzkhha_MPxi-k4Jk3Lt55zRwaC1SM,2903
|
378
378
|
nucliadb/writer/tus/utils.py,sha256=MSdVbRsRSZVdkaum69_0wku7X3p5wlZf4nr6E0GMKbw,2556
|
379
|
-
nucliadb-6.7.0.
|
380
|
-
nucliadb-6.7.0.
|
381
|
-
nucliadb-6.7.0.
|
382
|
-
nucliadb-6.7.0.
|
383
|
-
nucliadb-6.7.0.
|
379
|
+
nucliadb-6.7.0.post4786.dist-info/METADATA,sha256=oU2Nm_poSfw_SxLfe0UStdqGzHQHe1Qul2NfXVtUfbs,4158
|
380
|
+
nucliadb-6.7.0.post4786.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
381
|
+
nucliadb-6.7.0.post4786.dist-info/entry_points.txt,sha256=XqGfgFDuY3zXQc8ewXM2TRVjTModIq851zOsgrmaXx4,1268
|
382
|
+
nucliadb-6.7.0.post4786.dist-info/top_level.txt,sha256=hwYhTVnX7jkQ9gJCkVrbqEG1M4lT2F_iPQND1fCzF80,20
|
383
|
+
nucliadb-6.7.0.post4786.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|