feat: finalisation (hopefully) for embedding

This commit is contained in:
2026-04-24 09:48:52 +02:00
parent 36fa08ad1e
commit b2086a79c5
7 changed files with 669 additions and 39 deletions

View File

@@ -1,6 +1,7 @@
defmodule BDS.Metadata do
@moduledoc false
alias BDS.Embeddings
alias BDS.Projects
alias BDS.Projects.Project
alias BDS.Repo
@@ -50,6 +51,7 @@ defmodule BDS.Metadata do
load_state(updated_project)
end)
|> unwrap_transaction()
|> maybe_backfill_embeddings(project_id, state, project_metadata)
end
def add_category(project_id, name) do
@@ -311,6 +313,17 @@ defmodule BDS.Metadata do
defp unwrap_transaction({:ok, result}), do: {:ok, result}
defp unwrap_transaction({:error, reason}), do: {:error, reason}
defp maybe_backfill_embeddings({:ok, _metadata} = result, project_id, previous_state, project_metadata) do
if previous_state.semantic_similarity_enabled != true and
project_metadata.semantic_similarity_enabled == true do
{:ok, _indexed_post_ids} = Embeddings.index_unindexed(project_id)
end
result
end
defp maybe_backfill_embeddings(result, _project_id, _previous_state, _project_metadata), do: result
defp attr(attrs, key) do
cond do
Map.has_key?(attrs, key) -> Map.get(attrs, key)