projectdavid 1.34.12__tar.gz → 1.35.0__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 (72) hide show
  1. {projectdavid-1.34.12 → projectdavid-1.35.0}/CHANGELOG.md +14 -0
  2. {projectdavid-1.34.12/src/projectdavid.egg-info → projectdavid-1.35.0}/PKG-INFO +2 -2
  3. {projectdavid-1.34.12 → projectdavid-1.35.0}/pyproject.toml +2 -2
  4. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/runs.py +38 -19
  5. {projectdavid-1.34.12 → projectdavid-1.35.0/src/projectdavid.egg-info}/PKG-INFO +2 -2
  6. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid.egg-info/requires.txt +1 -1
  7. {projectdavid-1.34.12 → projectdavid-1.35.0}/LICENSE +0 -0
  8. {projectdavid-1.34.12 → projectdavid-1.35.0}/MANIFEST.in +0 -0
  9. {projectdavid-1.34.12 → projectdavid-1.35.0}/README.md +0 -0
  10. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/UPDATE-V133.23.md +0 -0
  11. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/assistants.md +0 -0
  12. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/code_interpretation.md +0 -0
  13. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/database.md +0 -0
  14. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/database_assistant_example.md +0 -0
  15. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/docker_comtainers.md +0 -0
  16. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/file_search.md +0 -0
  17. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/files.md +0 -0
  18. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/function_call_definition.md +0 -0
  19. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/function_calls.md +0 -0
  20. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/handling_function_calls.md +0 -0
  21. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/inference.md +0 -0
  22. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/messages.md +0 -0
  23. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/runs.md +0 -0
  24. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/streams.md +0 -0
  25. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/threads.md +0 -0
  26. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/tools.md +0 -0
  27. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/users.md +0 -0
  28. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/vector_store.md +0 -0
  29. {projectdavid-1.34.12 → projectdavid-1.35.0}/docs/versioning.md +0 -0
  30. {projectdavid-1.34.12 → projectdavid-1.35.0}/setup.cfg +0 -0
  31. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/__init__.py +0 -0
  32. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/_version.py +0 -0
  33. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/actions_client.py +0 -0
  34. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/api_key_client.py +0 -0
  35. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/assistants_client.py +0 -0
  36. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/base_client.py +0 -0
  37. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/base_vector_store.py +0 -0
  38. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/event_handler.py +0 -0
  39. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/file_processor.py +0 -0
  40. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/file_search.py +0 -0
  41. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/files_client.py +0 -0
  42. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/inference_client.py +0 -0
  43. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/messages_client.py +0 -0
  44. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/synchronous_inference_wrapper.py +0 -0
  45. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/threads_client.py +0 -0
  46. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/tools_client.py +0 -0
  47. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/users_client.py +0 -0
  48. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/vector_store_manager.py +0 -0
  49. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/vectors.py +0 -0
  50. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/vision-file_processor.py +0 -0
  51. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/clients/vision_vectors.py +0 -0
  52. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/constants/platform.py +0 -0
  53. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/decorators.py +0 -0
  54. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/entity.py +0 -0
  55. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/events.py +0 -0
  56. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/serializers.py +0 -0
  57. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/services/logging_service.py +0 -0
  58. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/synthesis/__init__.py +0 -0
  59. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/synthesis/llm_synthesizer.py +0 -0
  60. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/synthesis/prompt.py +0 -0
  61. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/synthesis/reranker.py +0 -0
  62. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/synthesis/retriever.py +0 -0
  63. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/__init__.py +0 -0
  64. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/function_call_suppressor.py +0 -0
  65. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/monitor_launcher.py +0 -0
  66. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/peek_gate.py +0 -0
  67. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/run_monitor.py +0 -0
  68. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid/utils/vector_search_formatter.py +0 -0
  69. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid.egg-info/SOURCES.txt +0 -0
  70. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid.egg-info/dependency_links.txt +0 -0
  71. {projectdavid-1.34.12 → projectdavid-1.35.0}/src/projectdavid.egg-info/top_level.txt +0 -0
  72. {projectdavid-1.34.12 → projectdavid-1.35.0}/tests/test_clients.py +0 -0
