Instructor 是一款专注于为大型语言模型(LLM)提供结构化输出的开源工具,旨在帮助开发者从任意主流 LLM 中获取可靠的 JSON 数据。它基于 Pydantic 构建,提供数据验证、类型安全和 IDE 支持。用户只需定义一个模型,即可获得结构化数据,无需自行处理 JSON 解析、错误处理或重试。
主要能力包括:
- 统一接口适配各大 LLM 提供商,同一套代码可切换不同模型。
- 自动重试:当验证失败时,自动携带错误信息重新请求。
- 流式支持:可流式获取部分生成的对象。
- 支持提取复杂、嵌套的数据结构。
- 基于 Pydantic 的验证、类型安全和 IDE 支持。
使用方式:通过包管理器安装后,定义 Pydantic 模型并调用 Instructor 接口即可从文本中提取结构化数据。文档提供全面指南、可复制的示例配方和博客教程。
适用场景:适合需要快速、低成本进行结构化数据提取的 schema-first 流程。若应用需要更丰富的智能体运行、内置可观测性或可分享的追踪,可考虑 PydanticAI(Pydantic 团队官方智能体运行时),它使用相同的 Pydantic 模型,并增加类型化工具、可回放数据集、评估和生产仪表板等功能。
与替代方案相比:相较于原始 JSON 模式,Instructor 提供自动验证、重试、流式和嵌套对象支持,无需手动编写 schema;相较于 LangChain/LlamaIndex,Instructor 更轻量、快速且易于调试,专注于结构化提取这一件事。
采用情况:每月下载量超过 300 万次,GitHub 星标超过 10K,社区贡献者超过 1000 人。使用 Instructor 的公司团队包括 OpenAI、Google、Microsoft、AWS 以及众多 YC 初创公司。
多语言支持:除 Python 原版外,还提供 TypeScript 完整支持以及 Ruby、Go、Elixir、Rust 实现。
项目采用 MIT 许可证。关于具体收费、价格等信息暂未提供。