projectdavid 1.33.1__tar.gz → 1.33.3__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.

Potentially problematic release.


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

Files changed (69) hide show
  1. {projectdavid-1.33.1 → projectdavid-1.33.3}/CHANGELOG.md +14 -0
  2. {projectdavid-1.33.1/src/projectdavid.egg-info → projectdavid-1.33.3}/PKG-INFO +1 -1
  3. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/vector_store.md +8 -0
  4. {projectdavid-1.33.1 → projectdavid-1.33.3}/pyproject.toml +1 -1
  5. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/vectors.py +19 -2
  6. projectdavid-1.33.3/src/projectdavid/decorators.py +64 -0
  7. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/entity.py +7 -1
  8. {projectdavid-1.33.1 → projectdavid-1.33.3/src/projectdavid.egg-info}/PKG-INFO +1 -1
  9. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid.egg-info/SOURCES.txt +1 -0
  10. {projectdavid-1.33.1 → projectdavid-1.33.3}/LICENSE +0 -0
  11. {projectdavid-1.33.1 → projectdavid-1.33.3}/MANIFEST.in +0 -0
  12. {projectdavid-1.33.1 → projectdavid-1.33.3}/README.md +0 -0
  13. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/assistants.md +0 -0
  14. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/code_interpretation.md +0 -0
  15. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/database.md +0 -0
  16. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/database_assistant_example.md +0 -0
  17. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/docker_comtainers.md +0 -0
  18. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/file_search.md +0 -0
  19. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/files.md +0 -0
  20. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/function_call_definition.md +0 -0
  21. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/function_calls.md +0 -0
  22. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/handling_function_calls.md +0 -0
  23. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/inference.md +0 -0
  24. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/messages.md +0 -0
  25. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/runs.md +0 -0
  26. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/streams.md +0 -0
  27. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/threads.md +0 -0
  28. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/tools.md +0 -0
  29. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/users.md +0 -0
  30. {projectdavid-1.33.1 → projectdavid-1.33.3}/docs/versioning.md +0 -0
  31. {projectdavid-1.33.1 → projectdavid-1.33.3}/setup.cfg +0 -0
  32. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/__init__.py +0 -0
  33. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/_version.py +0 -0
  34. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/actions_client.py +0 -0
  35. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/api_key_client.py +0 -0
  36. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/assistants_client.py +0 -0
  37. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/base_client.py +0 -0
  38. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/base_vector_store.py +0 -0
  39. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/event_handler.py +0 -0
  40. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/file_processor.py +0 -0
  41. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/file_search.py +0 -0
  42. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/files_client.py +0 -0
  43. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/inference_client.py +0 -0
  44. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/messages_client.py +0 -0
  45. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/runs.py +0 -0
  46. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/synchronous_inference_wrapper.py +0 -0
  47. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/threads_client.py +0 -0
  48. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/tools_client.py +0 -0
  49. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/users_client.py +0 -0
  50. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/clients/vector_store_manager.py +0 -0
  51. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/constants/platform.py +0 -0
  52. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/events.py +0 -0
  53. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/serializers.py +0 -0
  54. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/services/logging_service.py +0 -0
  55. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/synthesis/__init__.py +0 -0
  56. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/synthesis/llm_synthesizer.py +0 -0
  57. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/synthesis/prompt.py +0 -0
  58. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/synthesis/reranker.py +0 -0
  59. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/synthesis/retriever.py +0 -0
  60. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/__init__.py +0 -0
  61. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/function_call_suppressor.py +0 -0
  62. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/monitor_launcher.py +0 -0
  63. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/peek_gate.py +0 -0
  64. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/run_monitor.py +0 -0
  65. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid/utils/vector_search_formatter.py +0 -0
  66. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid.egg-info/dependency_links.txt +0 -0
  67. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid.egg-info/requires.txt +0 -0
  68. {projectdavid-1.33.1 → projectdavid-1.33.3}/src/projectdavid.egg-info/top_level.txt +0 -0
  69. {projectdavid-1.33.1 → projectdavid-1.33.3}/tests/test_clients.py +0 -0
