Include record embedding text on collection show page

This commit is contained in:
Claudio Ortolina
2026-01-19 15:24:29 +00:00
parent 7a6c1ed5ff
commit c1a7c9df44
6 changed files with 48 additions and 1 deletions
+7
View File
@@ -132,6 +132,13 @@ defmodule MusicLibrary.Records.Similarity do
end
end
def get_embedding_text(record_id) do
case Repo.get_by(RecordEmbedding, record_id: record_id) do
nil -> {:error, :not_found}
embedding -> {:ok, embedding.text_representation}
end
end
@doc """
Stores an embedding for a record.
"""
@@ -111,7 +111,19 @@ defmodule MusicLibraryWeb.CoreComponents do
~H"""
<details class="mt-4 text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300">
<summary class="text-xs sm:text-sm font-medium cursor-pointer">{@title}</summary>
<pre><code class="text-xs sm:text-sm"><%= Jason.encode!(@data, pretty: true) %></code></pre>
<pre><code class="text-xs sm:text-sm">{Jason.encode!(@data, pretty: true)}</code></pre>
</details>
"""
end
attr :title, :string, required: true
attr :data, :string, required: true
def text_viewer(assigns) do
~H"""
<details class="mt-4 text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300">
<summary class="text-xs sm:text-sm font-medium cursor-pointer">{@title}</summary>
<code class="whitespace-pre-wrap text-xs sm:text-sm">{@data}</code>
</details>
"""
end
@@ -38,6 +38,12 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
last_listened_track = Records.get_last_listened_track(record)
play_count = Records.play_count(record) || 0
embedding_text =
case Similarity.get_embedding_text(id) do
{:ok, text} -> text
{:error, _reason} -> gettext("Not available")
end
socket =
if record.selected_release_id do
socket
@@ -49,6 +55,7 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
socket
|> assign(:page_title, page_title(socket.assigns.live_action, record))
|> assign(:record, record)
|> assign(:embedding_text, embedding_text)
|> assign(:last_listened_track, last_listened_track)
|> assign(:play_count, play_count)
|> assign_similar_records()}
@@ -355,6 +355,7 @@
/>
<.json_viewer title={gettext("MusicBrainz data")} data={@record.musicbrainz_data} />
<.text_viewer title={gettext("Record Embedding")} data={@embedding_text} />
<.live_component
id="release-with-tracks"
+10
View File
@@ -1680,3 +1680,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Running optimize..."
msgstr ""
#: lib/music_library_web/live/collection_live/show.html.heex
#, elixir-autogen, elixir-format
msgid "Record Embedding"
msgstr ""
#: lib/music_library_web/live/collection_live/show.ex
#, elixir-autogen, elixir-format
msgid "Not available"
msgstr ""
+10
View File
@@ -1680,3 +1680,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Running optimize..."
msgstr ""
#: lib/music_library_web/live/collection_live/show.html.heex
#, elixir-autogen, elixir-format
msgid "Record Embedding"
msgstr ""
#: lib/music_library_web/live/collection_live/show.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Not available"
msgstr ""