Skip to main content

小型 JSON 封装,适配 OpenAI 风格的数据与自定义类型序列化

Project description

OpenAIJsonWrapper

轻量级的 OpenAI 响应解析封装。

安装

您可以直接将本项目以文件夹形式提交到仓库,或通过本地路径安装:

pip install -e .

或通过 Git 直接安装:

pip install openaijsonwrapper

打包与分发

如果您需要生成可分发的二进制包(.whl):

  1. 安装打包工具:
    pip install build
    
  2. 在项目根目录下执行打包:
    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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openaijsonwrapper-0.1.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openaijsonwrapper-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

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

Hashes for openaijsonwrapper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 41e0c4e8ad126dc0bf36a5b005b369855bf5d2cdd45972007496cb9258d32ba2
MD5 493812373e76641e6501475d3ab8c8c7
BLAKE2b-256 8df8f237d338ea3cc2d6deaaabbad465b4c24d621b2ada89d4d024dd9e0c2a20

See more details on using hashes here.

File details

Details for the file openaijsonwrapper-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openaijsonwrapper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e1b7b8dfb9f3e73d5bac641e7b58f925f71442637d018df331fcfb61af5c10d
MD5 0903c0e02e9cee1472a82f7410cae9a4
BLAKE2b-256 2b4e22fc14897b6a4d0a287b1460c9b2d42eaf45843b507349dfa0890e609301

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page