Logo

Instructor-js: 简化结构化数据提取的TypeScript库

instructor-js

Instructor-js: 让结构化数据提取变得简单而强大

在当今数据驱动的世界中,从非结构化文本中提取有意义的信息变得越来越重要。Instructor-js应运而生,它是一个基于TypeScript的强大库,旨在简化结构化数据提取过程。通过结合OpenAI的函数调用API和Zod(一个TypeScript优先的模式验证库),Instructor-js为开发者提供了一个简单、透明且高度可控的工具。

核心特性和优势

Instructor-js的设计理念围绕着简单性、透明度和用户控制。以下是该库的一些主要特点:

  1. OpenAI API集成:Instructor-js深度集成了OpenAI的函数调用API,使得从文本中提取结构化数据变得轻而易举。

  2. Zod模式验证:通过使用Zod,Instructor-js提供了强大的类型推断和数据验证能力,确保提取的数据符合预定义的结构。

  3. 灵活性:无论是经验丰富的开发者还是新手,都能轻松使用Instructor-js,因为它提供了直观且可定制的接口。

  4. 多提供商支持:除了OpenAI,Instructor-js还支持其他遵循OpenAI API规范的提供商,如Anthropic、Azure和Cohere等。

  5. 流式处理:支持部分流式完成,允许实时接收和处理提取的数据。

快速上手

要开始使用Instructor-js,首先需要安装必要的依赖:

npm i @instructor-ai/instructor zod openai

接下来,让我们看一个基本的使用示例:

import Instructor from "@instructor-ai/instructor";
import OpenAI from "openai"
import { z } from "zod"

const oai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY ?? undefined,
  organization: process.env.OPENAI_ORG_ID ?? undefined
})

const client = Instructor({
  client: oai,
  mode: "TOOLS"
})

const UserSchema = z.object({
  age: z.number().describe("The age of the user"),
  name: z.string()
})

const user = await client.chat.completions.create({
  messages: [{ role: "user", content: "Jason Liu is 30 years old" }],
  model: "gpt-3.5-turbo",
  response_model: { 
    schema: UserSchema, 
    name: "User"
  }
})

console.log(user)
// 输出: { age: 30, name: "Jason Liu" }

在这个例子中,我们定义了一个简单的UserSchema,然后使用Instructor-js从给定的文本中提取用户信息。这展示了Instructor-js如何轻松地将非结构化文本转换为结构化数据。

高级功能

Instructor-js不仅限于基本的数据提取,它还提供了许多高级功能:

  1. 流式处理:对于需要实时处理大量数据的应用,Instructor-js支持流式API:
const extractionStream = await client.chat.completions.create({
  messages: [{ role: "user", content: longText }],
  model: "gpt-3.5-turbo",
  response_model: {
    schema: ExtractionSchema,
    name: "Extraction"
  },
  stream: true
})

for await (const result of extractionStream) {
  console.log("Partial extraction:", result)
}
  1. 多提供商支持:通过llm-polyglot库,Instructor-js可以与多种LLM提供商集成:
import { createLLMClient } from "llm-polyglot"

const anthropicClient = createLLMClient({
  provider: "anthropic",
  apiKey: process.env.ANTHROPIC_API_KEY
})

const instructor = Instructor({
  client: anthropicClient,
  mode: "TOOLS"
})
  1. 自定义验证:利用Zod的强大功能,可以轻松添加自定义验证逻辑:
const UserSchema = z.object({
  age: z.number(),
  name: z.string().refine(name => name.includes(" "), {
    message: "Name must contain a space"
  })
})

为什么选择Instructor-js?

  1. 强大的生态系统:Instructor-js建立在Zod之上,Zod是TypeScript中最广泛使用的数据验证库之一,每月下载量超过2400万次。

  2. 类型安全:通过利用TypeScript和Zod,Instructor-js提供了出色的类型推断和静态类型检查。

  3. 社区支持:作为一个开源项目,Instructor-js得到了活跃社区的支持,确保持续的改进和维护。

  4. 跨语言支持:除了TypeScript版本,Instructor还提供了Python和Elixir的实现,方便在不同技术栈中使用。

Instructor-js Logo

结语

Instructor-js为结构化数据提取提供了一个强大而灵活的解决方案。无论您是构建聊天机器人、处理用户输入,还是分析大量文本数据,Instructor-js都能简化您的工作流程,提高效率。随着AI和机器学习在软件开发中的重要性不断增加,像Instructor-js这样的工具将成为开发者工具箱中不可或缺的一部分。

如果您正在寻找一种简单、强大且类型安全的方式来处理结构化数据提取,Instructor-js绝对值得一试。访问官方文档了解更多信息,或查看GitHub仓库以参与项目开发。让我们一起探索Instructor-js的无限可能,简化您的数据处理工作流程!

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号