instructor

用Pydantic定义LLM输出,自动校验重试

Instructor 是一个 Python 库,用于让大语言模型(LLM)输出结构化数据。它通过 Pydantic 模型定义期望的输出格式,自动生成 JSON Schema 或函数调用参数,并验证模型返回的结果,从而解决 LLM 输出不可靠、格式混乱的问题。核心能力包括:支持 OpenAI、Anthropic、Cohere 等多种模型提供商;自动重试与错误修复;流式解析部分结果;与 Pydantic v2 深度集成,支持嵌套模型、枚举、日期等复杂类型。开发者只需定义数据类,即可获得类型安全、可验证的 LLM 响应,大幅简化从 LLM 提取结构化信息的流程。

开源 freemium 开发框架
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 13916
维护状态 活跃
是否开源
定价模式 freemium

项目数据

分类开发框架
开发团队567-labs
所属国家
定价模式freemium
价格说明开源库免费使用,提供付费云端服务
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型openai,openai-function-calli,openai-functions,pydantic-v2,python,validation
GitHub 星标★ 13916
30天Star增速
HF 下载量
上线时间2023-06-14 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-16
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

环境要求

  • Python 环境(Instructor 是 Python 库)
  • 已选好包管理器:pip、uv 或 poetry 之一
  • 用于调用的 LLM 提供商凭证

安装与启动步骤

  1. 1用 pip 安装

    最通用的安装方式,在已激活的虚拟环境中执行,几秒即可完成。

    pip install instructor
  2. 2或用 uv 安装

    如果你用 uv 管理依赖,用这条命令把 instructor 加入项目依赖。

    uv add instructor
  3. 3或用 poetry 安装

    Poetry 项目使用这条命令添加依赖,二选一即可,不要重复安装。

    poetry add instructor
  4. 4定义模型并调用

    用 Pydantic 定义期望结构,通过 from_provider 创建客户端并传入 response_model。

    import instructor
    from pydantic import BaseModel
    
    
    # Define what you want
    class User(BaseModel):
        name: str
        age: int
    
    
    # Extract it from natural language
    client = instructor.from_provider("openai/gpt-4o-mini")
    user = client.chat.completions.create(
        response_model=User,
        messages=[{"role": "user", "content": "John is 25 years old"}],
    )
    
    print(user)  # User(name='John', age=25)

如何确认成功

运行脚本后打印出 User(name='John', age=25) 形式的 Pydantic 对象,而非原始 JSON 字符串,即表示成功。

常见问题

Q:还需要自己解析 JSON 或写重试逻辑吗?

A:不需要。README 明确说明无需 JSON 解析、错误处理和重试,只要定义好 Pydantic 模型即可拿到结构化数据。

Q:Instructor 和 PydanticAI 该怎么选?

A:快速、低成本的结构化抽取用 Instructor;如果应用需要更丰富的 agent 运行、内置可观测性或可分享的 trace,则改用 PydanticAI。

Q:支持哪些模型提供商?

A:通过 from_provider 指定,例如 "openai/gpt-4o-mini",项目也支持 Anthropic、Cohere 等多种提供商。

Q:返回结果为什么是对象而不是字典?

A:Instructor 基于 Pydantic 做校验和类型转换,返回的是模型实例,因此可直接用属性访问并享受 IDE 类型提示。

注意事项

  • 使用前需按所选提供商要求配置对应的 API Key(README 未给出具体环境变量名,请以提供商文档为准)。
  • Instructor 定位是 schema-first 的结构化抽取,保持简单和低成本;复杂 agent 场景建议换用 PydanticAI。
  • pip、uv、poetry 三种安装方式任选其一,避免在同一环境中混用造成依赖冲突。

核心亮点

  • 基于Pydantic模型自动生成JSON Schema,无需手写提示词约束格式
  • 内置重试与错误修复机制,当模型输出不符合结构时自动重新请求
  • 支持流式解析,可边生成边获取部分结构化结果,适合实时应用

不足之处

  • 强依赖OpenAI等API的function calling能力,对本地模型支持有限
  • 文档和示例主要围绕OpenAI,其他提供商集成细节较少

适用场景

  • 从用户评论中提取情感、实体和评分等结构化信息
  • 将LLM生成的自由文本转换为数据库可存储的JSON对象
  • 构建多步骤Agent时,确保每一步的工具调用参数格式正确

替代项目

outlines、guidance

项目介绍

instructor 是一个开发框架领域的开源项目,官方简介:structured outputs for llms。项目使用 Python 开发,在 GitHub 上获得 13897 星标。

上一篇:llm

下一篇:llm-agents.nix

同类项目推荐

langchain 开源

组装 AI 应用的乐高积木,从想法到上线不换工具

The agent engineering platform.

★ 146676 2026-08-09
transformers 开源

全球最大的模型仓库全家桶,想用的模型一把抓

Transformers: the model-definition framework for state-of-the-art machine learning m···

★ 166369 2026-08-09
bruno 开源

把 API 测试当代码管理,用 Git 搞定协作与版本追踪

Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/I···

★ 47057 2026-08-12