instructor-rb¶
Ruby 中的结构化提取,由大型语言模型 (LLMs) 提供支持,设计简洁、透明、易于控制。
深入探索 Ruby 基于结构化提取的世界,由 OpenAI 的函数调用 API 和带有类型提示的 Ruby schema 验证提供支持。Instructor 以其简洁、透明和以用户为中心的设计而脱颖而出。无论您是经验丰富的开发者还是刚入门,您都会发现 Instructor 的方法直观且易于掌控。
您可以在 Python、Elixir、PHP 和 Ruby 中找到我们。
如果您想将 Instructor 移植到其他语言,请在 Twitter 上联系我们,我们很乐意帮助您开始!
用法¶
要查看所有关于提示和提取数据的技巧和诀窍,请查阅 文档。
安装非常简单,只需
require 'instructor-rb'
OpenAI.configure do |config|
config.access_token = ENV.fetch("OPENAI_ACCESS_TOKEN")
config.organization_id = ENV.fetch("OPENAI_ORGANIZATION_ID") # Optional.
end
class UserDetail
include EasyTalk::Model
define_schema do
property :name, String
property :age, Integer
end
end
client = Instructor.from_openai(OpenAI::Client).new
user = client.chat(
parameters: {
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: 'Extract Jason is 25 years old' }]
},
response_model: UserDetail
)
user.name
# => "Jason"
user.age
# => 25
为何使用 Instructor?¶
使用 Instructor 的问题,本质上就是为什么要使用 zod 的问题。
-
由 OpenAI 提供支持 — Instructor 由 OpenAI 的函数调用 API 提供支持。这意味着您可以使用相同的 API 进行提示和提取。
-
Ruby Schema 验证 — Instructor 使用带有类型提示的 Ruby schema 验证。这意味着您可以在使用数据之前对其进行验证。
更多示例¶
如果您想查看更多内容,请查阅我们的 使用指南。
贡献¶
如果您想提供帮助,请查看标记为 good-first-issue
或 help-wanted
的一些议题。可以在 这里 找到。可以是任何内容,例如代码改进、客座博文或新的使用指南。
许可证¶
本项目采用 MIT 许可证授权。