为大语言模型应用添加输入输出防护的 Python 框架,并可从 LLM 输出中生成经校验的结构化数据。
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
使用 pip 安装该库
pip install instructor - 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 数据每日更新。
相关项目
7540727PythonApache-2.0更新于 7天前
一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。
4175216PythonBSD-3-Clause更新于 3天前
一个 Python 库,在生成过程中约束 LLM 输出,使其符合指定的类型、正则、JSON Schema 或语法。
1.6万907PythonApache-2.0更新于 上个月
一种紧凑、易读的 JSON 数据编码格式,用于减少向 LLM 提示词传递结构化数据时的 token 消耗。
2.6万1280TypeScriptMIT更新于 13天前
用于构建 LLM 应用和智能体的 Python 框架,提供模型、嵌入、向量库等统一接口与第三方集成。
14.8万2.5万PythonMIT更新于 前天