diff --git a/lib/music_library/application.ex b/lib/music_library/application.ex index dabb4c8c..428a6586 100644 --- a/lib/music_library/application.ex +++ b/lib/music_library/application.ex @@ -23,6 +23,7 @@ defmodule MusicLibrary.Application do {Oban, Application.fetch_env!(:music_library, Oban)}, {Ecto.Migrator, repos: Application.fetch_env!(:music_library, :ecto_repos), skip: skip_migrations?()}, + {Task.Supervisor, name: MusicLibrary.TaskSupervisor}, {Phoenix.PubSub, name: MusicLibrary.PubSub}, {LastFm.Supervisor, LastFm.Config.resolve(:music_library)}, # Start a worker by calling: MusicLibrary.Worker.start_link(arg) diff --git a/lib/music_library/record_chat.ex b/lib/music_library/record_chat.ex index e362ed9a..8385db0a 100644 --- a/lib/music_library/record_chat.ex +++ b/lib/music_library/record_chat.ex @@ -1,5 +1,5 @@ defmodule MusicLibrary.RecordChat do - alias MusicLibrary.Records.{Record, Similarity} + alias MusicLibrary.Records.Record def stream_response(messages, record, embedding_text, callback) do system_prompt = build_system_prompt(record, embedding_text) @@ -11,11 +11,7 @@ defmodule MusicLibrary.RecordChat do OpenAI.chat_stream(full_messages, on_chunk: callback) end - def get_embedding_text(record_id) do - Similarity.get_embedding_text(record_id) - end - - def build_system_prompt(%Record{} = record, embedding_text) do + defp build_system_prompt(%Record{} = record, embedding_text) do context = case embedding_text do nil -> basic_context(record) diff --git a/lib/music_library_web/components/record_chat.ex b/lib/music_library_web/components/record_chat.ex index ca30da95..689eb908 100644 --- a/lib/music_library_web/components/record_chat.ex +++ b/lib/music_library_web/components/record_chat.ex @@ -1,6 +1,8 @@ defmodule MusicLibraryWeb.Components.RecordChat do use MusicLibraryWeb, :live_component + require Logger + alias MusicLibrary.RecordChat def open(id), do: Fluxon.open_dialog(id) @@ -12,7 +14,6 @@ defmodule MusicLibraryWeb.Components.RecordChat do |> assign(:messages, []) |> assign(:current_response, "") |> assign(:loading, false) - |> assign(:embedding_text, nil) |> assign(:error, nil)} end @@ -39,21 +40,7 @@ defmodule MusicLibraryWeb.Components.RecordChat do end def update(assigns, socket) do - {:ok, - socket - |> assign(assigns) - |> maybe_load_embedding_text()} - end - - defp maybe_load_embedding_text(socket) do - if socket.assigns.embedding_text == nil and socket.assigns[:record] do - case RecordChat.get_embedding_text(socket.assigns.record.id) do - {:ok, text} -> assign(socket, :embedding_text, text) - {:error, :not_found} -> assign(socket, :embedding_text, nil) - end - else - socket - end + {:ok, assign(socket, assigns)} end @impl true @@ -144,7 +131,12 @@ defmodule MusicLibraryWeb.Components.RecordChat do