讲师:用 Python 实现结构化 LLM 输出

June 09, 2025

Instructor:Python 用于 LLM 结构化输出的最佳库

在人工智能飞速发展的今天,如何从大型语言模型(LLM)中提取可靠、结构化的数据,仍然是一个不小的挑战。这时,Instructor 便应运而生,作为一款领先的开源 Python 库,它专为简化这项复杂任务而设计。凭借每月超过 300 万次的下载量和活跃的社区支持,Instructor 已成为开发者们从 AI 模型中获取类型安全、经过验证且能自动重试的输出的首选解决方案。

什么是 Instructor?

Instructor 构建于强大的数据验证库 Pydantic 之上,为与 LLM 交互提供了一个直观且健壮的框架。它让开发者能够利用 Pydantic 模型精确定义所需数据的结构。这不仅确保了 LLM 输出的一致性,也使其符合预定义的模式,从而大大减少错误并提高数据质量。

主要特性:

  • 结构化输出:通过定义 Pydantic 模型,精准指定从 LLM 获取的数据格式。
  • 自动重试:内置自动重试逻辑,当验证失败时无需手动处理错误。
  • 数据验证:利用 Pydantic 强大的验证能力,保障 LLM 响应的质量和完整性。
  • 流式支持:实时处理部分响应和列表,提升应用程序的响应速度。
  • 多提供商兼容:无缝支持超过 15 种 LLM 提供商,包括 OpenAI、Anthropic、Google (Gemini)、Mistral、Cohere、Ollama、DeepSeek 等,提供统一的 API 接口。
  • 类型安全:享受完整的 IDE 支持,包括适当的类型推断和自动补全,大大提高开发效率。
  • 开源支持:可使用 Ollama、llama-cpp-pythonvLLM 等框架在本地运行任何开源模型。

快速入门:仅需三行代码提取结构化数据

使用 Instructor 入门异常简单。安装后,您几乎可以立即提取结构化数据:

import instructor
from pydantic import BaseModel
from openai import OpenAI

class Person(BaseModel):
    name: str
    age: int
    occupation: str

client = instructor.from_openai(OpenAI())
person = client.chat.completions.create(
    model="gpt-4o-mini"
原创文章: 查看原文

分享本文