基于 Pydantic 的结构化输出库:定义一个模型类,就能拿到校验过的对象,自动处理 JSON 解析、校验失败重试、部分流式结果。做信息抽取、打标、表单填充的事实标准之一。

适用场景:从文本里抽字段、批量分类打标、把模型输出直接喂给数据库/API,不想再手写 json.loads + 一堆容错。

structured-output pydantic json extraction instructor

操作步骤

  1. pip install instructor。
  2. 用 Pydantic 定义 response_model(字段、类型、说明写清楚,说明就是给模型的提示)。
  3. 用 instructor.from_openai(OpenAI(base_url=..., api_key=...)) 包一层,其余调用方式不变。
代码示例
  import instructor
  from openai import OpenAI
  from pydantic import BaseModel
  class User(BaseModel):
      name: str
      age: int
  client = instructor.from_openai(OpenAI(base_url="https://tokenbuddy.cc/v1", api_key="{{API_KEY}}"))
  user = client.chat.completions.create(model="your-model-id", response_model=User,
      messages=[{"role": "user", "content": "John is 25 years old"}])
  print(user)  # User(name='John', age=25)

开源项目信息

接入本站 API:前提是所选模型在本站能稳定返回可解析的 JSON/工具调用;先拿本站便宜模型跑抽取,校验通过率不够再升档,不要默认用最贵模型抽字段。

注意事项

  • ⚠️ 校验失败会触发重试 = 多花钱,高吞吐场景要测延迟和成本
  • ⚠️ schema 写得含糊,模型就填得含糊——字段描述要像写给实习生
  • ⚠️ 结构正确 ≠ 内容正确,业务规则(范围、ID 是否存在)仍要自己校验

来源:https://github.com/567-labs/instructor