projectdavid 1.32.13__tar.gz → 1.32.14__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.
- {projectdavid-1.32.13 → projectdavid-1.32.14}/CHANGELOG.md +7 -0
- {projectdavid-1.32.13/src/projectdavid.egg-info → projectdavid-1.32.14}/PKG-INFO +1 -1
- {projectdavid-1.32.13 → projectdavid-1.32.14}/pyproject.toml +1 -1
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/synchronous_inference_wrapper.py +30 -8
- {projectdavid-1.32.13 → projectdavid-1.32.14/src/projectdavid.egg-info}/PKG-INFO +1 -1
- {projectdavid-1.32.13 → projectdavid-1.32.14}/LICENSE +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/MANIFEST.in +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/README.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/assistants.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/code_interpretation.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/database.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/database_assistant_example.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/docker_comtainers.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/file_search.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/files.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/function_call_definition.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/function_calls.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/handling_function_calls.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/inference.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/messages.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/runs.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/streams.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/threads.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/tools.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/users.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/vector_store.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/docs/versioning.md +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/setup.cfg +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/__init__.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/_version.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/actions_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/api_key_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/assistants_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/base_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/base_vector_store.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/event_handler.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/file_processor.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/file_search.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/files_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/inference_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/messages_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/runs.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/threads_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/tools_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/users_client.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/vector_store_manager.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/vectors.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/constants/platform.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/entity.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/events.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/serializers.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/services/logging_service.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/synthesis/__init__.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/synthesis/llm_synthesizer.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/synthesis/prompt.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/synthesis/reranker.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/synthesis/retriever.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/__init__.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/function_call_suppressor.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/monitor_launcher.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/peek_gate.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/run_monitor.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/vector_search_formatter.py +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid.egg-info/SOURCES.txt +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid.egg-info/dependency_links.txt +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid.egg-info/requires.txt +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid.egg-info/top_level.txt +0 -0
- {projectdavid-1.32.13 → projectdavid-1.32.14}/tests/test_clients.py +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.32.14](https://github.com/frankie336/projectdavid/compare/v1.32.13...v1.32.14) (2025-06-09)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Filter and supress file_search inline-5 ([2ed7419](https://github.com/frankie336/projectdavid/commit/2ed7419d9d2ff8d73559b40b29942a3d2319734c))
|
|
7
|
+
|
|
1
8
|
## [1.32.13](https://github.com/frankie336/projectdavid/compare/v1.32.12...v1.32.13) (2025-06-09)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid
|
|
3
|
-
Version: 1.32.
|
|
3
|
+
Version: 1.32.14
|
|
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
|
|
@@ -14,7 +14,7 @@ class SynchronousInferenceStream:
|
|
|
14
14
|
_GLOBAL_LOOP = asyncio.new_event_loop()
|
|
15
15
|
asyncio.set_event_loop(_GLOBAL_LOOP)
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# ────────────────────────────────────────────────────────────
|
|
18
18
|
def __init__(self, inference) -> None:
|
|
19
19
|
self.inference_client = inference
|
|
20
20
|
self.user_id: Optional[str] = None
|
|
@@ -24,6 +24,7 @@ class SynchronousInferenceStream:
|
|
|
24
24
|
self.run_id: Optional[str] = None
|
|
25
25
|
self.api_key: Optional[str] = None
|
|
26
26
|
|
|
27
|
+
# ────────────────────────────────────────────────────────────
|
|
27
28
|
def setup(
|
|
28
29
|
self,
|
|
29
30
|
user_id: str,
|
|
@@ -40,7 +41,7 @@ class SynchronousInferenceStream:
|
|
|
40
41
|
self.run_id = run_id
|
|
41
42
|
self.api_key = api_key
|
|
42
43
|
|
|
43
|
-
#
|
|
44
|
+
# ────────────────────────────────────────────────────────────
|
|
44
45
|
def stream_chunks(
|
|
45
46
|
self,
|
|
46
47
|
provider: str,
|
|
@@ -72,15 +73,28 @@ class SynchronousInferenceStream:
|
|
|
72
73
|
_suppressor = FunctionCallSuppressor()
|
|
73
74
|
_peek_gate = PeekGate(_suppressor)
|
|
74
75
|
|
|
75
|
-
def _filter_text(txt: str) -> str:
|
|
76
|
+
def _filter_text(txt: str) -> str: # noqa: D401
|
|
76
77
|
return _peek_gate.feed(txt)
|
|
77
78
|
|
|
78
79
|
else:
|
|
79
80
|
|
|
80
|
-
def _filter_text(txt: str) -> str:
|
|
81
|
+
def _filter_text(txt: str) -> str: # noqa: D401
|
|
81
82
|
return txt
|
|
82
83
|
|
|
83
|
-
#
|
|
84
|
+
# helper – drain any leftover bytes still buffered
|
|
85
|
+
def _flush_tail() -> Optional[dict]:
|
|
86
|
+
"""
|
|
87
|
+
Force-flush PeekGate / FunctionCallSuppressor so the last few
|
|
88
|
+
characters (kept for safety-margin) reach the frontend.
|
|
89
|
+
Returns a ready-to-stream chunk or None.
|
|
90
|
+
"""
|
|
91
|
+
if suppress_fc:
|
|
92
|
+
tail = _filter_text("") # empty feed ⇒ flush
|
|
93
|
+
if tail:
|
|
94
|
+
return {"type": "content", "content": tail}
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
# ── main loop ─────────────────────────────────────────────
|
|
84
98
|
while True:
|
|
85
99
|
try:
|
|
86
100
|
chunk = self._GLOBAL_LOOP.run_until_complete(
|
|
@@ -108,23 +122,31 @@ class SynchronousInferenceStream:
|
|
|
108
122
|
if isinstance(chunk.get("content"), str):
|
|
109
123
|
chunk["content"] = _filter_text(chunk["content"])
|
|
110
124
|
if chunk["content"] == "":
|
|
111
|
-
# fully suppressed
|
|
112
|
-
continue
|
|
125
|
+
continue # fully suppressed / still buffering
|
|
113
126
|
|
|
114
127
|
# ④ everything else streams unchanged
|
|
115
128
|
yield chunk
|
|
116
129
|
|
|
130
|
+
# ─────────── graceful endings ───────────
|
|
117
131
|
except StopAsyncIteration:
|
|
132
|
+
if tail := _flush_tail():
|
|
133
|
+
yield tail
|
|
118
134
|
LOG.info("Stream completed normally.")
|
|
119
135
|
break
|
|
136
|
+
|
|
120
137
|
except asyncio.TimeoutError:
|
|
138
|
+
if tail := _flush_tail():
|
|
139
|
+
yield tail
|
|
121
140
|
LOG.error("[TimeoutError] Chunk wait expired – aborting stream.")
|
|
122
141
|
break
|
|
142
|
+
|
|
123
143
|
except Exception as exc: # noqa: BLE001
|
|
144
|
+
if tail := _flush_tail():
|
|
145
|
+
yield tail
|
|
124
146
|
LOG.error("Unexpected streaming error: %s", exc, exc_info=True)
|
|
125
147
|
break
|
|
126
148
|
|
|
127
|
-
#
|
|
149
|
+
# ────────────────────────────────────────────────────────────
|
|
128
150
|
@classmethod
|
|
129
151
|
def shutdown_loop(cls) -> None:
|
|
130
152
|
if cls._GLOBAL_LOOP and not cls._GLOBAL_LOOP.is_closed():
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid
|
|
3
|
-
Version: 1.32.
|
|
3
|
+
Version: 1.32.14
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/clients/vector_store_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/function_call_suppressor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid/utils/vector_search_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid-1.32.13 → projectdavid-1.32.14}/src/projectdavid.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|