@@ -1,3 +1,17 @@
1
+ ## [1.33.3](https://github.com/frankie336/projectdavid/compare/v1.33.2...v1.33.3) (2025-06-11)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Place vision features in dormant experimental mode with [@experimental](https://github.com/experimental) decorators.py ([1c41702](https://github.com/frankie336/projectdavid/commit/1c41702a55ec9c6c7ad89de559cfa309ace88174))
7
+
8
+ ## [1.33.2](https://github.com/frankie336/projectdavid/compare/v1.33.1...v1.33.2) (2025-06-11)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * pass file_processor_kwargs from public interface and add default fallbacks. ([597b274](https://github.com/frankie336/projectdavid/commit/597b274e0f54fc87ac5449ac8259c8ad244b0214))
14
+
1
15
  ## [1.33.1](https://github.com/frankie336/projectdavid/compare/v1.33.0...v1.33.1) (2025-06-10)
2
16
 
3
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid
3
- Version: 1.33.1
3
+ Version: 1.33.3
4
4
  Summary: Python SDK for interacting with the Entities Assistant API.
5
5
  Author-email: Francis Neequaye Armah <francis.neequaye@projectdavid.co.uk>
6
6
  License: PolyForm Noncommercial License 1.0.0
@@ -78,6 +78,14 @@ save_file_to_store = client.vectors.add_file_to_vector_store(
78
78
 
79
79
  At this point, your file has been vectorized to your store.
80
80
 
81
+
82
+ ---
83
+
84
+
85
+ ## Supporting image vectors
86
+
87
+ Entities now ingests and vectorizes a wide range of image formats for semantic search. You can leverage these image embeddings to extend text-only models into powerful multi-modal workflows; enriching chatbots, document search, recommendation engines, and more.
88
+
81
89
  ---
82
90
 
83
91
  ### Making Searches Against Files in a Store
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid"
7
- version = "1.33.1"
7
+ version = "1.33.3"
8
8
  description = "Python SDK for interacting with the Entities Assistant API."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -20,6 +20,7 @@ from qdrant_client.http import models as qdrant
20
20
 
21
21
  from projectdavid.clients.file_processor import FileProcessor
22
22
  from projectdavid.clients.vector_store_manager import VectorStoreManager
23
+ from projectdavid.decorators import experimental
23
24
  from projectdavid.synthesis import reranker, retriever
24
25
  from projectdavid.synthesis.llm_synthesizer import synthesize_envelope
25
26
  from projectdavid.utils.vector_search_formatter import make_envelope
@@ -72,8 +73,9 @@ class VectorStoreClient:
72
73
  api_key: Optional[str] = None,
73
74
  *,
74
75
  vector_store_host: str = "localhost",
75
- file_processor_kwargs: Optional[dict] = None, # 🔶 add arg
76
+ file_processor_kwargs: Optional[dict] = None,
76
77
  ):
78
+
77
79
  self.base_url = (base_url or os.getenv("BASE_URL", "")).rstrip("/")
78
80
  self.api_key = api_key or os.getenv("API_KEY")
79
81
  if not self.base_url:
@@ -94,7 +96,18 @@ class VectorStoreClient:
94
96
  self.identifier_service = UtilsInterface.IdentifierService()
95
97
 
96
98
  # 🔶 forward kwargs into the upgraded FileProcessor
97
- self.file_processor = FileProcessor(**(file_processor_kwargs or {}))
99
+
100
+ self.file_processor = FileProcessor(
101
+ **(
102
+ file_processor_kwargs
103
+ or {
104
+ "use_gpu": False,
105
+ "use_detection": True,
106
+ "use_geo": True,
107
+ "use_ocr": True,
108
+ }
109
+ )
110
+ )
98
111
 
99
112
  log.info("VectorStoreClient → %s", self.base_url)
100
113
 
@@ -492,6 +505,7 @@ class VectorStoreClient:
492
505
  )
493
506
  )
494
507
 
508
+ @experimental
495
509
  def create_vector_vision_store(
496
510
  self,
497
511
  name: str,
@@ -532,6 +546,7 @@ class VectorStoreClient:
532
546
  )
533
547
  )
534
548
 
