22 lines
649 B
Elixir
22 lines
649 B
Elixir
defmodule BDS.AI.ModelModality do
|
|
@moduledoc false
|
|
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
@primary_key false
|
|
|
|
schema "ai_model_modalities" do
|
|
field :provider, :string, primary_key: true
|
|
field :model_id, :string, primary_key: true
|
|
field :direction, Ecto.Enum, values: [:input, :output], primary_key: true
|
|
field :modality, Ecto.Enum, values: [:text, :image, :audio, :file, :tool], primary_key: true
|
|
end
|
|
|
|
def changeset(modality, attrs) do
|
|
modality
|
|
|> cast(attrs, [:provider, :model_id, :direction, :modality], empty_values: [nil])
|
|
|> validate_required([:provider, :model_id, :direction, :modality])
|
|
end
|
|
end
|