跳到内容

EasyTalk 模式

EasyTalk 是一个用于描述、生成和验证 JSON 模式的 Ruby 库。

基本用法

  class UserDetail
    include EasyTalk::Model

    define_schema do
      property :name, String
      property :age, Integer
    end
  end

描述即提示

关于 instructors 的核心特性之一是它能够将这些描述用作提示的一部分。

  class UserDetail
    include EasyTalk::Model

    define_schema do
      description 'Fully extracted user detail'
      property :name, String, description: 'Your full name'
      property :age, Integer
    end
  end

模型组合

EasyTalk 模型本身可以由其他模型组成。

  class Address
    include EasyTalk::Model

    define_schema do
      property :street, String
      property :city, String
    end
  end

  class UserDetail
    include EasyTalk::Model

    define_schema do
      property :name, String
      property :address, Address
    end
  end

默认值

为了帮助语言模型,我们还可以为值定义默认值。

  class UserDetail
    include EasyTalk::Model

    define_schema do
      property :name, String
      property :is_student, Boolean, default: false
    end
  end

数组

可以使用 T::Array[] 方法定义数组。

  class UserDetail
    include EasyTalk::Model

    define_schema do
      property :name, String
      property :friends, T::Array[String]
    end
  end

枚举

可以使用 enum 约束定义枚举。

  class UserDetail
    include EasyTalk::Model

    define_schema do
      property :name, String
      property :role, String, enum: %w[admin user]
    end
  end