AI个人学习
和实操指南

Instructor:简化大语言模型结构化输出工作流的Python库

综合介绍

Instructor 是一个流行的 Python 库,专为处理大语言模型(LLMs)的结构化输出而设计。它基于 Pydantic 构建,提供了一个简单、透明且用户友好的 API,用于管理数据验证、重试和流式响应。Instructor 每月下载量超过一百万,广泛应用于各种 LLM 工作流中。该库支持多种编程语言,包括 Python、TypeScript、Ruby、Go 和 Elixir,能够与多种 LLM 提供商无缝集成,超越了 OpenAI 的支持范围。

推荐阅读:大模型结构化数据输出方法:精选 LLM JSON 资源列表Outlines:通过正则表达式、JSON或Pydantic模型生成结构化文本输出AI Functions:将输入内容转换为结构化输出的(API)服务


Instructor:简化大语言模型工作流的结构化输出Python库-1

 

功能列表

  • 响应模型:使用 Pydantic 模型定义 LLM 输出的结构。
  • 重试管理:轻松配置请求的重试次数。
  • 数据验证:确保 LLM 响应符合预期。
  • 流式支持:轻松处理列表和部分响应。
  • 灵活的后端:与多种 LLM 提供商无缝集成。
  • 多语言支持:支持 Python、TypeScript、Ruby、Go 和 Elixir 等多种编程语言。

 

使用帮助

安装流程

要安装 Instructor,只需运行以下命令:

pip install -U instructor

基本使用

以下是一个简单的示例,展示了如何使用 Instructor 从自然语言中提取结构化数据:

import instructor
from pydantic import BaseModel
from openai import OpenAI
# 定义所需的输出结构
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "John Doe is 30 years old."}]
)
print(user_info.name)  # 输出: John Doe
print(user_info.age)   # 输出: 30

使用钩子

Instructor 提供了一个强大的钩子系统,允许您在 LLM 交互过程的各个阶段进行拦截和日志记录。以下是一个简单的示例,展示了如何使用钩子:

import instructor
from openai import OpenAI
from pydantic import BaseModel
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 使用钩子记录交互过程
client.add_hook("before_request", lambda request: print(f"Request: {request}"))
client.add_hook("after_response", lambda response: print(f"Response: {response}"))
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "Jane Doe is 25 years old."}]
)
print(user_info.name)  # 输出: Jane Doe
print(user_info.age)   # 输出: 25

高级用法

Instructor 还支持与其他 LLM 提供商集成,并提供了灵活的配置选项。您可以根据需要自定义请求的重试次数、数据验证规则和流式响应处理方式。

CDN
未经允许不得转载:首席AI分享圈 » Instructor:简化大语言模型结构化输出工作流的Python库

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文