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.
Files changed (99) hide show
  1. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/PKG-INFO +21 -6
  2. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/README.md +17 -5
  3. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/pyproject.toml +6 -2
  4. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/__init__.py +41 -7
  5. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/__init__.py +1 -2
  6. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/base.py +169 -190
  7. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/configuration.py +12 -20
  8. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/coordinator.py +14 -17
  9. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/runner.py +3 -45
  10. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/base.py +49 -71
  11. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/vector.py +82 -110
  12. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/web.py +103 -81
  13. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/summarizer.py +20 -28
  14. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/translator.py +17 -23
  15. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/validator.py +17 -23
  16. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/errors.py +9 -0
  17. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/__init__.py +23 -0
  18. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/extractor.py +157 -0
  19. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/extract/generator.py +476 -0
  20. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/files_api.py +1 -0
  21. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/logging.py +12 -1
  22. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_agent_instructions.jinja +6 -0
  23. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_generator.jinja +37 -0
  24. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_config_generator_instructions.jinja +9 -0
  25. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_prompt_optimizer_agent_instructions.jinja +4 -0
  26. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/prompt/extractor_prompt_optimizer_request.jinja +11 -0
  27. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/__init__.py +2 -6
  28. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/base.py +233 -164
  29. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/configuration.py +39 -14
  30. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/files.py +41 -2
  31. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/runner.py +1 -48
  32. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/response/tool_call.py +93 -0
  33. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/vector_store.py +8 -5
  34. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/app.py +1 -9
  35. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/__init__.py +16 -0
  36. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/base.py +239 -278
  37. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/structure/extraction.py +1228 -0
  38. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/plan.py +0 -20
  39. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/task.py +0 -33
  40. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/prompt.py +16 -0
  41. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/responses.py +2 -2
  42. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/web_search.py +0 -10
  43. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/tools.py +569 -0
  44. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/__init__.py +7 -0
  45. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/utils/json/base_model.py +464 -0
  46. openai_sdk_helpers-0.5.1/src/openai_sdk_helpers/utils/langextract.py +194 -0
  47. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/cleanup.py +7 -2
  48. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/storage.py +37 -7
  49. openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/response/tool_call.py +0 -234
  50. openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/streamlit_app/streamlit_web_search.py +0 -75
  51. openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/tools.py +0 -322
  52. openai_sdk_helpers-0.4.3/src/openai_sdk_helpers/utils/json/base_model.py +0 -181
  53. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/.gitignore +0 -0
  54. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/LICENSE +0 -0
  55. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/search/__init__.py +0 -0
  56. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/agent/utils.py +0 -0
  57. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/cli.py +0 -0
  58. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/enums/__init__.py +0 -0
  59. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/enums/base.py +0 -0
  60. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/environment.py +0 -0
  61. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/__init__.py +0 -0
  62. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/base.py +0 -0
  63. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/summarizer.jinja +0 -0
  64. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/translator.jinja +0 -0
  65. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/validator.jinja +0 -0
  66. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_planner.jinja +0 -0
  67. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_search.jinja +0 -0
  68. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/prompt/vector_writer.jinja +0 -0
  69. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/py.typed +0 -0
  70. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/messages.py +0 -0
  71. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/planner.py +0 -0
  72. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/response/prompter.py +0 -0
  73. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/settings.py +0 -0
  74. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/__init__.py +0 -0
  75. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/streamlit_app/configuration.py +0 -0
  76. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/agent_blueprint.py +0 -0
  77. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/__init__.py +0 -0
  78. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/enum.py +0 -0
  79. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/helpers.py +0 -0
  80. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/plan/types.py +0 -0
  81. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/summary.py +0 -0
  82. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/translation.py +0 -0
  83. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/validation.py +0 -0
  84. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/structure/vector_search.py +0 -0
  85. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/types.py +0 -0
  86. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/async_utils.py +0 -0
  87. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/coercion.py +0 -0
  88. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/encoding.py +0 -0
  89. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/instructions.py +0 -0
  90. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/__init__.py +0 -0
  91. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/data_class.py +0 -0
  92. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/ref.py +0 -0
  93. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/json/utils.py +0 -0
  94. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/output_validation.py +0 -0
  95. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/path_utils.py +0 -0
  96. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/registry.py +0 -0
  97. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/utils/validation.py +0 -0
  98. {openai_sdk_helpers-0.4.3 → openai_sdk_helpers-0.5.1}/src/openai_sdk_helpers/vector_storage/__init__.py +0 -0
  99. {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.4.3
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 and streaming
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 built-in streaming, automatic tool handling, and agent-specific workflows
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
- # Documents are sent as base64-encoded file data
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** (pdf, txt, xlsx, etc.) are sent as base64-encoded file data by default
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 streaming, tool handling, and conversation management.
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 and streaming
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 built-in streaming, automatic tool handling, and agent-specific workflows
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
- # Documents are sent as base64-encoded file data
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** (pdf, txt, xlsx, etc.) are sent as base64-encoded file data by default
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 streaming, tool handling, and conversation management.
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.4.3"
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
- build_tool_definitions,
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
- "build_tool_definitions",
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
  ]
@@ -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, run_streamed
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",