instructor

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

开源 🏷️基础免费,高级付费 ✅ 目前可打开 开发框架 🍴 复刻 1353 🐛 待处理 242 👀 关注 53
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 14093
维护状态 较活跃
是否开源 开源
定价模式 🏷️基础免费,高级付费 支持限时试用 · 开源库免费使用,提供付费云端服务

项目预览

instructor 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队567-labs
定价模式🏷️基础免费,高级付费
价格说明开源库免费使用,提供付费云端服务
访问状态✅ 目前可打开
是否开源是
开源协议MIT
主要语言Python
技术栈/模型openai,openai-function-calli,openai-functions,pydantic-v2,python,validation
GitHub 星标★ 14093
上线时间2023-06-14 00:00:00
代码更新2026-10-26
仓库体积77.4 MB
本站数据更新2026-11-03
维护状态较活跃
收录时间2026-09-16
浏览次数1

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 14093

技术标签

使用教程

难度:入门 约 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

上一篇:llm

下一篇:llm-agents.nix

同类项目推荐

AgentVerse 开源

编排多个AI智能体,协作搞定复杂任务

Multi-Agent Collaboration Platform✨

★ 319 2026-08-09
ReAct 开源

让大模型边想边做,用工具解决复杂任务

[ICLR 2023] ReAct: Synergizing Reasoning and Acting in Language Models

★ 4263 2026-08-09
ChainForge 开源

拖拽节点,批量测试提示词,多模型效果一目了然

An open-source visual programming environment for battle-testing prompts to LLMs.

★ 3040 2026-08-09
claude-code-workflows 开源

让 Claude Code 干活不跑偏,聚焦你批准的结果。

Development workflows for Claude Code that keep broad exploration focused on the out···

★ 709 2026-08-09
gai 开源

用 Godot 搭 AI 代理,把技能串成工作流

A lightweight AI agent and skill workflow framework built with Godot.

★ 200 2026-10-13
C2C 开源

让大模型直接交换缓存,省去转文本的中间损耗

[ICLR'26] The official code implementation for "Cache-to-Cache: Direct Semantic Comm···

★ 767 2026-09-22
llm-ui 开源

用 React 快速搭建 LLM 聊天界面,流式输出开箱即用

The React library for LLMs

★ 1750 2026-08-09
copilot-agents-dojo 开源

让 Copilot 代理像资深工程师一样写代码

A behavioral governance framework for GitHub Copilot agents — skills.md and instruc···

★ 54 2026-08-09
reachat 开源

用 React 组件快速搭建 AI 聊天界面,省时又专业

UI Building Blocks for LLM/Chat UIs. Maintained by @goodcodeus.

★ 219 2026-08-09