Repolode
567-labs

567-labs/instructor

基于 Pydantic 的 Python 库,让 LLM 输出结构化、经过校验的数据,并在校验失败时自动重试。

Star
14,046
Fork
1,330
未关闭 Issue
214
最近提交
昨天

这是什么?

Instructor 让你用 Pydantic 模型定义期望的输出结构,再把 LLM 的回复直接解析为经过校验的 Python 对象,无需手写 JSON Schema 或处理原始文本。

它通过统一的 from_provider 接口封装了 OpenAI、Anthropic、Google、Ollama、Groq 等多家模型服务的调用方式。校验失败时,错误信息会回传给模型并自动重试,重试次数可通过 max_retries 配置。此外还支持流式输出部分对象,以及嵌套的数据结构。

除 Python 外,项目还提供 TypeScript、Ruby、Go、Elixir 和 Rust 等语言的实现。

核心功能

  • 01使用 Pydantic 模型定义输出结构,并返回经过校验的对象。
  • 02通过统一的 from_provider 接口接入多家 LLM 服务商。
  • 03校验失败时自动重试,并将错误信息反馈给模型。
  • 04支持流式输出,逐步返回部分生成的对象。
  • 05支持嵌套模型和模型列表。

适用场景

  • 从自由文本中抽取姓名、日期、价格等字段。
  • 将 LLM 输出转换为类型明确的数据,供后续业务代码使用。
  • 构建需要稳定 JSON 输出而不想手动解析的数据处理流程。

快速上手

  1. 1

    使用 pip 安装该库

    pip install instructor
  2. 2

    为你的提供商创建客户端并提取 Pydantic 模型

使用前须知

  • 需要 API 密钥或正在运行的 LLM 提供商(如 OpenAI、Anthropic 或本地 Ollama 服务)。

标签

常见问题

instructor 是什么?
基于 Pydantic 的 Python 库,让 LLM 输出结构化、经过校验的数据,并在校验失败时自动重试。 Instructor 让你用 Pydantic 模型定义期望的输出结构,再把 LLM 的回复直接解析为经过校验的 Python 对象,无需手写 JSON Schema 或处理原始文本。
instructor 可以免费使用吗?用的什么许可证?
instructor 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
instructor 还在维护吗?
活跃维护中。instructor 最近一次提交是在 2026年10月20日。
instructor 适合用来做什么?
从自由文本中抽取姓名、日期、价格等字段。 将 LLM 输出转换为类型明确的数据,供后续业务代码使用。 构建需要稳定 JSON 输出而不想手动解析的数据处理流程。
instructor 怎么安装和运行?
使用 pip 安装该库: pip install instructor 为你的提供商创建客户端并提取 Pydantic 模型
在哪里获取 instructor?
源代码和安装说明在 GitHub 上:https://github.com/567-labs/instructor

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目