openai-sdk-helpers 0.2.0__py3-none-any.whl → 0.4.0__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 -6
- openai_sdk_helpers/agent/__init__.py +4 -2
- openai_sdk_helpers/agent/base.py +391 -106
- openai_sdk_helpers/agent/config.py +405 -44
- openai_sdk_helpers/agent/coordination.py +68 -31
- openai_sdk_helpers/agent/runner.py +29 -19
- openai_sdk_helpers/agent/search/base.py +103 -54
- openai_sdk_helpers/agent/search/vector.py +99 -68
- openai_sdk_helpers/agent/search/web.py +84 -50
- openai_sdk_helpers/agent/summarizer.py +33 -7
- openai_sdk_helpers/agent/translator.py +58 -24
- openai_sdk_helpers/agent/validation.py +35 -4
- openai_sdk_helpers/cli.py +42 -0
- openai_sdk_helpers/config.py +0 -1
- openai_sdk_helpers/environment.py +3 -2
- openai_sdk_helpers/files_api.py +35 -3
- openai_sdk_helpers/prompt/base.py +6 -0
- openai_sdk_helpers/response/__init__.py +3 -3
- openai_sdk_helpers/response/base.py +161 -22
- openai_sdk_helpers/response/config.py +50 -200
- openai_sdk_helpers/response/files.py +5 -5
- openai_sdk_helpers/response/messages.py +3 -3
- openai_sdk_helpers/response/runner.py +7 -7
- openai_sdk_helpers/response/tool_call.py +94 -4
- openai_sdk_helpers/response/vector_store.py +3 -3
- openai_sdk_helpers/streamlit_app/app.py +16 -16
- openai_sdk_helpers/streamlit_app/config.py +38 -37
- openai_sdk_helpers/streamlit_app/streamlit_web_search.py +2 -2
- openai_sdk_helpers/structure/__init__.py +6 -2
- openai_sdk_helpers/structure/agent_blueprint.py +2 -2
- openai_sdk_helpers/structure/base.py +8 -99
- openai_sdk_helpers/structure/plan/plan.py +2 -2
- openai_sdk_helpers/structure/plan/task.py +9 -9
- openai_sdk_helpers/structure/prompt.py +2 -2
- openai_sdk_helpers/structure/responses.py +15 -15
- openai_sdk_helpers/structure/summary.py +3 -3
- openai_sdk_helpers/structure/translation.py +32 -0
- openai_sdk_helpers/structure/validation.py +2 -2
- openai_sdk_helpers/structure/vector_search.py +7 -7
- openai_sdk_helpers/structure/web_search.py +6 -6
- openai_sdk_helpers/tools.py +41 -15
- openai_sdk_helpers/utils/__init__.py +19 -5
- openai_sdk_helpers/utils/instructions.py +35 -0
- openai_sdk_helpers/utils/json/__init__.py +55 -0
- openai_sdk_helpers/utils/json/base_model.py +181 -0
- openai_sdk_helpers/utils/{json_utils.py → json/data_class.py} +43 -70
- openai_sdk_helpers/utils/json/ref.py +113 -0
- openai_sdk_helpers/utils/json/utils.py +203 -0
- openai_sdk_helpers/utils/output_validation.py +21 -1
- openai_sdk_helpers/utils/path_utils.py +34 -1
- openai_sdk_helpers/utils/registry.py +194 -0
- openai_sdk_helpers/vector_storage/storage.py +10 -0
- {openai_sdk_helpers-0.2.0.dist-info → openai_sdk_helpers-0.4.0.dist-info}/METADATA +7 -7
- openai_sdk_helpers-0.4.0.dist-info/RECORD +86 -0
- openai_sdk_helpers-0.2.0.dist-info/RECORD +0 -79
- {openai_sdk_helpers-0.2.0.dist-info → openai_sdk_helpers-0.4.0.dist-info}/WHEEL +0 -0
- {openai_sdk_helpers-0.2.0.dist-info → openai_sdk_helpers-0.4.0.dist-info}/entry_points.txt +0 -0
- {openai_sdk_helpers-0.2.0.dist-info → openai_sdk_helpers-0.4.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -24,6 +24,18 @@ def check_filepath(
|
|
|
24
24
|
-------
|
|
25
25
|
Path
|
|
26
26
|
Path object representing the validated file path.
|
|
27
|
+
|
|
28
|
+
Raises
|
|
29
|
+
------
|
|
30
|
+
ValueError
|
|
31
|
+
If both or neither of filepath and fullfilepath are provided.
|
|
32
|
+
IOError
|
|
33
|
+
If the directory cannot be created.
|
|
34
|
+
|
|
35
|
+
Examples
|
|
36
|
+
--------
|
|
37
|
+
>>> check_filepath(fullfilepath="/tmp/my_app/data.json")
|
|
38
|
+
Path('/tmp/my_app/data.json')
|
|
27
39
|
"""
|
|
28
40
|
if filepath is None and fullfilepath is None:
|
|
29
41
|
raise ValueError("filepath or fullfilepath is required.")
|
|
@@ -38,7 +50,28 @@ def check_filepath(
|
|
|
38
50
|
|
|
39
51
|
|
|
40
52
|
def ensure_directory(path: Path) -> Path:
|
|
41
|
-
"""Ensure a directory exists and return it.
|
|
53
|
+
"""Ensure a directory exists and return it.
|
|
54
|
+
|
|
55
|
+
Parameters
|
|
56
|
+
----------
|
|
57
|
+
path : Path
|
|
58
|
+
The directory path to check and create if necessary.
|
|
59
|
+
|
|
60
|
+
Returns
|
|
61
|
+
-------
|
|
62
|
+
Path
|
|
63
|
+
The validated Path object for the directory.
|
|
64
|
+
|
|
65
|
+
Raises
|
|
66
|
+
------
|
|
67
|
+
IOError
|
|
68
|
+
If the directory cannot be created.
|
|
69
|
+
|
|
70
|
+
Examples
|
|
71
|
+
--------
|
|
72
|
+
>>> ensure_directory(Path("/tmp/my_app"))
|
|
73
|
+
Path('/tmp/my_app')
|
|
74
|
+
"""
|
|
42
75
|
path.mkdir(parents=True, exist_ok=True)
|
|
43
76
|
return path
|
|
44
77
|
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"""Base registry class for managing configuration instances."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import warnings
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Generic, TypeVar
|
|
8
|
+
|
|
9
|
+
from ..utils.json.data_class import DataclassJSONSerializable
|
|
10
|
+
from .path_utils import ensure_directory
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound=DataclassJSONSerializable)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class BaseRegistry(Generic[T]):
|
|
16
|
+
"""Base registry for managing configuration instances.
|
|
17
|
+
|
|
18
|
+
Provides centralized storage and retrieval of configurations,
|
|
19
|
+
enabling reusable specs across the application. Configurations
|
|
20
|
+
are stored by name and can be retrieved or listed as needed.
|
|
21
|
+
|
|
22
|
+
Type Parameters
|
|
23
|
+
---------------
|
|
24
|
+
T
|
|
25
|
+
The configuration type this registry manages.
|
|
26
|
+
|
|
27
|
+
Methods
|
|
28
|
+
-------
|
|
29
|
+
register(config)
|
|
30
|
+
Add a configuration to the registry.
|
|
31
|
+
get(name)
|
|
32
|
+
Retrieve a configuration by name.
|
|
33
|
+
list_names()
|
|
34
|
+
Return all registered configuration names.
|
|
35
|
+
clear()
|
|
36
|
+
Remove all registered configurations.
|
|
37
|
+
save_to_directory(path)
|
|
38
|
+
Export all registered configurations to JSON files.
|
|
39
|
+
load_from_directory(path)
|
|
40
|
+
Load configurations from JSON files in a directory.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __init__(self) -> None:
|
|
44
|
+
"""Initialize an empty registry."""
|
|
45
|
+
self._configs: dict[str, T] = {}
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def configs(self) -> dict[str, T]:
|
|
49
|
+
"""Return the internal configuration mapping.
|
|
50
|
+
|
|
51
|
+
Returns
|
|
52
|
+
-------
|
|
53
|
+
dict[str, T]
|
|
54
|
+
Mapping of configuration names to instances.
|
|
55
|
+
"""
|
|
56
|
+
return self._configs
|
|
57
|
+
|
|
58
|
+
def register(self, config: T) -> None:
|
|
59
|
+
"""Add a configuration to the registry.
|
|
60
|
+
|
|
61
|
+
Parameters
|
|
62
|
+
----------
|
|
63
|
+
config : T
|
|
64
|
+
Configuration to register. Must have a 'name' attribute.
|
|
65
|
+
|
|
66
|
+
Raises
|
|
67
|
+
------
|
|
68
|
+
ValueError
|
|
69
|
+
If a configuration with the same name is already registered.
|
|
70
|
+
"""
|
|
71
|
+
name = getattr(config, "name")
|
|
72
|
+
if name in self._configs:
|
|
73
|
+
raise ValueError(
|
|
74
|
+
f"Configuration '{name}' is already registered. "
|
|
75
|
+
"Use a unique name or clear the registry first."
|
|
76
|
+
)
|
|
77
|
+
self._configs[name] = config
|
|
78
|
+
|
|
79
|
+
def get(self, name: str) -> T:
|
|
80
|
+
"""Retrieve a configuration by name.
|
|
81
|
+
|
|
82
|
+
Parameters
|
|
83
|
+
----------
|
|
84
|
+
name : str
|
|
85
|
+
Configuration name to look up.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
T
|
|
90
|
+
The registered configuration.
|
|
91
|
+
|
|
92
|
+
Raises
|
|
93
|
+
------
|
|
94
|
+
KeyError
|
|
95
|
+
If no configuration with the given name exists.
|
|
96
|
+
"""
|
|
97
|
+
if name not in self._configs:
|
|
98
|
+
raise KeyError(
|
|
99
|
+
f"No configuration named '{name}' found. "
|
|
100
|
+
f"Available: {list(self._configs.keys())}"
|
|
101
|
+
)
|
|
102
|
+
return self._configs[name]
|
|
103
|
+
|
|
104
|
+
def list_names(self) -> list[str]:
|
|
105
|
+
"""Return all registered configuration names.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
list[str]
|
|
110
|
+
Sorted list of configuration names.
|
|
111
|
+
"""
|
|
112
|
+
return sorted(self._configs.keys())
|
|
113
|
+
|
|
114
|
+
def clear(self) -> None:
|
|
115
|
+
"""Remove all registered configurations."""
|
|
116
|
+
self._configs.clear()
|
|
117
|
+
|
|
118
|
+
def save_to_directory(self, path: Path | str) -> None:
|
|
119
|
+
"""Export all registered configurations to JSON files in a directory.
|
|
120
|
+
|
|
121
|
+
Serializes each registered configuration to an individual JSON file
|
|
122
|
+
named after the configuration. Creates the directory if it does not exist.
|
|
123
|
+
|
|
124
|
+
Parameters
|
|
125
|
+
----------
|
|
126
|
+
path : Path or str
|
|
127
|
+
Directory path where JSON files will be saved. Will be created if
|
|
128
|
+
it does not already exist.
|
|
129
|
+
|
|
130
|
+
Raises
|
|
131
|
+
------
|
|
132
|
+
OSError
|
|
133
|
+
If the directory cannot be created or files cannot be written.
|
|
134
|
+
"""
|
|
135
|
+
dir_path = ensure_directory(Path(path))
|
|
136
|
+
config_names = self.configs
|
|
137
|
+
|
|
138
|
+
if not config_names:
|
|
139
|
+
return
|
|
140
|
+
|
|
141
|
+
for config_name in config_names:
|
|
142
|
+
config = self.get(config_name)
|
|
143
|
+
filename = f"{config_name}.json"
|
|
144
|
+
filepath = dir_path / config.__class__.__name__ / filename
|
|
145
|
+
config.to_json_file(filepath)
|
|
146
|
+
|
|
147
|
+
def load_from_directory(self, path: Path | str, *, config_class: type[T]) -> int:
|
|
148
|
+
"""Load all configurations from JSON files in a directory.
|
|
149
|
+
|
|
150
|
+
Scans the directory for JSON files and attempts to load each as a
|
|
151
|
+
configuration. Successfully loaded configurations are registered.
|
|
152
|
+
If a file fails to load, a warning is issued and processing continues
|
|
153
|
+
with the remaining files.
|
|
154
|
+
|
|
155
|
+
Parameters
|
|
156
|
+
----------
|
|
157
|
+
path : Path or str
|
|
158
|
+
Directory path containing JSON configuration files.
|
|
159
|
+
config_class : type[T]
|
|
160
|
+
The configuration class to use for deserialization.
|
|
161
|
+
|
|
162
|
+
Returns
|
|
163
|
+
-------
|
|
164
|
+
int
|
|
165
|
+
Number of configurations successfully loaded and registered.
|
|
166
|
+
|
|
167
|
+
Raises
|
|
168
|
+
------
|
|
169
|
+
FileNotFoundError
|
|
170
|
+
If the directory does not exist.
|
|
171
|
+
NotADirectoryError
|
|
172
|
+
If the path is not a directory.
|
|
173
|
+
"""
|
|
174
|
+
dir_path = Path(path)
|
|
175
|
+
if not dir_path.exists():
|
|
176
|
+
raise FileNotFoundError(f"Directory not found: {dir_path}")
|
|
177
|
+
|
|
178
|
+
if not dir_path.is_dir():
|
|
179
|
+
raise NotADirectoryError(f"Path is not a directory: {dir_path}")
|
|
180
|
+
|
|
181
|
+
count = 0
|
|
182
|
+
for json_file in sorted(dir_path.glob("*.json")):
|
|
183
|
+
try:
|
|
184
|
+
config = config_class.from_json_file(json_file)
|
|
185
|
+
self.register(config)
|
|
186
|
+
count += 1
|
|
187
|
+
except Exception as exc:
|
|
188
|
+
# Log warning but continue processing other files
|
|
189
|
+
warnings.warn(
|
|
190
|
+
f"Failed to load configuration from {json_file}: {exc}",
|
|
191
|
+
stacklevel=2,
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
return count
|
|
@@ -56,6 +56,16 @@ class VectorStorage:
|
|
|
56
56
|
including file uploads, deletions, and semantic search operations. It handles
|
|
57
57
|
file caching, concurrent uploads, and automatic store creation.
|
|
58
58
|
|
|
59
|
+
Parameters
|
|
60
|
+
----------
|
|
61
|
+
store_name : str
|
|
62
|
+
Name of the vector store to create or connect to.
|
|
63
|
+
client : OpenAIClient or None, optional
|
|
64
|
+
Preconfigured OpenAI-compatible client, by default None.
|
|
65
|
+
model : str or None, optional
|
|
66
|
+
Embedding model identifier. Reads OPENAI_MODEL env var if None,
|
|
67
|
+
by default None.
|
|
68
|
+
|
|
59
69
|
Examples
|
|
60
70
|
--------
|
|
61
71
|
Basic usage:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-sdk-helpers
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
|
|
5
5
|
Author: openai-sdk-helpers maintainers
|
|
6
6
|
License: MIT
|
|
@@ -277,14 +277,14 @@ when instantiating `OpenAISettings`.
|
|
|
277
277
|
For more fine-grained control over API interactions, use the `response` module built on the standard `openai` SDK. This gives you direct access to message history, tool handlers, and custom response parsing:
|
|
278
278
|
|
|
279
279
|
```python
|
|
280
|
-
from openai_sdk_helpers.response import
|
|
280
|
+
from openai_sdk_helpers.response import ResponseBase
|
|
281
281
|
from openai_sdk_helpers import OpenAISettings
|
|
282
282
|
|
|
283
283
|
# Configure OpenAI settings
|
|
284
284
|
settings = OpenAISettings.from_env()
|
|
285
285
|
|
|
286
286
|
# Create a response handler with custom instructions
|
|
287
|
-
response =
|
|
287
|
+
response = ResponseBase(
|
|
288
288
|
instructions="You are a helpful code review assistant.",
|
|
289
289
|
tools=None, # Or provide custom tool definitions
|
|
290
290
|
output_structure=None, # Or a Pydantic model for structured output
|
|
@@ -311,12 +311,12 @@ response.close()
|
|
|
311
311
|
The `response` module automatically detects file types and handles them appropriately:
|
|
312
312
|
|
|
313
313
|
```python
|
|
314
|
-
from openai_sdk_helpers.response import
|
|
314
|
+
from openai_sdk_helpers.response import ResponseBase
|
|
315
315
|
from openai_sdk_helpers import OpenAISettings
|
|
316
316
|
|
|
317
317
|
settings = OpenAISettings.from_env()
|
|
318
318
|
|
|
319
|
-
with
|
|
319
|
+
with ResponseBase(
|
|
320
320
|
name="analyzer",
|
|
321
321
|
instructions="You are a helpful assistant that can analyze files.",
|
|
322
322
|
tools=None,
|
|
@@ -550,7 +550,7 @@ These modules use the `openai-agents` SDK for high-level agent workflows with au
|
|
|
550
550
|
|
|
551
551
|
These modules use the standard `openai` SDK for direct API interactions with fine-grained control over request/response cycles.
|
|
552
552
|
|
|
553
|
-
- **`openai_sdk_helpers.response.base.
|
|
553
|
+
- **`openai_sdk_helpers.response.base.ResponseBase`**
|
|
554
554
|
Manages complete OpenAI API interaction lifecycle including input construction,
|
|
555
555
|
tool execution, message history, and structured output parsing. Uses the
|
|
556
556
|
`client.responses.create()` API (from the OpenAI Responses API, distinct from
|
|
@@ -566,7 +566,7 @@ These modules use the standard `openai` SDK for direct API interactions with fin
|
|
|
566
566
|
Centralizes OpenAI API configuration with environment variable support.
|
|
567
567
|
Creates configured OpenAI clients with consistent settings.
|
|
568
568
|
|
|
569
|
-
- **`openai_sdk_helpers.structure.
|
|
569
|
+
- **`openai_sdk_helpers.structure.StructureBase`**
|
|
570
570
|
Pydantic-based foundation for all structured outputs. Provides JSON schema
|
|
571
571
|
generation, validation, and serialization helpers.
|
|
572
572
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
openai_sdk_helpers/__init__.py,sha256=ZvcdJWHP7oMRxSGemxgO7CIpF0dc6oBTh4oftZAYv3c,4640
|
|
2
|
+
openai_sdk_helpers/cli.py,sha256=YnQz-IcAqcBdh8eCCxVYa7NHDuHgHaU-PJ4FWPvkz58,8278
|
|
3
|
+
openai_sdk_helpers/config.py,sha256=xK_u0YNKgtPrLrZrVr4F4k0CvSuYbsmkqqw9mCMdyF8,10932
|
|
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=PqH9viiGIgRAiwU8xPPWlE25KbgSBLmE6nj7S8izCV4,1491
|
|
7
|
+
openai_sdk_helpers/errors.py,sha256=0TLrcpRXPBvk2KlrU5I1VAQl-sYy-d15h_SMDkEawvI,2757
|
|
8
|
+
openai_sdk_helpers/files_api.py,sha256=uMKHvGg1Od0J95Izl3AG9ofQYq8EDJXEty7zP0oKjJM,12569
|
|
9
|
+
openai_sdk_helpers/logging_config.py,sha256=JcR0FTWht1tYdwD-bXH835pr0JV0RwHfY3poruiZGHM,795
|
|
10
|
+
openai_sdk_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
openai_sdk_helpers/retry.py,sha256=J10oQYphfzDXm3BnLoXwxk7PAhN93TC2LQOv0VDGOwI,6533
|
|
12
|
+
openai_sdk_helpers/tools.py,sha256=Awj5htt1ImBbNToM1u6qdrIZ-7MiPZAXZ_oKKiWivy8,10547
|
|
13
|
+
openai_sdk_helpers/types.py,sha256=xzldCRfwCZ3rZl18IBmfgA-PVdoZKSWNrlSIhirumSo,1451
|
|
14
|
+
openai_sdk_helpers/agent/__init__.py,sha256=rWJks5wZ-AP1vsZoxROXCeVen_twE269FJLqdpNIKS0,1086
|
|
15
|
+
openai_sdk_helpers/agent/base.py,sha256=5G2ELmdR8wPOLuppzqDzflW2se7pSmfYEf9_drcSN9I,20914
|
|
16
|
+
openai_sdk_helpers/agent/config.py,sha256=SOEX0-G0jDgrCNiHFYCMCk-K-oP4fWapTxtDvgF7FXc,15939
|
|
17
|
+
openai_sdk_helpers/agent/coordination.py,sha256=VTzyl4RV1q4ugiyFW4Fj7pOAVVO0bMRD63PfQRDwfoQ,18030
|
|
18
|
+
openai_sdk_helpers/agent/prompt_utils.py,sha256=-1M66tqQxh9wWCFg6X-K7cCcqauca3yA04ZjvOpN3bA,337
|
|
19
|
+
openai_sdk_helpers/agent/runner.py,sha256=aOVN1OYKK5_u7oFBqRCOOeTgcb-lLl4kZGxuPLmJrMw,4884
|
|
20
|
+
openai_sdk_helpers/agent/summarizer.py,sha256=lg_PLB1DSHox3PNDgiCzvCPM5VoCUbKEMGy1gqUvl8Y,4168
|
|
21
|
+
openai_sdk_helpers/agent/translator.py,sha256=3u7er1GhUGdy7OMa3A_vyqFFZfev3XBCZW_6w5OwYVc,6286
|
|
22
|
+
openai_sdk_helpers/agent/utils.py,sha256=DTD5foCqGYfXf13F2bZMYIQROl7SbDSy5GDPGi0Zl-0,1089
|
|
23
|
+
openai_sdk_helpers/agent/validation.py,sha256=6NHZIFaUOqRZeYqvRBnDc_uApAV3YHJnOhLHKbVUsi0,5094
|
|
24
|
+
openai_sdk_helpers/agent/search/__init__.py,sha256=xqosfzH4HcBs9IFZks9msG_694rS5q6Ea4_qNeRQRmU,798
|
|
25
|
+
openai_sdk_helpers/agent/search/base.py,sha256=VokTw3-V2yxGzm2WzlcvU100h3UaeyGslCFwIgMvJwI,10146
|
|
26
|
+
openai_sdk_helpers/agent/search/vector.py,sha256=i5nWUvEE9eAv41FwbMT52uORZ7OHCEc8d4F6qH-klCc,14282
|
|
27
|
+
openai_sdk_helpers/agent/search/web.py,sha256=7rYvFAZ1S00IaFPcneEOP2yY2vKIvYdnJvAbVTRbESc,10767
|
|
28
|
+
openai_sdk_helpers/enums/__init__.py,sha256=aFf79C4JBeLC3kMlJfSpehyjx5uNCtW6eK5rD6ZFfhM,322
|
|
29
|
+
openai_sdk_helpers/enums/base.py,sha256=cNllDtzcgI0_eZYXxFko14yhxwicX6xbeDfz9gFE3qo,2753
|
|
30
|
+
openai_sdk_helpers/prompt/__init__.py,sha256=MOqgKwG9KLqKudoKRlUfLxiSmdOi2aD6hNrWDFqLHkk,418
|
|
31
|
+
openai_sdk_helpers/prompt/base.py,sha256=6X0zeopEvO0ba8207O8Nnj1QvFZEZier7kNNh4qkcmE,7782
|
|
32
|
+
openai_sdk_helpers/prompt/summarizer.jinja,sha256=jliSetWDISbql1EkWi1RB8-L_BXUg8JMkRRsPRHuzbY,309
|
|
33
|
+
openai_sdk_helpers/prompt/translator.jinja,sha256=SZhW8ipEzM-9IA4wyS_r2wIMTAclWrilmk1s46njoL0,291
|
|
34
|
+
openai_sdk_helpers/prompt/validator.jinja,sha256=6t8q_IdxFd3mVBGX6SFKNOert1Wo3YpTOji2SNEbbtE,547
|
|
35
|
+
openai_sdk_helpers/response/__init__.py,sha256=Rh3tBygneOhS-Er_4dtX4Xa69ukvxYv01brq26VpgwQ,1886
|
|
36
|
+
openai_sdk_helpers/response/base.py,sha256=OA1p9h6EIzwt8VCWFXEalaQHOe0_eZDefqs5jQKu-vU,34844
|
|
37
|
+
openai_sdk_helpers/response/config.py,sha256=KsfLKnh8mPTn15l26JK_BCqPj3CqyArW-L30ceYRNpk,8903
|
|
38
|
+
openai_sdk_helpers/response/files.py,sha256=6iHXeNZg4R08ilQ7D53qIJDQGYPpTLcByAhNJlEwbZ4,13226
|
|
39
|
+
openai_sdk_helpers/response/messages.py,sha256=qX3sW79rLuJEys28zyv5MovZikwGOaLevzdVN0VYMRE,10104
|
|
40
|
+
openai_sdk_helpers/response/runner.py,sha256=Rg8XmxU5UwxJc3MjPlYlXWDimxy_cjxzefGiruNZK6s,4269
|
|
41
|
+
openai_sdk_helpers/response/tool_call.py,sha256=c9Filh4IG5H_RWuJlYl6KUZDaF7mCjkabFRQMNiz7zM,7422
|
|
42
|
+
openai_sdk_helpers/response/vector_store.py,sha256=cG5Mzdhjw5FsX1phgclIGz2MQ8f8uMKBaage1O2EZQU,3074
|
|
43
|
+
openai_sdk_helpers/streamlit_app/__init__.py,sha256=RjJbnBDS5_YmAmxvaa3phB5u9UcXsXDEk_jMlY_pa5Q,793
|
|
44
|
+
openai_sdk_helpers/streamlit_app/app.py,sha256=jNkMQ4zkfojP501qk_vncyLN4TymiDXxA3cXkUvBfsw,17402
|
|
45
|
+
openai_sdk_helpers/streamlit_app/config.py,sha256=Jla8IoKsazHBq71pDFUGEv8W23WE18GSmAKcTI5LCww,16042
|
|
46
|
+
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=21xhBhdTsqK6ybPcLzSKSLOVeK8a3x9y_rRNvNBOAGM,2812
|
|
47
|
+
openai_sdk_helpers/structure/__init__.py,sha256=jROw0IbXYVRD2Eb3dBMsB6amQZrX8X7XSgGh_zjsZWc,3469
|
|
48
|
+
openai_sdk_helpers/structure/agent_blueprint.py,sha256=VyJWkgPNzAYKRDMeR1M4kE6qqQURnwqtrrEn0TRJf0g,9698
|
|
49
|
+
openai_sdk_helpers/structure/base.py,sha256=7JuHxKkLR5gP0RWGQIjOQlvySfain6LrB4-zHb0oFxo,25298
|
|
50
|
+
openai_sdk_helpers/structure/prompt.py,sha256=Pp3j-fOG0SWQO5Ts9zS86n8cveSB6kWzSGHW6J9MlcY,1075
|
|
51
|
+
openai_sdk_helpers/structure/responses.py,sha256=eqCcW4d8lwhUF5kzHMA4FR9uNkaBHl8CuZk7a8YrenI,4868
|
|
52
|
+
openai_sdk_helpers/structure/summary.py,sha256=iP1uffqve18B9HXceP4rV0Ho5AaDZXMmC66tRKDNx3c,3143
|
|
53
|
+
openai_sdk_helpers/structure/translation.py,sha256=rBSzGBX6hGaETD43340z9MbKGsxWekjRD4xEZz67SnI,712
|
|
54
|
+
openai_sdk_helpers/structure/validation.py,sha256=D03rlyBDn22qNjTGaGsjhsk3g50oPmzYMFqycYF2_CU,2409
|
|
55
|
+
openai_sdk_helpers/structure/vector_search.py,sha256=XNQsG6_-c7X6TpXjqWOdKCmqXatX1gwd0zq-hII3cz4,5782
|
|
56
|
+
openai_sdk_helpers/structure/web_search.py,sha256=8ETWc2G1eO3dWkNQrs5rsxvHHyhyG1puEYUVRNCLUYI,4572
|
|
57
|
+
openai_sdk_helpers/structure/plan/__init__.py,sha256=IGr0Tk4inN_8o7fT2N02_FTi6U6l2T9_npcQHAlBwKA,1076
|
|
58
|
+
openai_sdk_helpers/structure/plan/enum.py,sha256=seESSwH-IeeW-9BqIMUQyk3qjtchfU3TDhF9HPDB1OM,3079
|
|
59
|
+
openai_sdk_helpers/structure/plan/helpers.py,sha256=Vc6dBTMFrNWlsaCTpEImEIKjfFq4BSSxNjB4K8dywOQ,5139
|
|
60
|
+
openai_sdk_helpers/structure/plan/plan.py,sha256=CStfSfCdcv7HfLWV_G09xElJvq_kAKi_6JDkB3I7cSI,9663
|
|
61
|
+
openai_sdk_helpers/structure/plan/task.py,sha256=FSdt2OJ_arC60zMoWIUHMT3U1syWM_7svyTpOIwiRSM,4580
|
|
62
|
+
openai_sdk_helpers/structure/plan/types.py,sha256=7y9QEVdZreQUXV7n-R4RoNZzw5HeOVbJGWx9QkSfuNY,418
|
|
63
|
+
openai_sdk_helpers/utils/__init__.py,sha256=le6bj7RDCM5IQv8lh2mJ1dlnUggwhsNGM_zFYba_4PM,3670
|
|
64
|
+
openai_sdk_helpers/utils/async_utils.py,sha256=9KbPEVfi6IXdbwkTUE0h5DleK8TI7I6P_VPL8UgUv98,3689
|
|
65
|
+
openai_sdk_helpers/utils/coercion.py,sha256=Pq1u7tAbD7kTZ84lK-7Fb9CyYKKKQt4fypG5BlSI6oQ,3774
|
|
66
|
+
openai_sdk_helpers/utils/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
|
|
67
|
+
openai_sdk_helpers/utils/encoding.py,sha256=oDtlNGZ5p-edXiHW76REs-0-8NXkQNReKJdj6sHLkt8,4615
|
|
68
|
+
openai_sdk_helpers/utils/instructions.py,sha256=trbjxjxv2otQR9VmBsPFk1_CJj8nA85Sgtj_5QmQOKI,942
|
|
69
|
+
openai_sdk_helpers/utils/output_validation.py,sha256=3DC6Hr6vAFx_bQGaLsxkGN_LuKe_MugLpVogMBgG9tc,12621
|
|
70
|
+
openai_sdk_helpers/utils/path_utils.py,sha256=NOSX7553cc8LqxbnvmdYjgDBi5Le2W2LuMINwFsTzyM,1969
|
|
71
|
+
openai_sdk_helpers/utils/registry.py,sha256=qJrhPRbrw3y0gaqvsdUz2IsTRxClWZ4oLqHwhxTJjUc,5873
|
|
72
|
+
openai_sdk_helpers/utils/validation.py,sha256=ZjnZNOy5AoFlszRxarNol6YZwfgw6LnwPtkCekZmwAU,7826
|
|
73
|
+
openai_sdk_helpers/utils/json/__init__.py,sha256=wBm1DBgfy_n1uSUcnCPyqBn_cCq41mijjPigSMZJZqg,2118
|
|
74
|
+
openai_sdk_helpers/utils/json/base_model.py,sha256=8j__oKly46RRekmRjwFZjAxBHhZkIjMADcJReKo-QsQ,5100
|
|
75
|
+
openai_sdk_helpers/utils/json/data_class.py,sha256=hffMQQTNTwybuMTOtmKNzxd6kXrVyQen67F5BE_OGqE,6469
|
|
76
|
+
openai_sdk_helpers/utils/json/ref.py,sha256=jIzv3M96G1b9x2tW8JZBqKBxAsE3bUhVmMADBFH6Jb4,2806
|
|
77
|
+
openai_sdk_helpers/utils/json/utils.py,sha256=iyc25tnObqXQJWPKLZMVts932GArdKer59KuC8aQKsY,5948
|
|
78
|
+
openai_sdk_helpers/vector_storage/__init__.py,sha256=L5LxO09puh9_yBB9IDTvc1CvVkARVkHqYY1KX3inB4c,975
|
|
79
|
+
openai_sdk_helpers/vector_storage/cleanup.py,sha256=ImWIE-9lli-odD8qIARvmeaa0y8ZD4pYYP-kT0O3178,3552
|
|
80
|
+
openai_sdk_helpers/vector_storage/storage.py,sha256=A6zJDicObdSOVSlzhHVxEGq_tKO2_bNcsYi94xsKDNI,23655
|
|
81
|
+
openai_sdk_helpers/vector_storage/types.py,sha256=jTCcOYMeOpZWvcse0z4T3MVs-RBOPC-fqWTBeQrgafU,1639
|
|
82
|
+
openai_sdk_helpers-0.4.0.dist-info/METADATA,sha256=bRSOBilp9Y0zr8r2VNKSMTJHSBWoV2aH_HQw7diindo,23557
|
|
83
|
+
openai_sdk_helpers-0.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
84
|
+
openai_sdk_helpers-0.4.0.dist-info/entry_points.txt,sha256=gEOD1ZeXe8d2OP-KzUlG-b_9D9yUZTCt-GFW3EDbIIY,63
|
|
85
|
+
openai_sdk_helpers-0.4.0.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
|
|
86
|
+
openai_sdk_helpers-0.4.0.dist-info/RECORD,,
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
openai_sdk_helpers/__init__.py,sha256=rsCoQ2yB8jJmWZxbXeXTf0dPcyWJIzghCS_CVPkBWKg,4626
|
|
2
|
-
openai_sdk_helpers/cli.py,sha256=J62XKPkGgYzYHKHfnkFy53Dp4rvBXf9cPEl1hrev3ZU,7400
|
|
3
|
-
openai_sdk_helpers/config.py,sha256=pjBzjYM9Fs4DQqwio387lBt_4IwWKct_VNZBSe-bMqg,10972
|
|
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=RBYpRFamclaom07msipJ7jnnPkfVqjl1PRhDE5phZdg,1401
|
|
7
|
-
openai_sdk_helpers/errors.py,sha256=0TLrcpRXPBvk2KlrU5I1VAQl-sYy-d15h_SMDkEawvI,2757
|
|
8
|
-
openai_sdk_helpers/files_api.py,sha256=cNZObACSDX52kUvUOwanPyFqXcqRJe8D8_iB6AFqC2c,11810
|
|
9
|
-
openai_sdk_helpers/logging_config.py,sha256=JcR0FTWht1tYdwD-bXH835pr0JV0RwHfY3poruiZGHM,795
|
|
10
|
-
openai_sdk_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
openai_sdk_helpers/retry.py,sha256=J10oQYphfzDXm3BnLoXwxk7PAhN93TC2LQOv0VDGOwI,6533
|
|
12
|
-
openai_sdk_helpers/tools.py,sha256=C2xl0euovFyrDVh0qf1pEyuaicmrTmoZcJu9CxCKqic,9534
|
|
13
|
-
openai_sdk_helpers/types.py,sha256=xzldCRfwCZ3rZl18IBmfgA-PVdoZKSWNrlSIhirumSo,1451
|
|
14
|
-
openai_sdk_helpers/agent/__init__.py,sha256=giowU8jke0z0h7FFUG9V6Vssja8AYwvJMQbiMb3s64k,960
|
|
15
|
-
openai_sdk_helpers/agent/base.py,sha256=8ZkW57vL8_fYzuLr6f9kMvBChYq5lN5vQ8MMJtcWD9s,11784
|
|
16
|
-
openai_sdk_helpers/agent/config.py,sha256=htqy5bcrJeMf3rIpRdL9CKlYwyQI4po420rcgR3i8XI,1971
|
|
17
|
-
openai_sdk_helpers/agent/coordination.py,sha256=mAIEjWJ7xnagKssLCrOEn1oOp-XoqYpQOdRlZpUyw90,16610
|
|
18
|
-
openai_sdk_helpers/agent/prompt_utils.py,sha256=-1M66tqQxh9wWCFg6X-K7cCcqauca3yA04ZjvOpN3bA,337
|
|
19
|
-
openai_sdk_helpers/agent/runner.py,sha256=1_azIWx1Bcy7RRlEbizTD0LXBdYgof_tYMpDUcnJJuM,4164
|
|
20
|
-
openai_sdk_helpers/agent/summarizer.py,sha256=fH8AnYK_68ERf2U7mv0nwXL8KyhrluE-TDY_M5TCdD0,3266
|
|
21
|
-
openai_sdk_helpers/agent/translator.py,sha256=GhUuwFTBecgOO9pMQ41VPvK9mTub5DXJ_7BIS9Xp7bs,5082
|
|
22
|
-
openai_sdk_helpers/agent/utils.py,sha256=DTD5foCqGYfXf13F2bZMYIQROl7SbDSy5GDPGi0Zl-0,1089
|
|
23
|
-
openai_sdk_helpers/agent/validation.py,sha256=JIYVhBTTs0tTxYyzYgY3BHC-9psyzE3LLQDZDqpg13M,4191
|
|
24
|
-
openai_sdk_helpers/agent/search/__init__.py,sha256=xqosfzH4HcBs9IFZks9msG_694rS5q6Ea4_qNeRQRmU,798
|
|
25
|
-
openai_sdk_helpers/agent/search/base.py,sha256=EP4WCIC-IItToTFVRVpg1pj1PC5QtqheIiK1l087yRg,8613
|
|
26
|
-
openai_sdk_helpers/agent/search/vector.py,sha256=xMWhuRQENdWfLN1NTBzEjMfq1WsaGS6yn70-Xq9oFj4,13622
|
|
27
|
-
openai_sdk_helpers/agent/search/web.py,sha256=8le4xnZ3nllySqWb7rZaOq44ZR8q67c_WiE57ncmL90,10014
|
|
28
|
-
openai_sdk_helpers/enums/__init__.py,sha256=aFf79C4JBeLC3kMlJfSpehyjx5uNCtW6eK5rD6ZFfhM,322
|
|
29
|
-
openai_sdk_helpers/enums/base.py,sha256=cNllDtzcgI0_eZYXxFko14yhxwicX6xbeDfz9gFE3qo,2753
|
|
30
|
-
openai_sdk_helpers/prompt/__init__.py,sha256=MOqgKwG9KLqKudoKRlUfLxiSmdOi2aD6hNrWDFqLHkk,418
|
|
31
|
-
openai_sdk_helpers/prompt/base.py,sha256=o-O5S-et4mE30_LkFPzL3o67Z_3KrLFG55gQDlL4vqE,7575
|
|
32
|
-
openai_sdk_helpers/prompt/summarizer.jinja,sha256=jliSetWDISbql1EkWi1RB8-L_BXUg8JMkRRsPRHuzbY,309
|
|
33
|
-
openai_sdk_helpers/prompt/translator.jinja,sha256=SZhW8ipEzM-9IA4wyS_r2wIMTAclWrilmk1s46njoL0,291
|
|
34
|
-
openai_sdk_helpers/prompt/validator.jinja,sha256=6t8q_IdxFd3mVBGX6SFKNOert1Wo3YpTOji2SNEbbtE,547
|
|
35
|
-
openai_sdk_helpers/response/__init__.py,sha256=td-HTSPLtl1d5AkUFZ0rrUBUfsacM_CGtZQNj1_GWB8,1886
|
|
36
|
-
openai_sdk_helpers/response/base.py,sha256=Y77LbnNB50-CG_KPYxM6XU0lIj9pYvAQt7FzekeHhF4,30176
|
|
37
|
-
openai_sdk_helpers/response/config.py,sha256=pZgjh5GOb4juy1Afnyn28QS3yIArByU2MAJIc1_i3WM,13237
|
|
38
|
-
openai_sdk_helpers/response/files.py,sha256=ANCoedNHXmpTXSaaGUvesAGq2DIUXT7SKZDCIJlXOv8,13226
|
|
39
|
-
openai_sdk_helpers/response/messages.py,sha256=AbxLy2Q3sDHFLhhhoKfCcrRVlA8M7Ts9SuYx0PODi54,10061
|
|
40
|
-
openai_sdk_helpers/response/runner.py,sha256=Rf13cQGsR7sN9gA81Y5th1tfH2DCCAwQ6RMs3bVgjnk,4269
|
|
41
|
-
openai_sdk_helpers/response/tool_call.py,sha256=VYPvKUR-Ren0Y_nYS4jUSinhTyXKzFwQLxu-d3r_YuM,4506
|
|
42
|
-
openai_sdk_helpers/response/vector_store.py,sha256=MyHUu6P9ueNsd9erbBkyVqq3stLK6qVuehdvmFAHq9E,3074
|
|
43
|
-
openai_sdk_helpers/streamlit_app/__init__.py,sha256=RjJbnBDS5_YmAmxvaa3phB5u9UcXsXDEk_jMlY_pa5Q,793
|
|
44
|
-
openai_sdk_helpers/streamlit_app/app.py,sha256=ejJGuy5WNuUXapxlZnYkPWz0gyQdF77l-gOFOzzDtyA,17402
|
|
45
|
-
openai_sdk_helpers/streamlit_app/config.py,sha256=EK6LWACo7YIkDko1oesvupOx56cTuWWnwnXRiu8EYbs,15986
|
|
46
|
-
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=0RjB545dIvEeZiiLWM7C4CufbD3DITOWLZEVgxAL6mo,2812
|
|
47
|
-
openai_sdk_helpers/structure/__init__.py,sha256=QUvRdJMbKsumjwJdWq9ihfcOED4ZbJMBQbmA1nmYJVw,3339
|
|
48
|
-
openai_sdk_helpers/structure/agent_blueprint.py,sha256=2W-RBM5G3ZefMcYHqqoV6Y1witcSbMlUpdU1CA9n3tg,9698
|
|
49
|
-
openai_sdk_helpers/structure/base.py,sha256=i937ZjMqTcdFd8UQXcA1sv-Lz1WJZlweGd-qLdD8TQE,28322
|
|
50
|
-
openai_sdk_helpers/structure/prompt.py,sha256=7DBdLu6WDvXy2RkEBayDiX2Jn8T4-hJuohsOaKEoqJs,1075
|
|
51
|
-
openai_sdk_helpers/structure/responses.py,sha256=iYJBT_4VFifzQqPnTpRWTcB0o7xkhPIQ2ugedivrpto,4868
|
|
52
|
-
openai_sdk_helpers/structure/summary.py,sha256=MyZzMuqHP9F8B4rYYxCGJwojy5RavWUkMiRZ6yMQzvU,3143
|
|
53
|
-
openai_sdk_helpers/structure/validation.py,sha256=vsilA3Qs3fjWLeYlnZnMEGj9i_bOJtXc2J3mSIEHncg,2409
|
|
54
|
-
openai_sdk_helpers/structure/vector_search.py,sha256=A0w2AR0r6aIFoYbNkscUAGT7VzTe6WuvxrqUsWT2PMQ,5782
|
|
55
|
-
openai_sdk_helpers/structure/web_search.py,sha256=S8OdllBWqEGXaKf6Alocl89ZuG7BlvXK5ra1Lm7lfjE,4572
|
|
56
|
-
openai_sdk_helpers/structure/plan/__init__.py,sha256=IGr0Tk4inN_8o7fT2N02_FTi6U6l2T9_npcQHAlBwKA,1076
|
|
57
|
-
openai_sdk_helpers/structure/plan/enum.py,sha256=seESSwH-IeeW-9BqIMUQyk3qjtchfU3TDhF9HPDB1OM,3079
|
|
58
|
-
openai_sdk_helpers/structure/plan/helpers.py,sha256=Vc6dBTMFrNWlsaCTpEImEIKjfFq4BSSxNjB4K8dywOQ,5139
|
|
59
|
-
openai_sdk_helpers/structure/plan/plan.py,sha256=LtfwWwZiHGe06nFCXSbT8p3x3w9hhI0wXS7hTeeWXvY,9663
|
|
60
|
-
openai_sdk_helpers/structure/plan/task.py,sha256=R2MInXiOWvs5zFGVOfAhVivRxXWTBp8NrmVpZ7aUmM8,4580
|
|
61
|
-
openai_sdk_helpers/structure/plan/types.py,sha256=7y9QEVdZreQUXV7n-R4RoNZzw5HeOVbJGWx9QkSfuNY,418
|
|
62
|
-
openai_sdk_helpers/utils/__init__.py,sha256=UauMvn_2klGxXlz2Sn0RwJB1tIEkg7p0Qm9J8zaZFlM,3289
|
|
63
|
-
openai_sdk_helpers/utils/async_utils.py,sha256=9KbPEVfi6IXdbwkTUE0h5DleK8TI7I6P_VPL8UgUv98,3689
|
|
64
|
-
openai_sdk_helpers/utils/coercion.py,sha256=Pq1u7tAbD7kTZ84lK-7Fb9CyYKKKQt4fypG5BlSI6oQ,3774
|
|
65
|
-
openai_sdk_helpers/utils/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
|
|
66
|
-
openai_sdk_helpers/utils/encoding.py,sha256=oDtlNGZ5p-edXiHW76REs-0-8NXkQNReKJdj6sHLkt8,4615
|
|
67
|
-
openai_sdk_helpers/utils/json_utils.py,sha256=Z-9AugR0CbNMLXcaJk1IJ-SwGNdo_d0a3r6MqP8rbYs,7089
|
|
68
|
-
openai_sdk_helpers/utils/output_validation.py,sha256=O9Adt-fxL5DtnMd1GuZ9E2YxX3yj4uzSZuBNKVH2GkI,12152
|
|
69
|
-
openai_sdk_helpers/utils/path_utils.py,sha256=qGGDpuDnY5EODOACzH23MYECQOE2rKhrQ3sbDvefwEg,1307
|
|
70
|
-
openai_sdk_helpers/utils/validation.py,sha256=ZjnZNOy5AoFlszRxarNol6YZwfgw6LnwPtkCekZmwAU,7826
|
|
71
|
-
openai_sdk_helpers/vector_storage/__init__.py,sha256=L5LxO09puh9_yBB9IDTvc1CvVkARVkHqYY1KX3inB4c,975
|
|
72
|
-
openai_sdk_helpers/vector_storage/cleanup.py,sha256=ImWIE-9lli-odD8qIARvmeaa0y8ZD4pYYP-kT0O3178,3552
|
|
73
|
-
openai_sdk_helpers/vector_storage/storage.py,sha256=1juu3Qq6hy33afvVfQeI5A35fQzIPjVZumZ-aP_MxhU,23305
|
|
74
|
-
openai_sdk_helpers/vector_storage/types.py,sha256=jTCcOYMeOpZWvcse0z4T3MVs-RBOPC-fqWTBeQrgafU,1639
|
|
75
|
-
openai_sdk_helpers-0.2.0.dist-info/METADATA,sha256=4uIwpDW0oqwdAqsf5uhb_GmutPvrlek0pbO6G4zYVXU,23557
|
|
76
|
-
openai_sdk_helpers-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
77
|
-
openai_sdk_helpers-0.2.0.dist-info/entry_points.txt,sha256=gEOD1ZeXe8d2OP-KzUlG-b_9D9yUZTCt-GFW3EDbIIY,63
|
|
78
|
-
openai_sdk_helpers-0.2.0.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
|
|
79
|
-
openai_sdk_helpers-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|