Include record embedding text on collection show page
This commit is contained in:
@@ -132,6 +132,13 @@ defmodule MusicLibrary.Records.Similarity do
|
|||||||
end
|
end
|
||||||
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 """
|
@doc """
|
||||||
Stores an embedding for a record.
|
Stores an embedding for a record.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -111,7 +111,19 @@ defmodule MusicLibraryWeb.CoreComponents do
|
|||||||
~H"""
|
~H"""
|
||||||
<details class="mt-4 text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300">
|
<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>
|
<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>
|
</details>
|
||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -38,6 +38,12 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
|
|||||||
last_listened_track = Records.get_last_listened_track(record)
|
last_listened_track = Records.get_last_listened_track(record)
|
||||||
play_count = Records.play_count(record) || 0
|
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 =
|
socket =
|
||||||
if record.selected_release_id do
|
if record.selected_release_id do
|
||||||
socket
|
socket
|
||||||
@@ -49,6 +55,7 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
|
|||||||
socket
|
socket
|
||||||
|> assign(:page_title, page_title(socket.assigns.live_action, record))
|
|> assign(:page_title, page_title(socket.assigns.live_action, record))
|
||||||
|> assign(:record, record)
|
|> assign(:record, record)
|
||||||
|
|> assign(:embedding_text, embedding_text)
|
||||||
|> assign(:last_listened_track, last_listened_track)
|
|> assign(:last_listened_track, last_listened_track)
|
||||||
|> assign(:play_count, play_count)
|
|> assign(:play_count, play_count)
|
||||||
|> assign_similar_records()}
|
|> assign_similar_records()}
|
||||||
|
|||||||
@@ -355,6 +355,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<.json_viewer title={gettext("MusicBrainz data")} data={@record.musicbrainz_data} />
|
<.json_viewer title={gettext("MusicBrainz data")} data={@record.musicbrainz_data} />
|
||||||
|
<.text_viewer title={gettext("Record Embedding")} data={@embedding_text} />
|
||||||
|
|
||||||
<.live_component
|
<.live_component
|
||||||
id="release-with-tracks"
|
id="release-with-tracks"
|
||||||
|
|||||||
@@ -1680,3 +1680,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Running optimize..."
|
msgid "Running optimize..."
|
||||||
msgstr ""
|
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
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Running optimize..."
|
msgid "Running optimize..."
|
||||||
msgstr ""
|
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