This commit is contained in:
15
lib/elixir_ai/data/schemas/ai_provider_schema.ex
Normal file
15
lib/elixir_ai/data/schemas/ai_provider_schema.ex
Normal file
@@ -0,0 +1,15 @@
|
||||
defmodule ElixirAi.Data.AiProviderSchema do
|
||||
use Ecto.Schema
|
||||
|
||||
@primary_key {:id, :binary_id, autogenerate: true}
|
||||
@foreign_key_type :binary_id
|
||||
|
||||
schema "ai_providers" do
|
||||
field(:name, :string)
|
||||
field(:model_name, :string)
|
||||
field(:api_token, :string)
|
||||
field(:completions_url, :string)
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
end
|
||||
13
lib/elixir_ai/data/schemas/conversation_schema.ex
Normal file
13
lib/elixir_ai/data/schemas/conversation_schema.ex
Normal file
@@ -0,0 +1,13 @@
|
||||
defmodule ElixirAi.Data.ConversationSchema do
|
||||
use Ecto.Schema
|
||||
|
||||
@primary_key {:id, :binary_id, autogenerate: true}
|
||||
@foreign_key_type :binary_id
|
||||
|
||||
schema "conversations" do
|
||||
field(:name, :string)
|
||||
belongs_to(:ai_provider, ElixirAi.Data.AiProviderSchema, type: :binary_id)
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
end
|
||||
16
lib/elixir_ai/data/schemas/message_schema.ex
Normal file
16
lib/elixir_ai/data/schemas/message_schema.ex
Normal file
@@ -0,0 +1,16 @@
|
||||
defmodule ElixirAi.Data.MessageSchema do
|
||||
use Ecto.Schema
|
||||
|
||||
@primary_key {:id, :id, autogenerate: true}
|
||||
|
||||
schema "messages" do
|
||||
belongs_to(:conversation, ElixirAi.Data.ConversationSchema, type: :binary_id)
|
||||
field(:role, :string)
|
||||
field(:content, :string)
|
||||
field(:reasoning_content, :string)
|
||||
field(:tool_calls, :map)
|
||||
field(:tool_call_id, :string)
|
||||
|
||||
timestamps(inserted_at: :inserted_at, updated_at: false, type: :utc_datetime)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user