nucliadb-utils 6.3.7.post4091__py3-none-any.whl → 6.3.7.post4116__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.
@@ -28,6 +28,7 @@ import backoff
28
28
  import mmh3
29
29
  import nats
30
30
  from fastapi import Request
31
+ from google.protobuf.json_format import MessageToDict
31
32
  from google.protobuf.timestamp_pb2 import Timestamp
32
33
  from opentelemetry.trace import format_trace_id, get_current_span
33
34
  from starlette.background import BackgroundTask
@@ -35,7 +36,14 @@ from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoin
35
36
  from starlette.responses import Response
36
37
  from starlette.types import ASGIApp
37
38
 
38
- from nucliadb_protos.audit_pb2 import AuditField, AuditRequest, ChatContext, ClientType, RetrievedContext
39
+ from nucliadb_protos.audit_pb2 import (
40
+ AuditField,
41
+ AuditRequest,
42
+ AuditSearchRequest,
43
+ ChatContext,
44
+ ClientType,
45
+ RetrievedContext,
46
+ )
39
47
  from nucliadb_protos.kb_usage_pb2 import (
40
48
  ActivityLogMatch,
41
49
  ActivityLogMatchType,
@@ -77,6 +85,23 @@ def get_request_context() -> Optional[RequestContext]:
77
85
  return request_context_var.get()
78
86
 
79
87
 
88
+ def fill_audit_search_request(audit: AuditSearchRequest, request: SearchRequest):
89
+ audit.body = request.body
90
+ audit.min_score_bm25 = request.min_score_bm25
91
+ audit.min_score_semantic = request.min_score_semantic
92
+ audit.result_per_page = request.result_per_page
93
+ audit.security.CopyFrom(request.security)
94
+ audit.vector.extend(request.vector)
95
+ audit.vectorset = request.vectorset
96
+ audit.filter = json.dumps(
97
+ {
98
+ "field": MessageToDict(request.field_filter),
99
+ "paragraph": MessageToDict(request.paragraph_filter),
100
+ "operator": request.filter_operator,
101
+ }
102
+ )
103
+
104
+
80
105
  class AuditMiddleware(BaseHTTPMiddleware):
81
106
  def __init__(self, app: ASGIApp, audit_utility_getter: Callable[[], Optional[AuditStorage]]) -> None:
82
107
  self.audit_utility_getter = audit_utility_getter
@@ -355,15 +380,17 @@ class StreamAuditStorage(AuditStorage):
355
380
  auditrequest.client_type = client_type # type: ignore
356
381
  auditrequest.userid = user
357
382
  auditrequest.kbid = kbid
358
- auditrequest.search.CopyFrom(search)
359
383
  auditrequest.retrieval_time = timeit
360
384
  auditrequest.resources = resources
361
385
  if "/ask" in context.path:
362
386
  auditrequest.type = AuditRequest.CHAT
363
387
  else:
364
388
  auditrequest.type = AuditRequest.SEARCH
389
+
390
+ fill_audit_search_request(auditrequest.search, search)
365
391
  if retrieval_rephrased_question is not None:
366
392
  auditrequest.retrieval_rephrased_question = retrieval_rephrased_question
393
+
367
394
  trace_id = get_trace_id()
368
395
  self.kb_usage_utility.send_kb_usage(
369
396
  service=Service.NUCLIA_DB,
@@ -419,8 +446,10 @@ class StreamAuditStorage(AuditStorage):
419
446
  auditrequest.generative_answer_time = generative_answer_time
420
447
  if generative_answer_first_chunk_time is not None:
421
448
  auditrequest.generative_answer_first_chunk_time = generative_answer_first_chunk_time
449
+
422
450
  if retrieval_rephrased_question is not None:
423
451
  auditrequest.retrieval_rephrased_question = retrieval_rephrased_question
452
+
424
453
  auditrequest.type = AuditRequest.CHAT
425
454
  auditrequest.chat.question = question
426
455
  auditrequest.chat.chat_context.extend(chat_context)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nucliadb_utils
3
- Version: 6.3.7.post4091
3
+ Version: 6.3.7.post4116
4
4
  Summary: NucliaDB util library
5
5
  Author-email: Nuclia <nucliadb@nuclia.com>
6
6
  License: AGPL
@@ -27,8 +27,8 @@ Requires-Dist: nats-py[nkeys]>=2.6.0
27
27
  Requires-Dist: PyNaCl
28
28
  Requires-Dist: pyjwt>=2.4.0
29
29
  Requires-Dist: mrflagly>=0.2.9
30
- Requires-Dist: nucliadb-protos>=6.3.7.post4091
31
- Requires-Dist: nucliadb-telemetry>=6.3.7.post4091
30
+ Requires-Dist: nucliadb-protos>=6.3.7.post4116
31
+ Requires-Dist: nucliadb-telemetry>=6.3.7.post4116
32
32
  Provides-Extra: cache
33
33
  Requires-Dist: redis>=4.3.4; extra == "cache"
34
34
  Requires-Dist: orjson>=3.6.7; extra == "cache"
@@ -23,7 +23,7 @@ nucliadb_utils/aiopynecone/models.py,sha256=XkNIZx4bxdbVo9zYVn8IRp70q4DWUMWN79yb
23
23
  nucliadb_utils/audit/__init__.py,sha256=cp15ZcFnHvpcu_5-aK2A4uUyvuZVV_MJn4bIXMa20ks,835
24
24
  nucliadb_utils/audit/audit.py,sha256=m5Mkm4m1W4O91t8jsVQocy57hqYSjboCyFw8P1-g-7A,3497
25
25
  nucliadb_utils/audit/basic.py,sha256=trH4IgLnb-VRj2vrRL2686HL7z9Zcdb6bZ7I47Usrt8,4145
26
- nucliadb_utils/audit/stream.py,sha256=b1W_5XK_8uc9tO1zcEp_sYAm5pG7-ODYbX8zqzMHXUk,16423
26
+ nucliadb_utils/audit/stream.py,sha256=2XDnySbA5fGL3ZV61kCvUXdMDKMpZ5XVZy7sdxMDRdQ,17178
27
27
  nucliadb_utils/cache/__init__.py,sha256=itSI7dtTwFP55YMX4iK7JzdMHS5CQVUiB1XzQu4UBh8,833
28
28
  nucliadb_utils/cache/exceptions.py,sha256=Zu-O_-0-yctOEgoDGI92gPzWfBMRrpiAyESA62ld6MA,975
29
29
  nucliadb_utils/cache/nats.py,sha256=-AjCfkFgKVdJUlGR0hT9JDSNkPVFg4S6w9eW-ZIcXPM,7037
@@ -57,7 +57,7 @@ nucliadb_utils/tests/gcs.py,sha256=MBMzn_UHU5SU6iILuCsB5zU4umhNcaCw_MKrxZhwvOc,4
57
57
  nucliadb_utils/tests/local.py,sha256=cxIfPrKuqs5Ef0nbrVYQQAH2mwc4E0iD9bC2sWegS-c,1934
58
58
  nucliadb_utils/tests/nats.py,sha256=RWHjwqq5esuO7OFbP24yYX1cXnpPLcWJwDUdmwCpH28,1897
59
59
  nucliadb_utils/tests/s3.py,sha256=DACUh3HvgH3BchKFZ9R7RFUzsrg3v9A-cxTcXx4nmvA,3734
60
- nucliadb_utils-6.3.7.post4091.dist-info/METADATA,sha256=zFHfSPAzWNMy_73pQQfudB_C_fWrDhOboRqCxfIAuTA,2205
61
- nucliadb_utils-6.3.7.post4091.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
62
- nucliadb_utils-6.3.7.post4091.dist-info/top_level.txt,sha256=fE3vJtALTfgh7bcAWcNhcfXkNPp_eVVpbKK-2IYua3E,15
63
- nucliadb_utils-6.3.7.post4091.dist-info/RECORD,,
60
+ nucliadb_utils-6.3.7.post4116.dist-info/METADATA,sha256=3Pzr6ZXD0BiZGQfmVk4OTH2c_iw8OU2NN2Towywtyco,2205
61
+ nucliadb_utils-6.3.7.post4116.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
62
+ nucliadb_utils-6.3.7.post4116.dist-info/top_level.txt,sha256=fE3vJtALTfgh7bcAWcNhcfXkNPp_eVVpbKK-2IYua3E,15
63
+ nucliadb_utils-6.3.7.post4116.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5