Instructor-JS 开源项目教程
instructor-jsstructured extraction for llms项目地址:https://gitcode.com/gh_mirrors/in/instructor-js
项目介绍
Instructor-JS 是一个基于 TypeScript 的结构化提取工具,专为大型语言模型(LLMs)设计。它通过 OpenAI 的函数调用 API 和 Zod 进行 TypeScript 优先的 schema 验证,实现了静态类型推断。Instructor-JS 以其简单性、透明度和用户中心设计而著称,无论是经验丰富的开发者还是初学者,都能找到其直观且可控的使用方式。
项目快速启动
安装
你可以使用以下命令安装 Instructor-JS:
bun add @instructor-ai/instructor zod openai
# 或者
npm i @instructor-ai/instructor zod openai
# 或者
pnpm add @instructor-ai/instructor zod openai
基本使用
以下是一个简单的示例,展示如何使用 Instructor-JS 进行数据提取:
import { createInstructor } from '@instructor-ai/instructor';
import { z } from 'zod';
// 定义一个用户 schema
const UserSchema = z.object({
name: z.string(),
age: z.number(),
});
// 创建 Instructor 实例
const instructor = createInstructor({
client: new OpenAI(),
mode: 'function',
debug: true,
});
// 使用 Instructor 进行数据提取
async function extractUser(input: string) {
const response = await instructor.chat.completions.create({
model: 'claude-3-opus-20240229',
messages: [{ role: 'user', content: input }],
response_model: UserSchema,
});
console.log(response);
}
// 调用函数
extractUser('用户输入内容');
应用案例和最佳实践
案例一:用户信息提取
假设你需要从一个文本输入中提取用户信息,可以使用 Instructor-JS 进行结构化提取。例如,从一段文本中提取用户的姓名和年龄:
const input = '我的名字是张三,今年25岁。';
extractUser(input);
最佳实践
- 定义清晰的 Schema:确保你的 Zod schema 定义清晰且完整,以便准确提取所需信息。
- 调试模式:在开发阶段启用调试模式,以便更好地理解数据流和错误信息。
- 错误处理:在实际应用中,确保对可能的错误进行处理,以提高系统的健壮性。
典型生态项目
Zod
Zod 是一个 TypeScript 优先的 schema 验证库,广泛用于数据验证。Instructor-JS 利用 Zod 进行 schema 定义和验证,确保提取的数据符合预期格式。
OpenAI SDK
Instructor-JS 遵循 OpenAI 的 API 规范,这意味着你可以使用相同的 API 进行提示和提取,支持多个提供商。这使得 Instructor-JS 能够与 OpenAI 及其他支持 OpenAI API 的提供商无缝集成。
通过这些生态项目的支持,Instructor-JS 提供了强大的结构化提取和验证功能,适用于各种复杂的应用场景。
instructor-jsstructured extraction for llms项目地址:https://gitcode.com/gh_mirrors/in/instructor-js