Sha256: a126c3201dfb277ec1b96d51ea0b1119a1737c503522140fbe4acc024f17823c
Contents?: true
Size: 851 Bytes
Versions: 1
Compression:
Stored size: 851 Bytes
Contents
# frozen_string_literal: true require "dry-struct" require "roseflow/types" module Roseflow module Chat class Message < Dry::Struct attribute :role, Types::String attribute :content, Types::String attribute? :name, Types::String attribute? :token_count, Types::Integer def user? role == "user" end def system? role == "system" end def model? %w(system assistant).include?(role) end end class ModelMessage < Message attribute :role, Types::String.constrained(included_in: %w(system assistant)) end class UserMessage < Message attribute :role, Types::String.constrained(included_in: %w(user)) end class SystemMessage < Message attribute :role, Types::String.constrained(included_in: %w(system)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roseflow-0.1.0 | lib/roseflow/chat/message.rb |