openai-sdk-helpers 0.4.3__tar.gz → 0.5.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.4.3 → openai_sdk_helpers-0.5.1}/PKG-INFO +21 -6
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/README.md +17 -5
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/pyproject.toml +6 -2
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/__init__.py +41 -7
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/__init__.py +1 -2
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/base.py +169 -190
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/configuration.py +12 -20
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/coordinator.py +14 -17
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/runner.py +3 -45
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/base.py +49 -71
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/vector.py +82 -110
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/web.py +103 -81
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/summarizer.py +20 -28
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/translator.py +17 -23
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/validator.py +17 -23
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/errors.py +9 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/__init__.py +23 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/extractor.py +157 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/generator.py +476 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/files_api.py +1 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/logging.py +12 -1
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_agent_instructions.jinja +6 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_generator.jinja +37 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_generator_instructions.jinja +9 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_prompt_optimizer_agent_instructions.jinja +4 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_prompt_optimizer_request.jinja +11 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/__init__.py +2 -6
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/base.py +233 -164
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/configuration.py +39 -14
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/files.py +41 -2
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/runner.py +1 -48
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/response/tool_call.py +93 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/vector_store.py +8 -5
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/app.py +1 -9
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/__init__.py +16 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/base.py +239 -278
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/structure/extraction.py +1228 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/plan.py +0 -20
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/task.py +0 -33
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/prompt.py +16 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/responses.py +2 -2
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/web_search.py +0 -10
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/tools.py +569 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/__init__.py +7 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/utils/json/base_model.py +464 -0
- openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/utils/langextract.py +194 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/cleanup.py +7 -2
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/storage.py +37 -7
- openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/response/tool_call.py +0 -234
- openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/streamlit_app/streamlit_web_search.py +0 -75
- openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/tools.py +0 -322
- openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/utils/json/base_model.py +0 -181
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/.gitignore +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/LICENSE +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/utils.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/cli.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/enums/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/enums/base.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/environment.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/base.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/summarizer.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/translator.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/validator.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_planner.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_search.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_writer.jinja +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/py.typed +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/messages.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/planner.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/prompter.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/settings.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/configuration.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/agent_blueprint.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/enum.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/helpers.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/types.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/summary.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/translation.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/validation.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/vector_search.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/types.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/async_utils.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/coercion.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/encoding.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/instructions.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/data_class.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/ref.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/utils.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/output_validation.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/path_utils.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/registry.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/validation.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/__init__.py +0 -0
- {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.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.5.1
|
|
4
4
|
Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
|
|
5
5
|
Author: openai-sdk-helpers maintainers
|
|
6
6
|
License: MIT
|
|
@@ -17,6 +17,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
17
17
|
Classifier: Typing :: Typed
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Requires-Dist: jinja2
|
|
20
|
+
Requires-Dist: langextract
|
|
20
21
|
Requires-Dist: openai-agents<1.0.0,>=0.6.4
|
|
21
22
|
Requires-Dist: openai<3.0.0,>=2.14.0
|
|
22
23
|
Requires-Dist: pydantic<3,>=2.7
|
|
@@ -31,6 +32,8 @@ Requires-Dist: pyright; extra == 'dev'
|
|
|
31
32
|
Requires-Dist: pytest; extra == 'dev'
|
|
32
33
|
Requires-Dist: pytest-asyncio; extra == 'dev'
|
|
33
34
|
Requires-Dist: pytest-cov; extra == 'dev'
|
|
35
|
+
Provides-Extra: extract
|
|
36
|
+
Requires-Dist: langextract; extra == 'extract'
|
|
34
37
|
Description-Content-Type: text/markdown
|
|
35
38
|
|
|
36
39
|
<div align="center">
|
|
@@ -78,7 +81,7 @@ structures, configuration helpers, and orchestration utilities—while leaving
|
|
|
78
81
|
application-specific prompts and tools to the consuming project.
|
|
79
82
|
|
|
80
83
|
**Important**: This library integrates with **two distinct OpenAI SDKs**:
|
|
81
|
-
- **`openai-agents`** - Used by the `agent` module for high-level agent workflows with automatic tool handling
|
|
84
|
+
- **`openai-agents`** - Used by the `agent` module for high-level agent workflows with automatic tool handling
|
|
82
85
|
- **`openai`** - Used by the `response` module for direct API interactions with fine-grained control over responses
|
|
83
86
|
|
|
84
87
|
The `agent` module provides a higher-level abstraction for building agents, while the `response` module offers lower-level control for custom response handling workflows.
|
|
@@ -302,7 +305,7 @@ response.close()
|
|
|
302
305
|
```
|
|
303
306
|
|
|
304
307
|
**Key Differences:**
|
|
305
|
-
- **Agent Module**: Higher-level abstraction with
|
|
308
|
+
- **Agent Module**: Higher-level abstraction with automatic tool handling and agent-specific workflows
|
|
306
309
|
- **Response Module**: Lower-level control with manual message management, custom tool handlers, and direct API access
|
|
307
310
|
|
|
308
311
|
## Advanced Usage
|
|
@@ -327,7 +330,7 @@ with ResponseBase(
|
|
|
327
330
|
) as response:
|
|
328
331
|
# Automatic type detection - single files parameter
|
|
329
332
|
# Images are sent as base64-encoded images
|
|
330
|
-
#
|
|
333
|
+
# PDF documents are sent as base64-encoded file data
|
|
331
334
|
result = response.run_sync(
|
|
332
335
|
"Analyze these files",
|
|
333
336
|
files=["photo.jpg", "document.pdf"]
|
|
@@ -353,7 +356,8 @@ with ResponseBase(
|
|
|
353
356
|
**How It Works:**
|
|
354
357
|
|
|
355
358
|
- **Images** (jpg, png, gif, etc.) are automatically sent as base64-encoded images
|
|
356
|
-
- **Documents**
|
|
359
|
+
- **Documents** are sent as base64-encoded file data by default for PDFs only
|
|
360
|
+
- **Non-PDF documents** should use `use_vector_store=True` (or be converted to PDF)
|
|
357
361
|
- **Vector Stores** can optionally be used for documents when `use_vector_store=True`
|
|
358
362
|
- **Batch Processing** is automatically used for multiple files (>3) for efficient encoding
|
|
359
363
|
|
|
@@ -523,7 +527,7 @@ The package is organized around cohesive, reusable building blocks:
|
|
|
523
527
|
|
|
524
528
|
### Agent Modules (Built on `openai-agents` SDK)
|
|
525
529
|
|
|
526
|
-
These modules use the `openai-agents` SDK for high-level agent workflows with automatic
|
|
530
|
+
These modules use the `openai-agents` SDK for high-level agent workflows with automatic tool handling and conversation management.
|
|
527
531
|
|
|
528
532
|
- **`openai_sdk_helpers.agent.base.AgentBase`**
|
|
529
533
|
Base class for all agents with synchronous and asynchronous execution support.
|
|
@@ -585,6 +589,17 @@ These modules use the standard `openai` SDK for direct API interactions with fin
|
|
|
585
589
|
- **`openai_sdk_helpers.utils`**
|
|
586
590
|
JSON serialization helpers, logging utilities, and common validation functions.
|
|
587
591
|
|
|
592
|
+
- **`openai_sdk_helpers.utils.langextract`**
|
|
593
|
+
Adapter helpers for running LangExtract-style extractors and validating the
|
|
594
|
+
results into Pydantic models.
|
|
595
|
+
|
|
596
|
+
## Related Projects
|
|
597
|
+
|
|
598
|
+
- **[LangExtract](https://github.com/google/langextract)**
|
|
599
|
+
Google-maintained toolkit for extracting structured data from language model
|
|
600
|
+
outputs, which can complement the validation and response utilities in
|
|
601
|
+
`openai-sdk-helpers`.
|
|
602
|
+
|
|
588
603
|
## Contributing
|
|
589
604
|
|
|
590
605
|
Contributions are welcome! We appreciate functional changes accompanied by
|
|
@@ -43,7 +43,7 @@ structures, configuration helpers, and orchestration utilities—while leaving
|
|
|
43
43
|
application-specific prompts and tools to the consuming project.
|
|
44
44
|
|
|
45
45
|
**Important**: This library integrates with **two distinct OpenAI SDKs**:
|
|
46
|
-
- **`openai-agents`** - Used by the `agent` module for high-level agent workflows with automatic tool handling
|
|
46
|
+
- **`openai-agents`** - Used by the `agent` module for high-level agent workflows with automatic tool handling
|
|
47
47
|
- **`openai`** - Used by the `response` module for direct API interactions with fine-grained control over responses
|
|
48
48
|
|
|
49
49
|
The `agent` module provides a higher-level abstraction for building agents, while the `response` module offers lower-level control for custom response handling workflows.
|
|
@@ -267,7 +267,7 @@ response.close()
|
|
|
267
267
|
```
|
|
268
268
|
|
|
269
269
|
**Key Differences:**
|
|
270
|
-
- **Agent Module**: Higher-level abstraction with
|
|
270
|
+
- **Agent Module**: Higher-level abstraction with automatic tool handling and agent-specific workflows
|
|
271
271
|
- **Response Module**: Lower-level control with manual message management, custom tool handlers, and direct API access
|
|
272
272
|
|
|
273
273
|
## Advanced Usage
|
|
@@ -292,7 +292,7 @@ with ResponseBase(
|
|
|
292
292
|
) as response:
|
|
293
293
|
# Automatic type detection - single files parameter
|
|
294
294
|
# Images are sent as base64-encoded images
|
|
295
|
-
#
|
|
295
|
+
# PDF documents are sent as base64-encoded file data
|
|
296
296
|
result = response.run_sync(
|
|
297
297
|
"Analyze these files",
|
|
298
298
|
files=["photo.jpg", "document.pdf"]
|
|
@@ -318,7 +318,8 @@ with ResponseBase(
|
|
|
318
318
|
**How It Works:**
|
|
319
319
|
|
|
320
320
|
- **Images** (jpg, png, gif, etc.) are automatically sent as base64-encoded images
|
|
321
|
-
- **Documents**
|
|
321
|
+
- **Documents** are sent as base64-encoded file data by default for PDFs only
|
|
322
|
+
- **Non-PDF documents** should use `use_vector_store=True` (or be converted to PDF)
|
|
322
323
|
- **Vector Stores** can optionally be used for documents when `use_vector_store=True`
|
|
323
324
|
- **Batch Processing** is automatically used for multiple files (>3) for efficient encoding
|
|
324
325
|
|
|
@@ -488,7 +489,7 @@ The package is organized around cohesive, reusable building blocks:
|
|
|
488
489
|
|
|
489
490
|
### Agent Modules (Built on `openai-agents` SDK)
|
|
490
491
|
|
|
491
|
-
These modules use the `openai-agents` SDK for high-level agent workflows with automatic
|
|
492
|
+
These modules use the `openai-agents` SDK for high-level agent workflows with automatic tool handling and conversation management.
|
|
492
493
|
|
|
493
494
|
- **`openai_sdk_helpers.agent.base.AgentBase`**
|
|
494
495
|
Base class for all agents with synchronous and asynchronous execution support.
|
|
@@ -550,6 +551,17 @@ These modules use the standard `openai` SDK for direct API interactions with fin
|
|
|
550
551
|
- **`openai_sdk_helpers.utils`**
|
|
551
552
|
JSON serialization helpers, logging utilities, and common validation functions.
|
|
552
553
|
|
|
554
|
+
- **`openai_sdk_helpers.utils.langextract`**
|
|
555
|
+
Adapter helpers for running LangExtract-style extractors and validating the
|
|
556
|
+
results into Pydantic models.
|
|
557
|
+
|
|
558
|
+
## Related Projects
|
|
559
|
+
|
|
560
|
+
- **[LangExtract](https://github.com/google/langextract)**
|
|
561
|
+
Google-maintained toolkit for extracting structured data from language model
|
|
562
|
+
outputs, which can complement the validation and response utilities in
|
|
563
|
+
`openai-sdk-helpers`.
|
|
564
|
+
|
|
553
565
|
## Contributing
|
|
554
566
|
|
|
555
567
|
Contributions are welcome! We appreciate functional changes accompanied by
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "openai-sdk-helpers"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.5.1"
|
|
4
4
|
requires-python = ">=3.10"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
description = "Composable helpers for OpenAI SDK agents, prompts, and storage"
|
|
@@ -36,7 +36,8 @@ dependencies = [
|
|
|
36
36
|
# OpenAI functionality (tested with openai==2.14.0, openai-agents==0.6.4)
|
|
37
37
|
"openai>=2.14.0,<3.0.0",
|
|
38
38
|
"openai-agents>=0.6.4,<1.0.0",
|
|
39
|
-
|
|
39
|
+
# Language extraction
|
|
40
|
+
"langextract",
|
|
40
41
|
|
|
41
42
|
# Web UI
|
|
42
43
|
"streamlit",
|
|
@@ -57,6 +58,9 @@ dev = [
|
|
|
57
58
|
"pytest",
|
|
58
59
|
"pytest-asyncio",
|
|
59
60
|
]
|
|
61
|
+
extract = [
|
|
62
|
+
"langextract",
|
|
63
|
+
]
|
|
60
64
|
|
|
61
65
|
[build-system]
|
|
62
66
|
requires = ["hatchling"]
|
|
@@ -16,6 +16,7 @@ from .errors import (
|
|
|
16
16
|
InputValidationError,
|
|
17
17
|
AsyncExecutionError,
|
|
18
18
|
ResourceCleanupError,
|
|
19
|
+
ExtractionError,
|
|
19
20
|
)
|
|
20
21
|
|
|
21
22
|
from .utils.validation import (
|
|
@@ -40,6 +41,11 @@ from .structure import (
|
|
|
40
41
|
ExtendedSummaryStructure,
|
|
41
42
|
ValidationResultStructure,
|
|
42
43
|
AgentBlueprint,
|
|
44
|
+
AnnotatedDocumentStructure,
|
|
45
|
+
AttributeStructure,
|
|
46
|
+
DocumentStructure,
|
|
47
|
+
ExampleDataStructure,
|
|
48
|
+
ExtractionStructure,
|
|
43
49
|
create_plan,
|
|
44
50
|
execute_task,
|
|
45
51
|
execute_plan,
|
|
@@ -67,15 +73,15 @@ from .response import (
|
|
|
67
73
|
ResponseConfiguration,
|
|
68
74
|
ResponseRegistry,
|
|
69
75
|
get_default_registry,
|
|
70
|
-
parse_tool_arguments,
|
|
71
76
|
attach_vector_store,
|
|
72
77
|
)
|
|
73
78
|
from .tools import (
|
|
74
|
-
serialize_tool_result,
|
|
75
79
|
tool_handler_factory,
|
|
76
80
|
StructureType,
|
|
81
|
+
ToolHandler,
|
|
82
|
+
ToolHandlerRegistration,
|
|
77
83
|
ToolSpec,
|
|
78
|
-
|
|
84
|
+
build_tool_definition_list,
|
|
79
85
|
)
|
|
80
86
|
from .settings import build_openai_settings
|
|
81
87
|
from .utils.output_validation import (
|
|
@@ -87,7 +93,17 @@ from .utils.output_validation import (
|
|
|
87
93
|
OutputValidator,
|
|
88
94
|
validate_output,
|
|
89
95
|
)
|
|
90
|
-
|
|
96
|
+
from .utils.langextract import LangExtractAdapter, build_langextract_adapter
|
|
97
|
+
from .extract import (
|
|
98
|
+
DocumentExtractor,
|
|
99
|
+
EXTRACTOR_CONFIG_AGENT_INSTRUCTIONS,
|
|
100
|
+
EXTRACTOR_CONFIG_GENERATOR,
|
|
101
|
+
PROMPT_OPTIMIZER_AGENT_INSTRUCTIONS,
|
|
102
|
+
generate_document_extractor_config,
|
|
103
|
+
generate_document_extractor_config_with_agent,
|
|
104
|
+
optimize_extractor_prompt,
|
|
105
|
+
optimize_extractor_prompt_with_agent,
|
|
106
|
+
)
|
|
91
107
|
|
|
92
108
|
__all__ = [
|
|
93
109
|
# Environment utilities
|
|
@@ -106,6 +122,7 @@ __all__ = [
|
|
|
106
122
|
"InputValidationError",
|
|
107
123
|
"AsyncExecutionError",
|
|
108
124
|
"ResourceCleanupError",
|
|
125
|
+
"ExtractionError",
|
|
109
126
|
# Validation
|
|
110
127
|
"validate_non_empty_string",
|
|
111
128
|
"validate_max_length",
|
|
@@ -143,6 +160,11 @@ __all__ = [
|
|
|
143
160
|
"WebSearchStructure",
|
|
144
161
|
"VectorSearchStructure",
|
|
145
162
|
"ValidationResultStructure",
|
|
163
|
+
"AnnotatedDocumentStructure",
|
|
164
|
+
"AttributeStructure",
|
|
165
|
+
"DocumentStructure",
|
|
166
|
+
"ExampleDataStructure",
|
|
167
|
+
"ExtractionStructure",
|
|
146
168
|
"ResponseBase",
|
|
147
169
|
"ResponseMessage",
|
|
148
170
|
"ResponseMessages",
|
|
@@ -150,13 +172,13 @@ __all__ = [
|
|
|
150
172
|
"ResponseConfiguration",
|
|
151
173
|
"ResponseRegistry",
|
|
152
174
|
"get_default_registry",
|
|
153
|
-
"parse_tool_arguments",
|
|
154
175
|
"attach_vector_store",
|
|
155
|
-
"serialize_tool_result",
|
|
156
176
|
"tool_handler_factory",
|
|
157
177
|
"StructureType",
|
|
178
|
+
"ToolHandler",
|
|
179
|
+
"ToolHandlerRegistration",
|
|
158
180
|
"ToolSpec",
|
|
159
|
-
"
|
|
181
|
+
"build_tool_definition_list",
|
|
160
182
|
"build_openai_settings",
|
|
161
183
|
"create_plan",
|
|
162
184
|
"execute_task",
|
|
@@ -169,4 +191,16 @@ __all__ = [
|
|
|
169
191
|
"LengthValidator",
|
|
170
192
|
"OutputValidator",
|
|
171
193
|
"validate_output",
|
|
194
|
+
# LangExtract
|
|
195
|
+
"LangExtractAdapter",
|
|
196
|
+
"build_langextract_adapter",
|
|
197
|
+
# Extraction helpers
|
|
198
|
+
"DocumentExtractor",
|
|
199
|
+
"EXTRACTOR_CONFIG_AGENT_INSTRUCTIONS",
|
|
200
|
+
"EXTRACTOR_CONFIG_GENERATOR",
|
|
201
|
+
"PROMPT_OPTIMIZER_AGENT_INSTRUCTIONS",
|
|
202
|
+
"generate_document_extractor_config",
|
|
203
|
+
"generate_document_extractor_config_with_agent",
|
|
204
|
+
"optimize_extractor_prompt",
|
|
205
|
+
"optimize_extractor_prompt_with_agent",
|
|
172
206
|
]
|
{openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/__init__.py
RENAMED
|
@@ -5,7 +5,7 @@ from .base import AgentBase
|
|
|
5
5
|
from .configuration import AgentConfiguration, AgentRegistry, get_default_registry
|
|
6
6
|
from ..structure.plan.enum import AgentEnum
|
|
7
7
|
from .coordinator import CoordinatorAgent
|
|
8
|
-
from .runner import run_sync, run_async
|
|
8
|
+
from .runner import run_sync, run_async
|
|
9
9
|
from .search.base import SearchPlanner, SearchToolAgent, SearchWriter
|
|
10
10
|
from .summarizer import SummarizerAgent
|
|
11
11
|
from .translator import TranslatorAgent
|
|
@@ -23,7 +23,6 @@ __all__ = [
|
|
|
23
23
|
"CoordinatorAgent",
|
|
24
24
|
"run_sync",
|
|
25
25
|
"run_async",
|
|
26
|
-
"run_streamed",
|
|
27
26
|
"run_coroutine_agent_sync",
|
|
28
27
|
"SearchPlanner",
|
|
29
28
|
"SearchToolAgent",
|