openai-sdk-helpers 0.4.2__py3-none-any.whl → 0.4.3__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.
- openai_sdk_helpers/__init__.py +6 -36
- openai_sdk_helpers/agent/__init__.py +3 -4
- openai_sdk_helpers/agent/base.py +34 -31
- openai_sdk_helpers/agent/{config.py → configuration.py} +13 -13
- openai_sdk_helpers/agent/{coordination.py → coordinator.py} +12 -10
- openai_sdk_helpers/agent/search/base.py +16 -16
- openai_sdk_helpers/agent/search/vector.py +25 -13
- openai_sdk_helpers/agent/search/web.py +5 -5
- openai_sdk_helpers/agent/summarizer.py +6 -4
- openai_sdk_helpers/agent/translator.py +9 -5
- openai_sdk_helpers/agent/{validation.py → validator.py} +6 -4
- openai_sdk_helpers/cli.py +8 -22
- openai_sdk_helpers/environment.py +8 -13
- openai_sdk_helpers/prompt/vector_planner.jinja +7 -0
- openai_sdk_helpers/prompt/vector_search.jinja +6 -0
- openai_sdk_helpers/prompt/vector_writer.jinja +7 -0
- openai_sdk_helpers/response/__init__.py +1 -1
- openai_sdk_helpers/response/base.py +4 -4
- openai_sdk_helpers/response/{config.py → configuration.py} +8 -8
- openai_sdk_helpers/response/planner.py +1 -1
- openai_sdk_helpers/response/prompter.py +1 -1
- openai_sdk_helpers/streamlit_app/__init__.py +1 -1
- openai_sdk_helpers/streamlit_app/app.py +16 -17
- openai_sdk_helpers/streamlit_app/{config.py → configuration.py} +13 -13
- openai_sdk_helpers/streamlit_app/streamlit_web_search.py +2 -2
- openai_sdk_helpers/types.py +3 -3
- openai_sdk_helpers/utils/__init__.py +2 -6
- openai_sdk_helpers/utils/json/base_model.py +1 -1
- openai_sdk_helpers/utils/json/data_class.py +1 -1
- openai_sdk_helpers/utils/registry.py +19 -15
- openai_sdk_helpers/vector_storage/storage.py +1 -1
- {openai_sdk_helpers-0.4.2.dist-info → openai_sdk_helpers-0.4.3.dist-info}/METADATA +8 -8
- {openai_sdk_helpers-0.4.2.dist-info → openai_sdk_helpers-0.4.3.dist-info}/RECORD +38 -40
- openai_sdk_helpers/agent/prompt_utils.py +0 -15
- openai_sdk_helpers/context_manager.py +0 -241
- openai_sdk_helpers/deprecation.py +0 -167
- openai_sdk_helpers/retry.py +0 -175
- openai_sdk_helpers/utils/deprecation.py +0 -167
- /openai_sdk_helpers/{logging_config.py → logging.py} +0 -0
- /openai_sdk_helpers/{config.py → settings.py} +0 -0
- {openai_sdk_helpers-0.4.2.dist-info → openai_sdk_helpers-0.4.3.dist-info}/WHEEL +0 -0
- {openai_sdk_helpers-0.4.2.dist-info → openai_sdk_helpers-0.4.3.dist-info}/entry_points.txt +0 -0
- {openai_sdk_helpers-0.4.2.dist-info → openai_sdk_helpers-0.4.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -54,7 +54,7 @@ class StreamlitAppConfig(BaseModelJSONSerializable):
|
|
|
54
54
|
Examples
|
|
55
55
|
--------
|
|
56
56
|
>>> from openai_sdk_helpers.streamlit_app import StreamlitAppConfig
|
|
57
|
-
>>>
|
|
57
|
+
>>> configuration = StreamlitAppConfig(
|
|
58
58
|
... response=MyResponse,
|
|
59
59
|
... display_title="My Assistant",
|
|
60
60
|
... description="A helpful AI assistant"
|
|
@@ -180,7 +180,7 @@ class StreamlitAppConfig(BaseModelJSONSerializable):
|
|
|
180
180
|
|
|
181
181
|
Examples
|
|
182
182
|
--------
|
|
183
|
-
>>>
|
|
183
|
+
>>> configuration.normalized_vector_stores()
|
|
184
184
|
['docs', 'knowledge_base']
|
|
185
185
|
"""
|
|
186
186
|
return list(self.system_vector_store or [])
|
|
@@ -224,7 +224,7 @@ class StreamlitAppConfig(BaseModelJSONSerializable):
|
|
|
224
224
|
|
|
225
225
|
Examples
|
|
226
226
|
--------
|
|
227
|
-
>>> response =
|
|
227
|
+
>>> response = configuration.create_response()
|
|
228
228
|
>>> result = response.run_sync("Hello")
|
|
229
229
|
"""
|
|
230
230
|
return _instantiate_response(self.response)
|
|
@@ -238,7 +238,7 @@ class StreamlitAppRegistry(RegistryBase[StreamlitAppConfig]):
|
|
|
238
238
|
|
|
239
239
|
Methods
|
|
240
240
|
-------
|
|
241
|
-
register(
|
|
241
|
+
register(configuration)
|
|
242
242
|
Add a configuration to the registry.
|
|
243
243
|
get(name)
|
|
244
244
|
Retrieve a configuration by name.
|
|
@@ -256,9 +256,9 @@ class StreamlitAppRegistry(RegistryBase[StreamlitAppConfig]):
|
|
|
256
256
|
Examples
|
|
257
257
|
--------
|
|
258
258
|
>>> registry = StreamlitAppRegistry()
|
|
259
|
-
>>>
|
|
260
|
-
>>> registry.register(
|
|
261
|
-
>>> registry.get(
|
|
259
|
+
>>> configuration = StreamlitAppConfig(response=MyResponse)
|
|
260
|
+
>>> registry.register(configuration)
|
|
261
|
+
>>> registry.get(configuration.name)
|
|
262
262
|
StreamlitAppConfig(...)
|
|
263
263
|
"""
|
|
264
264
|
|
|
@@ -295,7 +295,7 @@ class StreamlitAppRegistry(RegistryBase[StreamlitAppConfig]):
|
|
|
295
295
|
Examples
|
|
296
296
|
--------
|
|
297
297
|
>>> from pathlib import Path
|
|
298
|
-
>>>
|
|
298
|
+
>>> configuration = StreamlitAppRegistry.load_app_config(
|
|
299
299
|
... Path("./my_config.py")
|
|
300
300
|
... )
|
|
301
301
|
"""
|
|
@@ -328,7 +328,7 @@ def _import_config_module(config_path: Path) -> ModuleType:
|
|
|
328
328
|
|
|
329
329
|
Examples
|
|
330
330
|
--------
|
|
331
|
-
>>> module = _import_config_module(Path("./
|
|
331
|
+
>>> module = _import_config_module(Path("./configuration.py"))
|
|
332
332
|
>>> hasattr(module, 'APP_CONFIG')
|
|
333
333
|
True
|
|
334
334
|
"""
|
|
@@ -349,7 +349,7 @@ def _extract_config(module: ModuleType) -> StreamlitAppConfig:
|
|
|
349
349
|
|
|
350
350
|
Looks for APP_CONFIG in the module and converts it to a validated
|
|
351
351
|
StreamlitAppConfig instance. Supports multiple input formats including
|
|
352
|
-
dictionaries, ResponseBase instances, and existing
|
|
352
|
+
dictionaries, ResponseBase instances, and existing configuration objects.
|
|
353
353
|
|
|
354
354
|
Parameters
|
|
355
355
|
----------
|
|
@@ -371,8 +371,8 @@ def _extract_config(module: ModuleType) -> StreamlitAppConfig:
|
|
|
371
371
|
|
|
372
372
|
Examples
|
|
373
373
|
--------
|
|
374
|
-
>>>
|
|
375
|
-
>>> isinstance(
|
|
374
|
+
>>> configuration = _extract_config(module)
|
|
375
|
+
>>> isinstance(configuration, StreamlitAppConfig)
|
|
376
376
|
True
|
|
377
377
|
"""
|
|
378
378
|
if not hasattr(module, "APP_CONFIG"):
|
|
@@ -455,7 +455,7 @@ def _config_from_mapping(raw_config: dict) -> StreamlitAppConfig:
|
|
|
455
455
|
|
|
456
456
|
Examples
|
|
457
457
|
--------
|
|
458
|
-
>>>
|
|
458
|
+
>>> configuration = _config_from_mapping({
|
|
459
459
|
... 'response': MyResponse,
|
|
460
460
|
... 'display_title': 'My App'
|
|
461
461
|
... })
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
from openai_sdk_helpers.agent.search.web import WebAgentSearch
|
|
5
|
-
from openai_sdk_helpers.
|
|
5
|
+
from openai_sdk_helpers.settings import OpenAISettings
|
|
6
6
|
from openai_sdk_helpers.response.base import ResponseBase
|
|
7
7
|
from openai_sdk_helpers.structure.web_search import WebSearchStructure
|
|
8
8
|
from openai_sdk_helpers.structure.prompt import PromptStructure
|
|
@@ -56,7 +56,7 @@ async def perform_search(tool) -> str:
|
|
|
56
56
|
APP_CONFIG = {
|
|
57
57
|
"response": StreamlitWebSearch,
|
|
58
58
|
"display_title": "Web Search Assistant",
|
|
59
|
-
"description": "
|
|
59
|
+
"description": "configuration-driven chat experience for performing web searches.",
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
if __name__ == "__main__":
|
openai_sdk_helpers/types.py
CHANGED
|
@@ -21,7 +21,7 @@ from typing import Any, Protocol
|
|
|
21
21
|
from openai import OpenAI
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
class
|
|
24
|
+
class OpenAIClientProtocol(Protocol):
|
|
25
25
|
"""Protocol describing the subset of the OpenAI client the SDK relies on.
|
|
26
26
|
|
|
27
27
|
Defines the minimum interface required for OpenAI client compatibility.
|
|
@@ -46,7 +46,7 @@ class SupportsOpenAIClient(Protocol):
|
|
|
46
46
|
files: Any
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
OpenAIClient = OpenAI |
|
|
49
|
+
OpenAIClient = OpenAI | OpenAIClientProtocol
|
|
50
50
|
"""Type alias for OpenAI client or compatible protocol implementation.
|
|
51
51
|
|
|
52
52
|
Accepts either the official OpenAI client or any object satisfying the
|
|
@@ -54,4 +54,4 @@ SupportsOpenAIClient protocol.
|
|
|
54
54
|
"""
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
__all__ = ["
|
|
57
|
+
__all__ = ["OpenAIClientProtocol", "OpenAIClient"]
|
|
@@ -58,7 +58,7 @@ from .json import (
|
|
|
58
58
|
from .registry import RegistryBase
|
|
59
59
|
|
|
60
60
|
from .path_utils import check_filepath, ensure_directory
|
|
61
|
-
from openai_sdk_helpers.
|
|
61
|
+
from openai_sdk_helpers.logging import log
|
|
62
62
|
from .validation import (
|
|
63
63
|
validate_choice,
|
|
64
64
|
validate_dict_mapping,
|
|
@@ -78,7 +78,7 @@ from .output_validation import (
|
|
|
78
78
|
ValidationRule,
|
|
79
79
|
validate_output,
|
|
80
80
|
)
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
from .encoding import (
|
|
83
83
|
create_file_data_url,
|
|
84
84
|
create_image_data_url,
|
|
@@ -123,10 +123,6 @@ __all__ = [
|
|
|
123
123
|
"LengthValidator",
|
|
124
124
|
"OutputValidator",
|
|
125
125
|
"validate_output",
|
|
126
|
-
# Deprecation
|
|
127
|
-
"deprecated",
|
|
128
|
-
"warn_deprecated",
|
|
129
|
-
"DeprecationHelper",
|
|
130
126
|
# Encoding
|
|
131
127
|
"encode_image",
|
|
132
128
|
"encode_file",
|
|
@@ -166,7 +166,7 @@ class BaseModelJSONSerializable(BaseModel):
|
|
|
166
166
|
|
|
167
167
|
Examples
|
|
168
168
|
--------
|
|
169
|
-
>>> instance = MyConfig.from_json_file("
|
|
169
|
+
>>> instance = MyConfig.from_json_file("configuration.json")
|
|
170
170
|
"""
|
|
171
171
|
target = Path(filepath)
|
|
172
172
|
if not target.exists():
|
|
@@ -4,13 +4,17 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import warnings
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import Generic,
|
|
8
|
-
from
|
|
7
|
+
from typing import Generic, TypeVar
|
|
8
|
+
from typing import Protocol
|
|
9
9
|
|
|
10
|
+
try:
|
|
11
|
+
from typing import Self # Python 3.11+
|
|
12
|
+
except ImportError:
|
|
13
|
+
from typing_extensions import Self # type: ignore[no-redef]
|
|
10
14
|
from .path_utils import ensure_directory
|
|
11
15
|
|
|
12
16
|
|
|
13
|
-
class
|
|
17
|
+
class RegistryProtocol(Protocol):
|
|
14
18
|
"""Protocol describing serializable registry entries.
|
|
15
19
|
|
|
16
20
|
Methods
|
|
@@ -31,12 +35,12 @@ class RegistrySerializable(Protocol):
|
|
|
31
35
|
...
|
|
32
36
|
|
|
33
37
|
@classmethod
|
|
34
|
-
def from_json_file(cls, filepath: Path | str) -> Self:
|
|
38
|
+
def from_json_file(cls, filepath: Path | str) -> "Self":
|
|
35
39
|
"""Load an instance from a JSON file."""
|
|
36
40
|
...
|
|
37
41
|
|
|
38
42
|
|
|
39
|
-
T = TypeVar("T", bound=
|
|
43
|
+
T = TypeVar("T", bound=RegistryProtocol)
|
|
40
44
|
|
|
41
45
|
|
|
42
46
|
class RegistryBase(Generic[T]):
|
|
@@ -53,7 +57,7 @@ class RegistryBase(Generic[T]):
|
|
|
53
57
|
|
|
54
58
|
Methods
|
|
55
59
|
-------
|
|
56
|
-
register(
|
|
60
|
+
register(configuration)
|
|
57
61
|
Add a configuration to the registry.
|
|
58
62
|
get(name)
|
|
59
63
|
Retrieve a configuration by name.
|
|
@@ -82,12 +86,12 @@ class RegistryBase(Generic[T]):
|
|
|
82
86
|
"""
|
|
83
87
|
return self._configs
|
|
84
88
|
|
|
85
|
-
def register(self,
|
|
89
|
+
def register(self, configuration: T) -> None:
|
|
86
90
|
"""Add a configuration to the registry.
|
|
87
91
|
|
|
88
92
|
Parameters
|
|
89
93
|
----------
|
|
90
|
-
|
|
94
|
+
configuration : T
|
|
91
95
|
Configuration to register. Must have a 'name' attribute.
|
|
92
96
|
|
|
93
97
|
Raises
|
|
@@ -95,13 +99,13 @@ class RegistryBase(Generic[T]):
|
|
|
95
99
|
ValueError
|
|
96
100
|
If a configuration with the same name is already registered.
|
|
97
101
|
"""
|
|
98
|
-
name = getattr(
|
|
102
|
+
name = getattr(configuration, "name")
|
|
99
103
|
if name in self._configs:
|
|
100
104
|
raise ValueError(
|
|
101
105
|
f"Configuration '{name}' is already registered. "
|
|
102
106
|
"Use a unique name or clear the registry first."
|
|
103
107
|
)
|
|
104
|
-
self._configs[name] =
|
|
108
|
+
self._configs[name] = configuration
|
|
105
109
|
|
|
106
110
|
def get(self, name: str) -> T:
|
|
107
111
|
"""Retrieve a configuration by name.
|
|
@@ -166,10 +170,10 @@ class RegistryBase(Generic[T]):
|
|
|
166
170
|
return
|
|
167
171
|
|
|
168
172
|
for config_name in config_names:
|
|
169
|
-
|
|
173
|
+
configuration = self.get(config_name)
|
|
170
174
|
filename = f"{config_name}.json"
|
|
171
|
-
filepath = dir_path /
|
|
172
|
-
|
|
175
|
+
filepath = dir_path / configuration.__class__.__name__ / filename
|
|
176
|
+
configuration.to_json_file(filepath)
|
|
173
177
|
|
|
174
178
|
def load_from_directory(self, path: Path | str, *, config_class: type[T]) -> int:
|
|
175
179
|
"""Load all configurations from JSON files in a directory.
|
|
@@ -208,8 +212,8 @@ class RegistryBase(Generic[T]):
|
|
|
208
212
|
count = 0
|
|
209
213
|
for json_file in sorted(dir_path.glob("*.json")):
|
|
210
214
|
try:
|
|
211
|
-
|
|
212
|
-
self.register(
|
|
215
|
+
configuration = config_class.from_json_file(json_file)
|
|
216
|
+
self.register(configuration)
|
|
213
217
|
count += 1
|
|
214
218
|
except Exception as exc:
|
|
215
219
|
# Log warning but continue processing other files
|
|
@@ -21,7 +21,7 @@ from openai.types.vector_store import VectorStore
|
|
|
21
21
|
from openai.types.vector_store_search_response import VectorStoreSearchResponse
|
|
22
22
|
from tqdm import tqdm
|
|
23
23
|
|
|
24
|
-
from ..
|
|
24
|
+
from ..settings import OpenAISettings
|
|
25
25
|
from ..errors import ConfigurationError, VectorStorageError
|
|
26
26
|
from ..types import OpenAIClient
|
|
27
27
|
from ..utils import ensure_list, ensure_directory, log
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-sdk-helpers
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
|
|
5
5
|
Author: openai-sdk-helpers maintainers
|
|
6
6
|
License: MIT
|
|
@@ -193,10 +193,11 @@ report = vector_search.run_agent_sync("Explain quantum entanglement for beginner
|
|
|
193
193
|
print(report.report)
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
**Note**: The vector search workflow
|
|
197
|
-
(`vector_planner.jinja`, `vector_search.jinja`, and `vector_writer.jinja`).
|
|
198
|
-
|
|
199
|
-
|
|
196
|
+
**Note**: The vector search workflow ships with default prompt templates
|
|
197
|
+
(`vector_planner.jinja`, `vector_search.jinja`, and `vector_writer.jinja`).
|
|
198
|
+
You only need to pass a `prompt_dir` when you want to override them; if the
|
|
199
|
+
directory you supply is missing any of the templates, agent construction will
|
|
200
|
+
fail with a `FileNotFoundError`.
|
|
200
201
|
|
|
201
202
|
### Text utilities
|
|
202
203
|
|
|
@@ -510,7 +511,7 @@ src/openai_sdk_helpers/
|
|
|
510
511
|
│ ├── summary.py # Summary output structures
|
|
511
512
|
│ └── validation.py # Validation result structures
|
|
512
513
|
├── vector_storage/ # Vector store abstraction layer
|
|
513
|
-
├──
|
|
514
|
+
├── configuration.py # OpenAI settings and configuration
|
|
514
515
|
└── utils/ # JSON serialization, logging, and helpers
|
|
515
516
|
|
|
516
517
|
tests/ # Comprehensive unit test suite
|
|
@@ -562,7 +563,7 @@ These modules use the standard `openai` SDK for direct API interactions with fin
|
|
|
562
563
|
|
|
563
564
|
### Configuration and Data Structures (Shared)
|
|
564
565
|
|
|
565
|
-
- **`openai_sdk_helpers.
|
|
566
|
+
- **`openai_sdk_helpers.settings.OpenAISettings`**
|
|
566
567
|
Centralizes OpenAI API configuration with environment variable support.
|
|
567
568
|
Creates configured OpenAI clients with consistent settings.
|
|
568
569
|
|
|
@@ -696,4 +697,3 @@ recognizing types:
|
|
|
696
697
|
- Check the [Key Modules](#key-modules) section for API documentation
|
|
697
698
|
- Review examples in the [Quickstart](#quickstart) and [Advanced Usage](#advanced-usage) sections
|
|
698
699
|
- Open an issue on GitHub for bugs or feature requests
|
|
699
|
-
|
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
openai_sdk_helpers/__init__.py,sha256=
|
|
2
|
-
openai_sdk_helpers/cli.py,sha256=
|
|
3
|
-
openai_sdk_helpers/
|
|
4
|
-
openai_sdk_helpers/context_manager.py,sha256=QqlrtenwKoz2krY0IzuToKdTX1HptUYtIEylxieybgY,6633
|
|
5
|
-
openai_sdk_helpers/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
|
|
6
|
-
openai_sdk_helpers/environment.py,sha256=9SYGAgf6dp0aknDdvcnSD40vJWONZsVhO-i8Ayo3jpg,1906
|
|
1
|
+
openai_sdk_helpers/__init__.py,sha256=X3447C4KKq-SlGTiKsKdgwH0zXffqo-7vwrgjtz1Vdo,4034
|
|
2
|
+
openai_sdk_helpers/cli.py,sha256=BDc08NqWVfL4GBekxMfN5IPPB4pmN1Od9sVpKtIJRZk,8025
|
|
3
|
+
openai_sdk_helpers/environment.py,sha256=mNoswzIdv37tTRhFwA2B6_Onxsm7vhfjPArfwhYuL7g,1825
|
|
7
4
|
openai_sdk_helpers/errors.py,sha256=0TLrcpRXPBvk2KlrU5I1VAQl-sYy-d15h_SMDkEawvI,2757
|
|
8
5
|
openai_sdk_helpers/files_api.py,sha256=uMKHvGg1Od0J95Izl3AG9ofQYq8EDJXEty7zP0oKjJM,12569
|
|
9
|
-
openai_sdk_helpers/
|
|
6
|
+
openai_sdk_helpers/logging.py,sha256=JcR0FTWht1tYdwD-bXH835pr0JV0RwHfY3poruiZGHM,795
|
|
10
7
|
openai_sdk_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
openai_sdk_helpers/
|
|
8
|
+
openai_sdk_helpers/settings.py,sha256=xK_u0YNKgtPrLrZrVr4F4k0CvSuYbsmkqqw9mCMdyF8,10932
|
|
12
9
|
openai_sdk_helpers/tools.py,sha256=Awj5htt1ImBbNToM1u6qdrIZ-7MiPZAXZ_oKKiWivy8,10547
|
|
13
|
-
openai_sdk_helpers/types.py,sha256=
|
|
14
|
-
openai_sdk_helpers/agent/__init__.py,sha256=
|
|
15
|
-
openai_sdk_helpers/agent/base.py,sha256=
|
|
16
|
-
openai_sdk_helpers/agent/
|
|
17
|
-
openai_sdk_helpers/agent/
|
|
18
|
-
openai_sdk_helpers/agent/prompt_utils.py,sha256=-1M66tqQxh9wWCFg6X-K7cCcqauca3yA04ZjvOpN3bA,337
|
|
10
|
+
openai_sdk_helpers/types.py,sha256=ejCG0rYqJhjOQvKLoNnzq-TzcKCFt69GVfi7y805NkU,1451
|
|
11
|
+
openai_sdk_helpers/agent/__init__.py,sha256=RilrkE6Qz1oV7FMedRDSbpH7p7D4cXYa7tJD6BAJrwE,1074
|
|
12
|
+
openai_sdk_helpers/agent/base.py,sha256=84mleMjJUDwi6wImHhzpL2Tl6PCtK1bE5n-tvcmWVQ0,27333
|
|
13
|
+
openai_sdk_helpers/agent/configuration.py,sha256=t2ZpWdpTcBRc_4UJFnEMyjxEmQuX_BffU1DHv1Z-SpY,14702
|
|
14
|
+
openai_sdk_helpers/agent/coordinator.py,sha256=Hb0o-pdoLJoM1MPOzBYY8KJkMxR3zWqV-GlpsCs9lqs,18052
|
|
19
15
|
openai_sdk_helpers/agent/runner.py,sha256=aOVN1OYKK5_u7oFBqRCOOeTgcb-lLl4kZGxuPLmJrMw,4884
|
|
20
|
-
openai_sdk_helpers/agent/summarizer.py,sha256=
|
|
21
|
-
openai_sdk_helpers/agent/translator.py,sha256=
|
|
16
|
+
openai_sdk_helpers/agent/summarizer.py,sha256=w_E1-7b1nQwMDAJK_TFLNoUmxjoXNEYfaFINgxbCw-w,4221
|
|
17
|
+
openai_sdk_helpers/agent/translator.py,sha256=MTqRukv1RL8K8fnqfk1xhc_SgRCDo-pWAVfbdAMw8DA,6341
|
|
22
18
|
openai_sdk_helpers/agent/utils.py,sha256=DTD5foCqGYfXf13F2bZMYIQROl7SbDSy5GDPGi0Zl-0,1089
|
|
23
|
-
openai_sdk_helpers/agent/
|
|
19
|
+
openai_sdk_helpers/agent/validator.py,sha256=zWtmjdg4AGV8d6PNlUpuzH-KrofJAsOMazK5BxPeOMY,5147
|
|
24
20
|
openai_sdk_helpers/agent/search/__init__.py,sha256=LXXzEcX2MU7_htHRdRCGPw0hsr9CrZn0ESii7GZJMBw,806
|
|
25
|
-
openai_sdk_helpers/agent/search/base.py,sha256=
|
|
26
|
-
openai_sdk_helpers/agent/search/vector.py,sha256=
|
|
27
|
-
openai_sdk_helpers/agent/search/web.py,sha256=
|
|
21
|
+
openai_sdk_helpers/agent/search/base.py,sha256=0LYbFdammTHzBbhhM1Vc4pFFRCQXvs65T2mDQ_lprjY,10279
|
|
22
|
+
openai_sdk_helpers/agent/search/vector.py,sha256=zs0pE2l8bVnsn7yrg04IXd0y9xHmtnLLkKOjt47njqU,15994
|
|
23
|
+
openai_sdk_helpers/agent/search/web.py,sha256=RzI30rUTn50k323VyG4fZ0se91qGM5TvJ2hRtvFpPIk,11234
|
|
28
24
|
openai_sdk_helpers/enums/__init__.py,sha256=aFf79C4JBeLC3kMlJfSpehyjx5uNCtW6eK5rD6ZFfhM,322
|
|
29
25
|
openai_sdk_helpers/enums/base.py,sha256=cNllDtzcgI0_eZYXxFko14yhxwicX6xbeDfz9gFE3qo,2753
|
|
30
26
|
openai_sdk_helpers/prompt/__init__.py,sha256=MOqgKwG9KLqKudoKRlUfLxiSmdOi2aD6hNrWDFqLHkk,418
|
|
@@ -32,20 +28,23 @@ openai_sdk_helpers/prompt/base.py,sha256=6X0zeopEvO0ba8207O8Nnj1QvFZEZier7kNNh4q
|
|
|
32
28
|
openai_sdk_helpers/prompt/summarizer.jinja,sha256=jliSetWDISbql1EkWi1RB8-L_BXUg8JMkRRsPRHuzbY,309
|
|
33
29
|
openai_sdk_helpers/prompt/translator.jinja,sha256=SZhW8ipEzM-9IA4wyS_r2wIMTAclWrilmk1s46njoL0,291
|
|
34
30
|
openai_sdk_helpers/prompt/validator.jinja,sha256=6t8q_IdxFd3mVBGX6SFKNOert1Wo3YpTOji2SNEbbtE,547
|
|
35
|
-
openai_sdk_helpers/
|
|
36
|
-
openai_sdk_helpers/
|
|
37
|
-
openai_sdk_helpers/
|
|
31
|
+
openai_sdk_helpers/prompt/vector_planner.jinja,sha256=szzuJu6ZawYWuARgQn4DykBLigHfCd0lKYM-GRgoR30,282
|
|
32
|
+
openai_sdk_helpers/prompt/vector_search.jinja,sha256=KPEYQDRKsUesadSyQcBBiqYQEDL1NLN6BQsqw-GcKMA,249
|
|
33
|
+
openai_sdk_helpers/prompt/vector_writer.jinja,sha256=q5osfexGvt1xn8ZPtBWUP36n_1HK_Ziu8dkmCZDVamc,342
|
|
34
|
+
openai_sdk_helpers/response/__init__.py,sha256=Kizjl1wVQpPP6JN9_TOW7Auvidkfj1g5lNNGQDv438k,1893
|
|
35
|
+
openai_sdk_helpers/response/base.py,sha256=bhohz1lFskMohud43xIHkkq8Bqr4jODv_a_DkdOxTA0,34867
|
|
36
|
+
openai_sdk_helpers/response/configuration.py,sha256=G3gSxDYZI9XfqDUJRO-w9JfXAK39ZbbjTCdJuLAXSxI,9339
|
|
38
37
|
openai_sdk_helpers/response/files.py,sha256=6iHXeNZg4R08ilQ7D53qIJDQGYPpTLcByAhNJlEwbZ4,13226
|
|
39
38
|
openai_sdk_helpers/response/messages.py,sha256=qX3sW79rLuJEys28zyv5MovZikwGOaLevzdVN0VYMRE,10104
|
|
40
|
-
openai_sdk_helpers/response/planner.py,sha256=
|
|
41
|
-
openai_sdk_helpers/response/prompter.py,sha256=
|
|
39
|
+
openai_sdk_helpers/response/planner.py,sha256=AuNMZkd4TGnvybSJaf2iMbvfPINbusrWucWBk2uQN_g,340
|
|
40
|
+
openai_sdk_helpers/response/prompter.py,sha256=TLRLmNwPcxaaB_X76BbvwXlphducPKYVbn-afTqN2Rk,344
|
|
42
41
|
openai_sdk_helpers/response/runner.py,sha256=Rg8XmxU5UwxJc3MjPlYlXWDimxy_cjxzefGiruNZK6s,4269
|
|
43
42
|
openai_sdk_helpers/response/tool_call.py,sha256=c9Filh4IG5H_RWuJlYl6KUZDaF7mCjkabFRQMNiz7zM,7422
|
|
44
43
|
openai_sdk_helpers/response/vector_store.py,sha256=cG5Mzdhjw5FsX1phgclIGz2MQ8f8uMKBaage1O2EZQU,3074
|
|
45
|
-
openai_sdk_helpers/streamlit_app/__init__.py,sha256=
|
|
46
|
-
openai_sdk_helpers/streamlit_app/app.py,sha256=
|
|
47
|
-
openai_sdk_helpers/streamlit_app/
|
|
48
|
-
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256
|
|
44
|
+
openai_sdk_helpers/streamlit_app/__init__.py,sha256=3yAkl6qV71cqtT5YFZuC9Bkqit0NtffDV6jmMWpT1k4,812
|
|
45
|
+
openai_sdk_helpers/streamlit_app/app.py,sha256=D5MtvvDoksE-uIQ4ci52zJnXXVNbX75nIOtZHZpzmWg,17505
|
|
46
|
+
openai_sdk_helpers/streamlit_app/configuration.py,sha256=0KeJ4HqCNFthBHsedV6ptqHluAcTPBb5_TujFOGkIUU,16685
|
|
47
|
+
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=SNyToeeUzxriQKl9sGlDcHzejQiluvnR_PQnlww5NQc,2817
|
|
49
48
|
openai_sdk_helpers/structure/__init__.py,sha256=jROw0IbXYVRD2Eb3dBMsB6amQZrX8X7XSgGh_zjsZWc,3469
|
|
50
49
|
openai_sdk_helpers/structure/agent_blueprint.py,sha256=VyJWkgPNzAYKRDMeR1M4kE6qqQURnwqtrrEn0TRJf0g,9698
|
|
51
50
|
openai_sdk_helpers/structure/base.py,sha256=7JuHxKkLR5gP0RWGQIjOQlvySfain6LrB4-zHb0oFxo,25298
|
|
@@ -62,27 +61,26 @@ openai_sdk_helpers/structure/plan/helpers.py,sha256=Vc6dBTMFrNWlsaCTpEImEIKjfFq4
|
|
|
62
61
|
openai_sdk_helpers/structure/plan/plan.py,sha256=CStfSfCdcv7HfLWV_G09xElJvq_kAKi_6JDkB3I7cSI,9663
|
|
63
62
|
openai_sdk_helpers/structure/plan/task.py,sha256=FSdt2OJ_arC60zMoWIUHMT3U1syWM_7svyTpOIwiRSM,4580
|
|
64
63
|
openai_sdk_helpers/structure/plan/types.py,sha256=7y9QEVdZreQUXV7n-R4RoNZzw5HeOVbJGWx9QkSfuNY,418
|
|
65
|
-
openai_sdk_helpers/utils/__init__.py,sha256=
|
|
64
|
+
openai_sdk_helpers/utils/__init__.py,sha256=BVfxiZX-wLiPDUQiWCUHORqzR73bhni8StuummuaN7M,3508
|
|
66
65
|
openai_sdk_helpers/utils/async_utils.py,sha256=9KbPEVfi6IXdbwkTUE0h5DleK8TI7I6P_VPL8UgUv98,3689
|
|
67
66
|
openai_sdk_helpers/utils/coercion.py,sha256=Pq1u7tAbD7kTZ84lK-7Fb9CyYKKKQt4fypG5BlSI6oQ,3774
|
|
68
|
-
openai_sdk_helpers/utils/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
|
|
69
67
|
openai_sdk_helpers/utils/encoding.py,sha256=oDtlNGZ5p-edXiHW76REs-0-8NXkQNReKJdj6sHLkt8,4615
|
|
70
68
|
openai_sdk_helpers/utils/instructions.py,sha256=trbjxjxv2otQR9VmBsPFk1_CJj8nA85Sgtj_5QmQOKI,942
|
|
71
69
|
openai_sdk_helpers/utils/output_validation.py,sha256=3DC6Hr6vAFx_bQGaLsxkGN_LuKe_MugLpVogMBgG9tc,12621
|
|
72
70
|
openai_sdk_helpers/utils/path_utils.py,sha256=NOSX7553cc8LqxbnvmdYjgDBi5Le2W2LuMINwFsTzyM,1969
|
|
73
|
-
openai_sdk_helpers/utils/registry.py,sha256=
|
|
71
|
+
openai_sdk_helpers/utils/registry.py,sha256=FJvQEZ19vmgfhd1QR5JHb-jIite5fB-bSEOMTGkY7iQ,6680
|
|
74
72
|
openai_sdk_helpers/utils/validation.py,sha256=ZjnZNOy5AoFlszRxarNol6YZwfgw6LnwPtkCekZmwAU,7826
|
|
75
73
|
openai_sdk_helpers/utils/json/__init__.py,sha256=wBm1DBgfy_n1uSUcnCPyqBn_cCq41mijjPigSMZJZqg,2118
|
|
76
|
-
openai_sdk_helpers/utils/json/base_model.py,sha256=
|
|
77
|
-
openai_sdk_helpers/utils/json/data_class.py,sha256=
|
|
74
|
+
openai_sdk_helpers/utils/json/base_model.py,sha256=6sFZWEzqbKmsAf5ZR-RnX820iBWxmYBotYN2GGROwDc,5107
|
|
75
|
+
openai_sdk_helpers/utils/json/data_class.py,sha256=Bobc5yCZPMh093-0fiWaYNcEH7gUXUV2Itd-tPXH15w,6476
|
|
78
76
|
openai_sdk_helpers/utils/json/ref.py,sha256=FqBIRWIw33Up3rFyTlLYljcuUjg43f6Nu5wX3tOXn54,2809
|
|
79
77
|
openai_sdk_helpers/utils/json/utils.py,sha256=iyc25tnObqXQJWPKLZMVts932GArdKer59KuC8aQKsY,5948
|
|
80
78
|
openai_sdk_helpers/vector_storage/__init__.py,sha256=L5LxO09puh9_yBB9IDTvc1CvVkARVkHqYY1KX3inB4c,975
|
|
81
79
|
openai_sdk_helpers/vector_storage/cleanup.py,sha256=ImWIE-9lli-odD8qIARvmeaa0y8ZD4pYYP-kT0O3178,3552
|
|
82
|
-
openai_sdk_helpers/vector_storage/storage.py,sha256=
|
|
80
|
+
openai_sdk_helpers/vector_storage/storage.py,sha256=CcpATTNdeppmMfbQLnhv29hdEfE3wtAVsyKHNCrL-cI,23657
|
|
83
81
|
openai_sdk_helpers/vector_storage/types.py,sha256=jTCcOYMeOpZWvcse0z4T3MVs-RBOPC-fqWTBeQrgafU,1639
|
|
84
|
-
openai_sdk_helpers-0.4.
|
|
85
|
-
openai_sdk_helpers-0.4.
|
|
86
|
-
openai_sdk_helpers-0.4.
|
|
87
|
-
openai_sdk_helpers-0.4.
|
|
88
|
-
openai_sdk_helpers-0.4.
|
|
82
|
+
openai_sdk_helpers-0.4.3.dist-info/METADATA,sha256=q5i3RZC6CLUeT2vSy8FSpKjwyAqV8Nfy1MP7zyS-ibs,23638
|
|
83
|
+
openai_sdk_helpers-0.4.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
84
|
+
openai_sdk_helpers-0.4.3.dist-info/entry_points.txt,sha256=gEOD1ZeXe8d2OP-KzUlG-b_9D9yUZTCt-GFW3EDbIIY,63
|
|
85
|
+
openai_sdk_helpers-0.4.3.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
|
|
86
|
+
openai_sdk_helpers-0.4.3.dist-info/RECORD,,
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"""Shared helpers for locating bundled prompt templates.
|
|
2
|
-
|
|
3
|
-
Attributes
|
|
4
|
-
----------
|
|
5
|
-
DEFAULT_PROMPT_DIR : Path
|
|
6
|
-
Default directory containing bundled prompt templates.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
|
|
13
|
-
DEFAULT_PROMPT_DIR = Path(__file__).resolve().parent.parent / "prompt"
|
|
14
|
-
|
|
15
|
-
__all__ = ["DEFAULT_PROMPT_DIR"]
|