openai-sdk-helpers 0.1.0__py3-none-any.whl → 0.1.1__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 +41 -7
- openai_sdk_helpers/agent/base.py +5 -1
- openai_sdk_helpers/agent/coordination.py +4 -5
- openai_sdk_helpers/agent/runner.py +4 -1
- openai_sdk_helpers/agent/search/base.py +1 -0
- openai_sdk_helpers/agent/search/vector.py +2 -0
- openai_sdk_helpers/cli.py +265 -0
- openai_sdk_helpers/config.py +93 -2
- openai_sdk_helpers/context_manager.py +1 -1
- openai_sdk_helpers/deprecation.py +167 -0
- openai_sdk_helpers/environment.py +3 -2
- openai_sdk_helpers/errors.py +0 -12
- openai_sdk_helpers/logging_config.py +24 -95
- openai_sdk_helpers/prompt/base.py +1 -1
- openai_sdk_helpers/response/base.py +84 -115
- openai_sdk_helpers/response/messages.py +1 -0
- openai_sdk_helpers/retry.py +1 -1
- openai_sdk_helpers/streamlit_app/app.py +14 -3
- openai_sdk_helpers/streamlit_app/streamlit_web_search.py +15 -8
- openai_sdk_helpers/structure/base.py +6 -6
- openai_sdk_helpers/structure/plan/helpers.py +1 -0
- openai_sdk_helpers/structure/plan/task.py +7 -7
- openai_sdk_helpers/tools.py +116 -13
- openai_sdk_helpers/utils/__init__.py +82 -35
- openai_sdk_helpers/{async_utils.py → utils/async_utils.py} +5 -6
- openai_sdk_helpers/utils/coercion.py +138 -0
- openai_sdk_helpers/utils/deprecation.py +167 -0
- openai_sdk_helpers/utils/json_utils.py +98 -0
- openai_sdk_helpers/utils/output_validation.py +448 -0
- openai_sdk_helpers/utils/path_utils.py +46 -0
- openai_sdk_helpers/{validation.py → utils/validation.py} +7 -3
- openai_sdk_helpers/vector_storage/storage.py +9 -6
- {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/METADATA +59 -3
- {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/RECORD +37 -30
- openai_sdk_helpers-0.1.1.dist-info/entry_points.txt +2 -0
- openai_sdk_helpers/utils/core.py +0 -596
- {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/WHEEL +0 -0
- {openai_sdk_helpers-0.1.0.dist-info → openai_sdk_helpers-0.1.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-sdk-helpers
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Composable helpers for OpenAI SDK agents, prompts, and storage
|
|
5
5
|
Author: openai-sdk-helpers maintainers
|
|
6
6
|
License: MIT
|
|
7
7
|
License-File: LICENSE
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
17
|
+
Classifier: Typing :: Typed
|
|
8
18
|
Requires-Python: >=3.10
|
|
9
19
|
Requires-Dist: jinja2
|
|
10
|
-
Requires-Dist: openai
|
|
11
|
-
Requires-Dist: openai
|
|
20
|
+
Requires-Dist: openai-agents<1.0.0,>=0.6.4
|
|
21
|
+
Requires-Dist: openai<3.0.0,>=2.14.0
|
|
12
22
|
Requires-Dist: pydantic<3,>=2.7
|
|
13
23
|
Requires-Dist: python-dotenv
|
|
14
24
|
Requires-Dist: streamlit
|
|
@@ -90,6 +100,26 @@ The `agent` module provides a higher-level abstraction for building agents, whil
|
|
|
90
100
|
- **Tool execution framework** with custom handlers and structured outputs
|
|
91
101
|
- **Session persistence** for saving and restoring conversation history
|
|
92
102
|
|
|
103
|
+
#### Infrastructure & Utilities
|
|
104
|
+
- **Centralized logger factory** for consistent application logging
|
|
105
|
+
- **Retry patterns** with exponential backoff and jitter
|
|
106
|
+
- **Output validation** framework with JSON schema, semantic, and length validators
|
|
107
|
+
- **CLI tool** for testing agents, validating templates, and inspecting registries
|
|
108
|
+
- **Deprecation utilities** for managing API changes
|
|
109
|
+
|
|
110
|
+
#### Shared Components
|
|
111
|
+
- **Typed structures** using Pydantic for prompts, responses, and search workflows
|
|
112
|
+
to ensure predictable inputs and outputs
|
|
113
|
+
- **OpenAI configuration management** with environment variable and `.env` file support
|
|
114
|
+
- **Vector storage abstraction** for seamless integration with OpenAI vector stores
|
|
115
|
+
- **Type-safe interfaces** with full type hints and `py.typed` marker for external projects
|
|
116
|
+
- **ValidatorAgent**: Check inputs and outputs against safety guardrails
|
|
117
|
+
|
|
118
|
+
#### Response Module (Built on `openai` SDK)
|
|
119
|
+
- **Response handling utilities** for direct API control with fine-grained message management
|
|
120
|
+
- **Tool execution framework** with custom handlers and structured outputs
|
|
121
|
+
- **Session persistence** for saving and restoring conversation history
|
|
122
|
+
|
|
93
123
|
#### Shared Components
|
|
94
124
|
- **Typed structures** using Pydantic for prompts, responses, and search workflows
|
|
95
125
|
to ensure predictable inputs and outputs
|
|
@@ -502,6 +532,31 @@ See `AGENTS.md` for detailed contributing guidelines and conventions.
|
|
|
502
532
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
503
533
|
for details.
|
|
504
534
|
|
|
535
|
+
## CLI Tool
|
|
536
|
+
|
|
537
|
+
The package includes a command-line tool for development and testing:
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
# List all registered response configurations
|
|
541
|
+
openai-helpers registry list
|
|
542
|
+
|
|
543
|
+
# Inspect a specific configuration
|
|
544
|
+
openai-helpers registry inspect my_config
|
|
545
|
+
|
|
546
|
+
# Validate Jinja2 templates
|
|
547
|
+
openai-helpers template validate ./templates
|
|
548
|
+
|
|
549
|
+
# Test an agent (coming soon)
|
|
550
|
+
openai-helpers agent test MyAgent --input "test input"
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### CLI Commands
|
|
554
|
+
|
|
555
|
+
- **registry list** - Show all registered response configurations
|
|
556
|
+
- **registry inspect** - Display details of a configuration
|
|
557
|
+
- **template validate** - Check template syntax and structure
|
|
558
|
+
- **agent test** - Test agents locally with sample inputs
|
|
559
|
+
|
|
505
560
|
## Troubleshooting
|
|
506
561
|
|
|
507
562
|
### Common Issues
|
|
@@ -523,6 +578,7 @@ OPENAI_API_KEY=your-api-key-here
|
|
|
523
578
|
Vector search workflows require custom prompt templates. Either:
|
|
524
579
|
1. Create the required `.jinja` files in your `prompt_dir`
|
|
525
580
|
2. Omit the `prompt_dir` parameter to use built-in defaults (for text agents only)
|
|
581
|
+
3. Use the CLI to validate templates: `openai-helpers template validate ./templates`
|
|
526
582
|
|
|
527
583
|
**Import errors after installation**
|
|
528
584
|
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
openai_sdk_helpers/__init__.py,sha256=
|
|
2
|
-
openai_sdk_helpers/
|
|
3
|
-
openai_sdk_helpers/config.py,sha256=
|
|
4
|
-
openai_sdk_helpers/context_manager.py,sha256=
|
|
5
|
-
openai_sdk_helpers/
|
|
6
|
-
openai_sdk_helpers/
|
|
7
|
-
openai_sdk_helpers/
|
|
1
|
+
openai_sdk_helpers/__init__.py,sha256=7UoioqeijT413TbjSjiAl64vKgJcQkY067OEpSDTdbU,4532
|
|
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/logging_config.py,sha256=JcR0FTWht1tYdwD-bXH835pr0JV0RwHfY3poruiZGHM,795
|
|
8
9
|
openai_sdk_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
openai_sdk_helpers/retry.py,sha256=
|
|
10
|
-
openai_sdk_helpers/tools.py,sha256=
|
|
10
|
+
openai_sdk_helpers/retry.py,sha256=J10oQYphfzDXm3BnLoXwxk7PAhN93TC2LQOv0VDGOwI,6533
|
|
11
|
+
openai_sdk_helpers/tools.py,sha256=C2xl0euovFyrDVh0qf1pEyuaicmrTmoZcJu9CxCKqic,9534
|
|
11
12
|
openai_sdk_helpers/types.py,sha256=xzldCRfwCZ3rZl18IBmfgA-PVdoZKSWNrlSIhirumSo,1451
|
|
12
|
-
openai_sdk_helpers/validation.py,sha256=fr3zVZ7uEokJJqF3LSIcQm4wV3MvWXcep2ZRpseXZBk,7789
|
|
13
13
|
openai_sdk_helpers/agent/__init__.py,sha256=giowU8jke0z0h7FFUG9V6Vssja8AYwvJMQbiMb3s64k,960
|
|
14
|
-
openai_sdk_helpers/agent/base.py,sha256=
|
|
14
|
+
openai_sdk_helpers/agent/base.py,sha256=8ZkW57vL8_fYzuLr6f9kMvBChYq5lN5vQ8MMJtcWD9s,11784
|
|
15
15
|
openai_sdk_helpers/agent/config.py,sha256=htqy5bcrJeMf3rIpRdL9CKlYwyQI4po420rcgR3i8XI,1971
|
|
16
|
-
openai_sdk_helpers/agent/coordination.py,sha256=
|
|
16
|
+
openai_sdk_helpers/agent/coordination.py,sha256=knhQtOyQGGkqKb6Q-pWSRwrVW0qJcVvxelinIctNs-A,16152
|
|
17
17
|
openai_sdk_helpers/agent/prompt_utils.py,sha256=-1M66tqQxh9wWCFg6X-K7cCcqauca3yA04ZjvOpN3bA,337
|
|
18
|
-
openai_sdk_helpers/agent/runner.py,sha256=
|
|
18
|
+
openai_sdk_helpers/agent/runner.py,sha256=1_azIWx1Bcy7RRlEbizTD0LXBdYgof_tYMpDUcnJJuM,4164
|
|
19
19
|
openai_sdk_helpers/agent/summarizer.py,sha256=fH8AnYK_68ERf2U7mv0nwXL8KyhrluE-TDY_M5TCdD0,3266
|
|
20
20
|
openai_sdk_helpers/agent/translator.py,sha256=GhUuwFTBecgOO9pMQ41VPvK9mTub5DXJ_7BIS9Xp7bs,5082
|
|
21
21
|
openai_sdk_helpers/agent/utils.py,sha256=DTD5foCqGYfXf13F2bZMYIQROl7SbDSy5GDPGi0Zl-0,1089
|
|
22
22
|
openai_sdk_helpers/agent/validation.py,sha256=JIYVhBTTs0tTxYyzYgY3BHC-9psyzE3LLQDZDqpg13M,4191
|
|
23
23
|
openai_sdk_helpers/agent/search/__init__.py,sha256=xqosfzH4HcBs9IFZks9msG_694rS5q6Ea4_qNeRQRmU,798
|
|
24
|
-
openai_sdk_helpers/agent/search/base.py,sha256=
|
|
25
|
-
openai_sdk_helpers/agent/search/vector.py,sha256=
|
|
24
|
+
openai_sdk_helpers/agent/search/base.py,sha256=EP4WCIC-IItToTFVRVpg1pj1PC5QtqheIiK1l087yRg,8613
|
|
25
|
+
openai_sdk_helpers/agent/search/vector.py,sha256=xMWhuRQENdWfLN1NTBzEjMfq1WsaGS6yn70-Xq9oFj4,13622
|
|
26
26
|
openai_sdk_helpers/agent/search/web.py,sha256=8le4xnZ3nllySqWb7rZaOq44ZR8q67c_WiE57ncmL90,10014
|
|
27
27
|
openai_sdk_helpers/enums/__init__.py,sha256=aFf79C4JBeLC3kMlJfSpehyjx5uNCtW6eK5rD6ZFfhM,322
|
|
28
28
|
openai_sdk_helpers/enums/base.py,sha256=cNllDtzcgI0_eZYXxFko14yhxwicX6xbeDfz9gFE3qo,2753
|
|
29
29
|
openai_sdk_helpers/prompt/__init__.py,sha256=MOqgKwG9KLqKudoKRlUfLxiSmdOi2aD6hNrWDFqLHkk,418
|
|
30
|
-
openai_sdk_helpers/prompt/base.py,sha256=
|
|
30
|
+
openai_sdk_helpers/prompt/base.py,sha256=o-O5S-et4mE30_LkFPzL3o67Z_3KrLFG55gQDlL4vqE,7575
|
|
31
31
|
openai_sdk_helpers/prompt/summarizer.jinja,sha256=jliSetWDISbql1EkWi1RB8-L_BXUg8JMkRRsPRHuzbY,309
|
|
32
32
|
openai_sdk_helpers/prompt/translator.jinja,sha256=SZhW8ipEzM-9IA4wyS_r2wIMTAclWrilmk1s46njoL0,291
|
|
33
33
|
openai_sdk_helpers/prompt/validator.jinja,sha256=6t8q_IdxFd3mVBGX6SFKNOert1Wo3YpTOji2SNEbbtE,547
|
|
34
34
|
openai_sdk_helpers/response/__init__.py,sha256=eoQF086o3OZYmVfJWXhSpYlPhQBb-VLDA5hvw7guLEc,1741
|
|
35
|
-
openai_sdk_helpers/response/base.py,sha256
|
|
35
|
+
openai_sdk_helpers/response/base.py,sha256=zxQQRKmmpzYPmw0aqIgwKry713gYmMLkA8jhSKIoyHY,26207
|
|
36
36
|
openai_sdk_helpers/response/config.py,sha256=WheEWkTxNFHL54_yvFY3M0LclNmajwTiMftSFeAH2eI,10300
|
|
37
|
-
openai_sdk_helpers/response/messages.py,sha256=
|
|
37
|
+
openai_sdk_helpers/response/messages.py,sha256=G4V8a9gis4b8wFW5XnvBE0AHMX0FrkOzqiQ6FxigpnU,9145
|
|
38
38
|
openai_sdk_helpers/response/runner.py,sha256=Rf13cQGsR7sN9gA81Y5th1tfH2DCCAwQ6RMs3bVgjnk,4269
|
|
39
39
|
openai_sdk_helpers/response/tool_call.py,sha256=VYPvKUR-Ren0Y_nYS4jUSinhTyXKzFwQLxu-d3r_YuM,4506
|
|
40
40
|
openai_sdk_helpers/response/vector_store.py,sha256=MyHUu6P9ueNsd9erbBkyVqq3stLK6qVuehdvmFAHq9E,3074
|
|
41
41
|
openai_sdk_helpers/streamlit_app/__init__.py,sha256=RjJbnBDS5_YmAmxvaa3phB5u9UcXsXDEk_jMlY_pa5Q,793
|
|
42
|
-
openai_sdk_helpers/streamlit_app/app.py,sha256=
|
|
42
|
+
openai_sdk_helpers/streamlit_app/app.py,sha256=MBMtzZk3ywEccLHfy3K--pmKNGTBHw_PpQjIBeXzqtI,11099
|
|
43
43
|
openai_sdk_helpers/streamlit_app/config.py,sha256=EK6LWACo7YIkDko1oesvupOx56cTuWWnwnXRiu8EYbs,15986
|
|
44
|
-
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=
|
|
44
|
+
openai_sdk_helpers/streamlit_app/streamlit_web_search.py,sha256=0RjB545dIvEeZiiLWM7C4CufbD3DITOWLZEVgxAL6mo,2812
|
|
45
45
|
openai_sdk_helpers/structure/__init__.py,sha256=QUvRdJMbKsumjwJdWq9ihfcOED4ZbJMBQbmA1nmYJVw,3339
|
|
46
46
|
openai_sdk_helpers/structure/agent_blueprint.py,sha256=2W-RBM5G3ZefMcYHqqoV6Y1witcSbMlUpdU1CA9n3tg,9698
|
|
47
|
-
openai_sdk_helpers/structure/base.py,sha256=
|
|
47
|
+
openai_sdk_helpers/structure/base.py,sha256=i937ZjMqTcdFd8UQXcA1sv-Lz1WJZlweGd-qLdD8TQE,28322
|
|
48
48
|
openai_sdk_helpers/structure/prompt.py,sha256=7DBdLu6WDvXy2RkEBayDiX2Jn8T4-hJuohsOaKEoqJs,1075
|
|
49
49
|
openai_sdk_helpers/structure/responses.py,sha256=iYJBT_4VFifzQqPnTpRWTcB0o7xkhPIQ2ugedivrpto,4868
|
|
50
50
|
openai_sdk_helpers/structure/summary.py,sha256=MyZzMuqHP9F8B4rYYxCGJwojy5RavWUkMiRZ6yMQzvU,3143
|
|
@@ -53,17 +53,24 @@ openai_sdk_helpers/structure/vector_search.py,sha256=A0w2AR0r6aIFoYbNkscUAGT7VzT
|
|
|
53
53
|
openai_sdk_helpers/structure/web_search.py,sha256=S8OdllBWqEGXaKf6Alocl89ZuG7BlvXK5ra1Lm7lfjE,4572
|
|
54
54
|
openai_sdk_helpers/structure/plan/__init__.py,sha256=IGr0Tk4inN_8o7fT2N02_FTi6U6l2T9_npcQHAlBwKA,1076
|
|
55
55
|
openai_sdk_helpers/structure/plan/enum.py,sha256=seESSwH-IeeW-9BqIMUQyk3qjtchfU3TDhF9HPDB1OM,3079
|
|
56
|
-
openai_sdk_helpers/structure/plan/helpers.py,sha256=
|
|
56
|
+
openai_sdk_helpers/structure/plan/helpers.py,sha256=Vc6dBTMFrNWlsaCTpEImEIKjfFq4BSSxNjB4K8dywOQ,5139
|
|
57
57
|
openai_sdk_helpers/structure/plan/plan.py,sha256=LtfwWwZiHGe06nFCXSbT8p3x3w9hhI0wXS7hTeeWXvY,9663
|
|
58
|
-
openai_sdk_helpers/structure/plan/task.py,sha256=
|
|
58
|
+
openai_sdk_helpers/structure/plan/task.py,sha256=R2MInXiOWvs5zFGVOfAhVivRxXWTBp8NrmVpZ7aUmM8,4580
|
|
59
59
|
openai_sdk_helpers/structure/plan/types.py,sha256=7y9QEVdZreQUXV7n-R4RoNZzw5HeOVbJGWx9QkSfuNY,418
|
|
60
|
-
openai_sdk_helpers/utils/__init__.py,sha256=
|
|
61
|
-
openai_sdk_helpers/utils/
|
|
60
|
+
openai_sdk_helpers/utils/__init__.py,sha256=N4jHd0QXaqU7aDBYraRoXas-MG1_CKm8uU1HdPVDS_k,2875
|
|
61
|
+
openai_sdk_helpers/utils/async_utils.py,sha256=9KbPEVfi6IXdbwkTUE0h5DleK8TI7I6P_VPL8UgUv98,3689
|
|
62
|
+
openai_sdk_helpers/utils/coercion.py,sha256=Pq1u7tAbD7kTZ84lK-7Fb9CyYKKKQt4fypG5BlSI6oQ,3774
|
|
63
|
+
openai_sdk_helpers/utils/deprecation.py,sha256=VF0VDDegawYhsu5f-vE6dop9ob-jv8egxsm0KsPvP9E,4753
|
|
64
|
+
openai_sdk_helpers/utils/json_utils.py,sha256=dpv0IPZp4WKL7HsDAQY2za820ukn0cre6kAv-pYw7P0,3141
|
|
65
|
+
openai_sdk_helpers/utils/output_validation.py,sha256=O9Adt-fxL5DtnMd1GuZ9E2YxX3yj4uzSZuBNKVH2GkI,12152
|
|
66
|
+
openai_sdk_helpers/utils/path_utils.py,sha256=qGGDpuDnY5EODOACzH23MYECQOE2rKhrQ3sbDvefwEg,1307
|
|
67
|
+
openai_sdk_helpers/utils/validation.py,sha256=ZjnZNOy5AoFlszRxarNol6YZwfgw6LnwPtkCekZmwAU,7826
|
|
62
68
|
openai_sdk_helpers/vector_storage/__init__.py,sha256=L5LxO09puh9_yBB9IDTvc1CvVkARVkHqYY1KX3inB4c,975
|
|
63
69
|
openai_sdk_helpers/vector_storage/cleanup.py,sha256=ImWIE-9lli-odD8qIARvmeaa0y8ZD4pYYP-kT0O3178,3552
|
|
64
|
-
openai_sdk_helpers/vector_storage/storage.py,sha256=
|
|
70
|
+
openai_sdk_helpers/vector_storage/storage.py,sha256=pRUPssHH_o-ydijGW8U9XC2Lu06HEO0KnrNd3X9_Qc0,21807
|
|
65
71
|
openai_sdk_helpers/vector_storage/types.py,sha256=jTCcOYMeOpZWvcse0z4T3MVs-RBOPC-fqWTBeQrgafU,1639
|
|
66
|
-
openai_sdk_helpers-0.1.
|
|
67
|
-
openai_sdk_helpers-0.1.
|
|
68
|
-
openai_sdk_helpers-0.1.
|
|
69
|
-
openai_sdk_helpers-0.1.
|
|
72
|
+
openai_sdk_helpers-0.1.1.dist-info/METADATA,sha256=tFCRcJgKKEpRRDYFVYUSHwJ7GBKVtnK2h7x8MzopFMU,20927
|
|
73
|
+
openai_sdk_helpers-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
74
|
+
openai_sdk_helpers-0.1.1.dist-info/entry_points.txt,sha256=gEOD1ZeXe8d2OP-KzUlG-b_9D9yUZTCt-GFW3EDbIIY,63
|
|
75
|
+
openai_sdk_helpers-0.1.1.dist-info/licenses/LICENSE,sha256=CUhc1NrE50bs45tcXF7OcTQBKEvkUuLqeOHgrWQ5jaA,1067
|
|
76
|
+
openai_sdk_helpers-0.1.1.dist-info/RECORD,,
|