549
+ @experimental
535
550
  def create_vector_vision_store_for_user(
536
551
  self,
537
552
  owner_id: str,
@@ -952,6 +967,7 @@ class VectorStoreClient:
952
967
 
953
968
  return hits
954
969
 
970
+ @experimental
955
971
  def image_similarity_search(
956
972
  self,
957
973
  vector_store_id: str,
@@ -969,6 +985,7 @@ class VectorStoreClient:
969
985
  vector_field="image_vector",
970
986
  )
971
987
 
988
+ @experimental
972
989
  def search_images(
973
990
  self,
974
991
  vector_store_id: str,
@@ -0,0 +1,64 @@
1
+ # decorators.py
2
+
3
+ import functools
4
+ import warnings
5
+ from typing import Optional
6
+
7
+
8
+ class ExperimentalWarning(UserWarning):
9
+ """
10
+ API is experimental, may be incomplete (and possibly not fully functional),
11
+ and may change or be removed without notice.
12
+ """
13
+
14
+
15
+ class InternalWarning(UserWarning):
16
+ """
17
+ API is internal/admin-only. Intended for framework authors and
18
+ superusers—will likely change or go away without notice.
19
+ """
20
+
21
+
22
+ def experimental(func):
23
+ """
24
+ Decorator to mark methods as experimental.
25
+ Emits an ExperimentalWarning on first call.
26
+ """
27
+
28
+ @functools.wraps(func)
29
+ def wrapper(*args, **kwargs):
30
+ warnings.warn(
31
+ f"{func.__name__} is experimental, may be incomplete, and may change in a future release",
32
+ ExperimentalWarning,
33
+ stacklevel=2,
34
+ )
35
+ return func(*args, **kwargs)
36
+
37
+ wrapper.__experimental__ = True
38
+ return wrapper
39
+
40
+
41
+ def internal(func):
42
+ """
43
+ Decorator to mark a method as internal/admin-only.
44
+ Raises PermissionError if self.is_admin is False or missing.
45
+ Emits an InternalWarning on use.
46
+ """
47
+
48
+ @functools.wraps(func)
49
+ def wrapper(self, *args, **kwargs):
50
+ # 1️⃣ Enforce admin
51
+ if not getattr(self, "is_admin", False):
52
+ raise PermissionError(
53
+ f"{func.__name__} is for admin use only; your client.is_admin is False."
54
+ )
55
+ # 2️⃣ Warn about internal usage
56
+ warnings.warn(
57
+ f"{func.__name__} is internal/admin-only and may change without notice",
58
+ InternalWarning,
59
+ stacklevel=2,
60
+ )
61
+ return func(self, *args, **kwargs)
62
+
63
+ wrapper.__internal__ = True
64
+ return wrapper
@@ -30,11 +30,15 @@ class Entity:
30
30
  self,
31
31
  base_url: Optional[str] = None,
32
32
  api_key: Optional[str] = None,
33
+ file_processor_kwargs: Optional[dict] = None,
33
34
  ):
34
35
  """
35
36
  Initialize the main client with configuration.
36
37
  Optionally, a configuration object can be injected to decouple from environment variables.
37
38
  """
39
+
40
+ self.file_processor_kwargs = file_processor_kwargs
41
+
38
42
  self.base_url = base_url or os.getenv(
39
43
  "ENTITIES_BASE_URL", "http://localhost:9000/"
40
44
  )
@@ -145,7 +149,9 @@ class Entity:
145
149
  def vectors(self) -> VectorStoreClient:
146
150
  if self._vectors_client is None:
147
151
  self._vectors_client = VectorStoreClient(
148
- base_url=self.base_url, api_key=self.api_key
152
+ base_url=self.base_url,
153
+ api_key=self.api_key,
154
+ file_processor_kwargs=self.file_processor_kwargs,
149
155
  )
150
156
 
151
157
  return self._vectors_client
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid
3
- Version: 1.33.1
3
+ Version: 1.33.3
4
4
  Summary: Python SDK for interacting with the Entities Assistant API.
5
5
  Author-email: Francis Neequaye Armah <francis.neequaye@projectdavid.co.uk>
6
6
  License: PolyForm Noncommercial License 1.0.0
@@ -24,6 +24,7 @@ docs/vector_store.md
24
24
  docs/versioning.md
25
25
  src/projectdavid/__init__.py
26
26
  src/projectdavid/_version.py
27
+ src/projectdavid/decorators.py
27
28
  src/projectdavid/entity.py
28
29
  src/projectdavid/events.py
29
30
  src/projectdavid/serializers.py
File without changes
File without changes
File without changes
File without changes