Include record embedding text on collection show page
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
Reference in New Issue
Block a user