openai-sdk-helpers 0.3.0__tar.gz → 0.4.1__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.
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/PKG-INFO +7 -7
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/README.md +6 -6
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/pyproject.toml +1 -1
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/__init__.py +6 -6
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/__init__.py +4 -4
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/base.py +254 -113
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/config.py +91 -37
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/coordination.py +64 -28
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/runner.py +16 -15
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/search/base.py +94 -45
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/search/vector.py +86 -58
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/search/web.py +71 -40
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/summarizer.py +32 -7
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/translator.py +57 -24
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/validation.py +34 -4
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/cli.py +42 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/config.py +0 -1
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/environment.py +3 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/files_api.py +35 -3
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/prompt/base.py +6 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/__init__.py +3 -3
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/base.py +142 -73
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/config.py +63 -58
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/files.py +5 -5
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/messages.py +3 -3
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/runner.py +7 -7
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/tool_call.py +94 -4
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/response/vector_store.py +3 -3
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/streamlit_app/__init__.py +4 -4
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/streamlit_app/app.py +16 -16
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/streamlit_app/config.py +82 -70
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/streamlit_app/streamlit_web_search.py +2 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/__init__.py +6 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/agent_blueprint.py +2 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/base.py +8 -99
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/plan.py +2 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/task.py +9 -9
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/prompt.py +2 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/responses.py +15 -15
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/summary.py +3 -3
- openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/structure/translation.py +32 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/validation.py +2 -2
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/vector_search.py +7 -7
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/web_search.py +6 -6
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/tools.py +41 -15
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/__init__.py +19 -5
- openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/utils/json/__init__.py +55 -0
- openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/utils/json/base_model.py +181 -0
- openai_sdk_helpers-0.3.0/src/openai_sdk_helpers/utils/json_utils.py → openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/utils/json/data_class.py +33 -68
- openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/utils/json/ref.py +113 -0
- openai_sdk_helpers-0.4.1/src/openai_sdk_helpers/utils/json/utils.py +203 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/output_validation.py +21 -1
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/path_utils.py +34 -1
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/registry.py +46 -8
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/vector_storage/storage.py +10 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/.gitignore +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/LICENSE +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/prompt_utils.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/search/__init__.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/utils.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/context_manager.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/deprecation.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/enums/__init__.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/enums/base.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/errors.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/logging_config.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/prompt/__init__.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/prompt/summarizer.jinja +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/prompt/translator.jinja +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/prompt/validator.jinja +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/py.typed +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/retry.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/__init__.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/enum.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/helpers.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/structure/plan/types.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/types.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/async_utils.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/coercion.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/deprecation.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/encoding.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/instructions.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/utils/validation.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/vector_storage/__init__.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/vector_storage/cleanup.py +0 -0
- {openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/vector_storage/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-sdk-helpers
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
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
|
|
|
@@ -242,14 +242,14 @@ when instantiating `OpenAISettings`.
|
|
|
242
242
|
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:
|
|
243
243
|
|
|
244
244
|
```python
|
|
245
|
-
from openai_sdk_helpers.response import
|
|
245
|
+
from openai_sdk_helpers.response import ResponseBase
|
|
246
246
|
from openai_sdk_helpers import OpenAISettings
|
|
247
247
|
|
|
248
248
|
# Configure OpenAI settings
|
|
249
249
|
settings = OpenAISettings.from_env()
|
|
250
250
|
|
|
251
251
|
# Create a response handler with custom instructions
|
|
252
|
-
response =
|
|
252
|
+
response = ResponseBase(
|
|
253
253
|
instructions="You are a helpful code review assistant.",
|
|
254
254
|
tools=None, # Or provide custom tool definitions
|
|
255
255
|
output_structure=None, # Or a Pydantic model for structured output
|
|
@@ -276,12 +276,12 @@ response.close()
|
|
|
276
276
|
The `response` module automatically detects file types and handles them appropriately:
|
|
277
277
|
|
|
278
278
|
```python
|
|
279
|
-
from openai_sdk_helpers.response import
|
|
279
|
+
from openai_sdk_helpers.response import ResponseBase
|
|
280
280
|
from openai_sdk_helpers import OpenAISettings
|
|
281
281
|
|
|
282
282
|
settings = OpenAISettings.from_env()
|
|
283
283
|
|
|
284
|
-
with
|
|
284
|
+
with ResponseBase(
|
|
285
285
|
name="analyzer",
|
|
286
286
|
instructions="You are a helpful assistant that can analyze files.",
|
|
287
287
|
tools=None,
|
|
@@ -515,7 +515,7 @@ These modules use the `openai-agents` SDK for high-level agent workflows with au
|
|
|
515
515
|
|
|
516
516
|
These modules use the standard `openai` SDK for direct API interactions with fine-grained control over request/response cycles.
|
|
517
517
|
|
|
518
|
-
- **`openai_sdk_helpers.response.base.
|
|
518
|
+
- **`openai_sdk_helpers.response.base.ResponseBase`**
|
|
519
519
|
Manages complete OpenAI API interaction lifecycle including input construction,
|
|
520
520
|
tool execution, message history, and structured output parsing. Uses the
|
|
521
521
|
`client.responses.create()` API (from the OpenAI Responses API, distinct from
|
|
@@ -531,7 +531,7 @@ These modules use the standard `openai` SDK for direct API interactions with fin
|
|
|
531
531
|
Centralizes OpenAI API configuration with environment variable support.
|
|
532
532
|
Creates configured OpenAI clients with consistent settings.
|
|
533
533
|
|
|
534
|
-
- **`openai_sdk_helpers.structure.
|
|
534
|
+
- **`openai_sdk_helpers.structure.StructureBase`**
|
|
535
535
|
Pydantic-based foundation for all structured outputs. Provides JSON schema
|
|
536
536
|
generation, validation, and serialization helpers.
|
|
537
537
|
|
|
@@ -33,7 +33,7 @@ from .utils.validation import (
|
|
|
33
33
|
validate_url_format,
|
|
34
34
|
)
|
|
35
35
|
from .structure import (
|
|
36
|
-
|
|
36
|
+
StructureBase,
|
|
37
37
|
SchemaOptions,
|
|
38
38
|
PlanStructure,
|
|
39
39
|
TaskStructure,
|
|
@@ -54,7 +54,7 @@ from .config import OpenAISettings
|
|
|
54
54
|
from .files_api import FilesAPIManager, FilePurpose
|
|
55
55
|
from .vector_storage import VectorStorage, VectorStorageFileInfo, VectorStorageFileStats
|
|
56
56
|
from .agent import (
|
|
57
|
-
|
|
57
|
+
AgentBase,
|
|
58
58
|
AgentConfiguration,
|
|
59
59
|
AgentEnum,
|
|
60
60
|
CoordinatorAgent,
|
|
@@ -65,7 +65,7 @@ from .agent import (
|
|
|
65
65
|
WebAgentSearch,
|
|
66
66
|
)
|
|
67
67
|
from .response import (
|
|
68
|
-
|
|
68
|
+
ResponseBase,
|
|
69
69
|
ResponseMessage,
|
|
70
70
|
ResponseMessages,
|
|
71
71
|
ResponseToolCall,
|
|
@@ -134,7 +134,7 @@ __all__ = [
|
|
|
134
134
|
"validate_choice",
|
|
135
135
|
"validate_safe_path",
|
|
136
136
|
# Main structure classes
|
|
137
|
-
"
|
|
137
|
+
"StructureBase",
|
|
138
138
|
"SchemaOptions",
|
|
139
139
|
"spec_field",
|
|
140
140
|
"PromptRenderer",
|
|
@@ -150,7 +150,7 @@ __all__ = [
|
|
|
150
150
|
"TaskStructure",
|
|
151
151
|
"PlanStructure",
|
|
152
152
|
"AgentEnum",
|
|
153
|
-
"
|
|
153
|
+
"AgentBase",
|
|
154
154
|
"AgentConfiguration",
|
|
155
155
|
"CoordinatorAgent",
|
|
156
156
|
"SummarizerAgent",
|
|
@@ -162,7 +162,7 @@ __all__ = [
|
|
|
162
162
|
"WebSearchStructure",
|
|
163
163
|
"VectorSearchStructure",
|
|
164
164
|
"ValidationResultStructure",
|
|
165
|
-
"
|
|
165
|
+
"ResponseBase",
|
|
166
166
|
"ResponseMessage",
|
|
167
167
|
"ResponseMessages",
|
|
168
168
|
"ResponseToolCall",
|
{openai_sdk_helpers-0.3.0 → openai_sdk_helpers-0.4.1}/src/openai_sdk_helpers/agent/__init__.py
RENAMED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from .base import
|
|
6
|
-
from .config import AgentConfiguration,
|
|
5
|
+
from .base import AgentBase
|
|
6
|
+
from .config import AgentConfiguration, AgentRegistry, get_default_registry
|
|
7
7
|
from ..structure.plan.enum import AgentEnum
|
|
8
8
|
from .coordination import CoordinatorAgent
|
|
9
9
|
from .runner import run_sync, run_async, run_streamed
|
|
@@ -16,9 +16,9 @@ from .search.vector import VectorSearch
|
|
|
16
16
|
from .search.web import WebAgentSearch
|
|
17
17
|
|
|
18
18
|
__all__ = [
|
|
19
|
-
"
|
|
19
|
+
"AgentBase",
|
|
20
20
|
"AgentConfiguration",
|
|
21
|
-
"
|
|
21
|
+
"AgentRegistry",
|
|
22
22
|
"get_default_registry",
|
|
23
23
|
"AgentEnum",
|
|
24
24
|
"CoordinatorAgent",
|