@@ -1,3 +1,17 @@
1
+ # [1.35.0](https://github.com/frankie336/projectdavid/compare/v1.34.13...v1.35.0) (2025-10-13)
2
+
3
+
4
+ ### Features
5
+
6
+ * **deps:** bump projectdavid_common; align Runs schema + client ([23d525e](https://github.com/frankie336/projectdavid/commit/23d525e10a8dd3a4ee39fb3c0e7c0be42832e1a7))
7
+
8
+ ## [1.34.13](https://github.com/frankie336/projectdavid/compare/v1.34.12...v1.34.13) (2025-09-30)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * correct projectdavid_common==0.17.19 ([1a72e36](https://github.com/frankie336/projectdavid/commit/1a72e368ab0228f26c3dae08be0cc9a0b4edfcbe))
14
+
1
15
  ## [1.34.12](https://github.com/frankie336/projectdavid/compare/v1.34.11...v1.34.12) (2025-09-30)
2
16
 
3
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid
3
- Version: 1.34.12
3
+ Version: 1.35.0
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
@@ -20,7 +20,7 @@ Requires-Dist: pydantic<3.0,>=2.0
20
20
  Requires-Dist: python-dotenv<2.0,>=1.0.1
21
21
  Requires-Dist: aiofiles<25.0,>=23.2.1
22
22
  Requires-Dist: ollama<0.5.0,>=0.4.4
23
- Requires-Dist: projectdavid_common==0.17.19
23
+ Requires-Dist: projectdavid_common==0.18.0
24
24
  Requires-Dist: qdrant-client<2.0.0,>=1.0.0
25
25
  Requires-Dist: pdfplumber<0.12.0,>=0.11.0
26
26
  Requires-Dist: validators<0.35.0,>=0.29.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid"
7
- version = "1.34.12"
7
+ version = "1.35.0"
8
8
  description = "Python SDK for interacting with the Entities Assistant API."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -20,7 +20,7 @@ dependencies = [
20
20
  "python-dotenv>=1.0.1,<2.0",
21
21
  "aiofiles>=23.2.1,<25.0",
22
22
  "ollama>=0.4.4,<0.5.0",
23
- "projectdavid_common==0.17.19",
23
+ "projectdavid_common==0.18.0",
24
24
  "qdrant-client>=1.0.0,<2.0.0",
25
25
  "pdfplumber>=0.11.0,<0.12.0",
26
26
  "validators>=0.29.0,<0.35.0",
@@ -43,58 +43,77 @@ class RunsClient(BaseAPIClient):
43
43
  thread_id: str,
44
44
  instructions: str = "",
45
45
  meta_data: Optional[Dict[str, Any]] = None,
46
+ *,
47
+ # new optional knobs; keep backwards compatible
48
+ model: Optional[str] = None,
49
+ response_format: str = "text",
50
+ tool_choice: Optional[str] = None, # allow None in signature, fix below
51
+ temperature: float = 1.0,
52
+ top_p: float = 1.0,
53
+ # ↓ NEW: optional; only sent if provided
54
+ truncation_strategy: Optional[ent_validator.TruncationStrategy] = None,
46
55
  ) -> ent_validator.Run:
47
56
  """
48
57
  Create a run. The server injects user_id from the API key.
49
58
  We normalize all timestamp fields to epoch ints (or None).
50
59
  """
51
- # Build the Pydantic payload with epoch-normalized timestamps
60
+ # ── Coerce client-friendly Nones into schema-acceptable values ─────────
61
+ meta_data = meta_data or {} # schema expects Dict
62
+ tool_choice = tool_choice or "none" # schema expects str
63
+ model = model or "gpt-4" # defer to schema default or override at callsite
64
+
65
+ now = int(time.time())
66
+
52
67
  run_payload = ent_validator.RunCreate(
53
68
  id=UtilsInterface.IdentifierService.generate_run_id(),
54
- user_id=None,
69
+ user_id=None, # server fills this
55
70
  assistant_id=assistant_id,
56
71
  thread_id=thread_id,
57
72
  instructions=instructions,
58
73
  meta_data=meta_data,
59
74
  cancelled_at=None,
60
75
  completed_at=None,
61
- created_at=int(time.time()),
62
- expires_at=int(time.time() + 3600),
76
+ created_at=now,
77
+ expires_at=now + 3600,
63
78
  failed_at=None,
64
79
  incomplete_details=None,
65
80
  last_error=None,
66
81
  max_completion_tokens=1000,
67
82
  max_prompt_tokens=500,
68
- model="llama3.1",
83
+ model=model, # ← no more hard-coded llama3.1
69
84
  object="run",
70
85
  parallel_tool_calls=False,
71
86
  required_action=None,
72
- response_format="text",
87
+ response_format=response_format,
73
88
  started_at=None,
74
- status=StatusEnum.queued,
75
- tool_choice=None,
89
+ status=ent_validator.RunStatus.pending,
90
+ # use schema enum; queued is also valid if you prefer
91
+ tool_choice=tool_choice,
76
92
  tools=[],
77
- truncation_strategy=TruncationStrategy.auto,
93
+ # NOTE: do NOT set truncation_strategy here; only if provided below
78
94
  usage=None,
79
- temperature=1,
80
- top_p=1,
95
+ temperature=temperature,
96
+ top_p=top_p,
81
97
  tool_resources={},
82
98
  )
83
99
 
100
+ # If caller explicitly provided truncation_strategy, set it; else omit so DB default fires
101
+ if truncation_strategy is not None:
102
+ run_payload.truncation_strategy = truncation_strategy
103
+
84
104
  logging_utility.info(
85
- "Creating run for assistant_id=%s, thread_id=%s",
86
- assistant_id,
87
- thread_id,
105
+ "Creating run for assistant_id=%s, thread_id=%s", assistant_id, thread_id
88
106
  )
89
107
  logging_utility.debug("Run payload: %s", run_payload.model_dump())
90
108
 
91
109
  try:
92
- # Exclude None so we don't send unset fields
93
- resp = self.client.post(
94
- "/v1/runs", json=run_payload.model_dump(exclude_none=True)
95
- )
96
- resp.raise_for_status()
110
+ # Build dict; if truncation_strategy wasn't provided, drop it so DB default applies
111
+ payload_dict = run_payload.model_dump(exclude_none=True)
112
+ if truncation_strategy is None:
113
+ payload_dict.pop("truncation_strategy", None)
97
114
 
115
+ resp = self.client.post("/v1/runs", json=payload_dict)
116
+ resp.raise_for_status()
98
117
  run_out = ent_validator.Run(**resp.json())
99
118
  logging_utility.info("Run created successfully: %s", run_out.id)
100
119
  return run_out
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid
3
- Version: 1.34.12
3
+ Version: 1.35.0
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
@@ -20,7 +20,7 @@ Requires-Dist: pydantic<3.0,>=2.0
20
20
  Requires-Dist: python-dotenv<2.0,>=1.0.1
21
21
  Requires-Dist: aiofiles<25.0,>=23.2.1
22
22
  Requires-Dist: ollama<0.5.0,>=0.4.4
23
- Requires-Dist: projectdavid_common==0.17.19
23
+ Requires-Dist: projectdavid_common==0.18.0
24
24
  Requires-Dist: qdrant-client<2.0.0,>=1.0.0
25
25
  Requires-Dist: pdfplumber<0.12.0,>=0.11.0
26
26
  Requires-Dist: validators<0.35.0,>=0.29.0
@@ -3,7 +3,7 @@ pydantic<3.0,>=2.0
3
3
  python-dotenv<2.0,>=1.0.1
4
4
  aiofiles<25.0,>=23.2.1
5
5
  ollama<0.5.0,>=0.4.4
6
- projectdavid_common==0.17.19
6
+ projectdavid_common==0.18.0
7
7
  qdrant-client<2.0.0,>=1.0.0
8
8
  pdfplumber<0.12.0,>=0.11.0
9
9
  validators<0.35.0,>=0.29.0
File without changes
File without changes
File without changes