小型 JSON 封装,适配 OpenAI 风格的数据与自定义类型序列化
Project description
OpenAIJsonWrapper
轻量级的 OpenAI 响应解析封装。
安装
您可以直接将本项目以文件夹形式提交到仓库,或通过本地路径安装:
pip install -e .
或通过 Git 直接安装:
pip install openaijsonwrapper
打包与分发
如果您需要生成可分发的二进制包(.whl):
- 安装打包工具:
pip install build
- 在项目根目录下执行打包:
python -m build
打包完成后,在dist/目录下会生成.whl和.tar.gz文件。
功能与用法
提供一个 OpenAIJsonWrapper 对象,自动注入 System Prompt 并解析模型输出的 JSON。
基本用法
from openai import OpenAI
from openaijsonwrapper import OpenAIJsonWrapper
client = OpenAI(api_key="sk-...", base_url="...")
# 定义需要的 JSON 结构
target_structure = {
"user_info": {
"name": "string",
"age": "int",
"hobbies": ["string"]
},
"summary": "string"
}
# 初始化 Wrapper (指定模型和结构)
wrapper = OpenAIJsonWrapper(client, model="gpt-4", target_structure=target_structure)
# 正常传入 messages,框架会自动注入 System Prompt
messages = [{"role": "user", "content": "你好,我是小明,今年 18 岁,喜欢打篮球和听歌。"}]
result = wrapper.chat(messages)
# 获取解析后的结果
if not result["error"]:
print("解析后的数据:", result["data"])
print("模型的思维链/正文内容:", result["reasoning"])
else:
print("解析出错:", result["error"])
进阶功能
OpenAIJsonWrapper 支持在初始化或调用时传入 background(背景信息)和 requirements(特定需求)。
# 在初始化时定义默认配置
wrapper = OpenAIJsonWrapper(
client,
model="gpt-4o",
background="你是一个资深的简历分析专家。",
requirements=["提取内容必须客观", "年龄若未知请填 0"]
)
# 在 chat 调用时覆盖或补充配置
result = wrapper.chat(
messages,
target_structure=new_structure, # 覆盖默认结构
extra_requirements="补充一项新要求", # 补充到默认需求中
background="覆盖初始化时的背景信息" # 覆盖默认背景
)
特性
- 自动提示词注入: 自动在 System Prompt 中包含 JSON 结构定义、背景信息和需求说明。
- DeepSeek 兼容: 自动处理
</think>标记,精准分离思维链内容。 - 健壮解析: 使用正则表达式提取
```json块,具备自动容错(修复末尾逗号等)和回退提取(寻找最后一个合法的 JSON 对象/数组)能力。 - 灵活配置: 支持在实例级别或调用级别设置结构、需求和背景,支持多需求合并。
- 极简设计: 专注于 LLM 工具调用/结构化数据提取任务。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openaijsonwrapper-0.1.0.tar.gz.
File metadata
- Download URL: openaijsonwrapper-0.1.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41e0c4e8ad126dc0bf36a5b005b369855bf5d2cdd45972007496cb9258d32ba2
|
|
| MD5 |
493812373e76641e6501475d3ab8c8c7
|
|
| BLAKE2b-256 |
8df8f237d338ea3cc2d6deaaabbad465b4c24d621b2ada89d4d024dd9e0c2a20
|
File details
Details for the file openaijsonwrapper-0.1.0-py3-none-any.whl.
File metadata
- Download URL: openaijsonwrapper-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e1b7b8dfb9f3e73d5bac641e7b58f925f71442637d018df331fcfb61af5c10d
|
|
| MD5 |
0903c0e02e9cee1472a82f7410cae9a4
|
|
| BLAKE2b-256 |
2b4e22fc14897b6a4d0a287b1460c9b2d42eaf45843b507349dfa0890e609301
|