Instructor 使用介绍:功能、价格与上手指南

Instructor 是一个基于 Pydantic 的 Python 库,用于从大语言模型获取结构化输出。本文介绍其核心功能、价格方案和上手指南,帮助开发者快速集成。

Instructor 是一个开源的 Python 库,专门用于从大语言模型(LLM)中获取结构化、可验证的输出。它基于 Pydantic 模型定义响应格式,自动处理提示、解析和验证,让开发者无需手动编写复杂的解析逻辑。

核心功能

  • 结构化输出:通过 Pydantic 模型定义期望的 JSON 结构,Instructor 自动引导 LLM 返回符合格式的数据。
  • 自动验证与重试:当模型输出不符合模型定义时,Instructor 会自动捕获验证错误并重新请求,直到成功或达到最大重试次数。
  • 多模型支持:兼容 OpenAI、Anthropic、Google Gemini、Mistral、Ollama 等主流 LLM 提供商。
  • 流式处理:支持流式提取部分结果,适合实时应用。
  • 嵌套模型:可定义复杂的嵌套 Pydantic 模型,处理层级数据结构。

价格方案

Instructor 本身是开源库,采用 MIT 许可证,完全免费。你只需支付所调用 LLM API 的费用。官方还提供托管平台(Instructor Cloud),目前处于早期访问阶段,具体定价需联系官方。对于大多数开发者,直接使用开源版本即可。

上手指南

1. 安装

pip install instructor openai

2. 定义数据模型

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int
    email: str

3. 使用 Instructor 获取结构化输出

import instructor
from openai import OpenAI
from pydantic import BaseModel

client = instructor.from_openai(OpenAI())

class User(BaseModel):
    name: str
    age: int
    email: str

user = client.chat.completions.create(
    model="gpt-4o-mini",
    response_model=User,
    messages=[{"role": "user", "content": "提取:张三,28岁,zhangsan@example.com"}]
)
print(user)

运行后,你将获得一个已验证的 User 对象,可直接访问 user.nameuser.age 等属性。

4. 处理验证错误

Instructor 会自动重试。你也可以自定义最大重试次数:

user = client.chat.completions.create(
    model="gpt-4o-mini",
    response_model=User,
    max_retries=3,
    messages=[...]
)

适用场景

  • 从非结构化文本中提取实体(如姓名、日期、金额)
  • 构建 API 响应格式化层
  • 多步骤代理工作流中的状态管理
  • 数据清洗与转换管道

结论

Instructor 是连接 LLM 与业务逻辑的实用桥梁。它免费、易用、支持多模型,能显著减少解析和验证代码。如果你需要从 LLM 获取可靠的结构化数据,Instructor 值得一试。

返回 AI 教程列表