read :semantic_search do argument :query, :string, allow_nil?: false prepare before_action(fn query, context -> case InterimIq.Embeddings.OpenAiEmbeddingModel.generate([query.arguments.query], []) do {:ok, [search_vector]} -> Ash.Query.filter( query, vector_cosine_distance(full_text_vector, ^search_vector) < 1 ) |> Ash.Query.sort([ { vector_cosine_distance( full_text_vector, ^search_vector ), :asc } ]) {:error, error} -> {:error, error} end end) end
read :semantic_search do argument :query, :string, allow_nil?: false prepare before_action(fn query, context -> case InterimIq.Embeddings.OpenAiEmbeddingModel.generate([query.arguments.query], []) do {:ok, [search_vector]} -> Ash.Query.filter( query, vector_cosine_distance(full_text_vector, ^search_vector) < 1 ) |> Ash.Query.sort([ { vector_cosine_distance( full_text_vector, ^search_vector ), :asc } ]) {:error, error} -> {:error, error} end end) end
My error
error: undefined variable "full_text_vector" lib/interim_iq/project_profile_matching/profile.ex:70:21error: misplaced operator ^search_vectorThe pin operator ^ is supported only inside matches or inside custom macros. Make sure you are inside a match or all necessary macros have been required lib/interim_iq/project_profile_matching/profile.ex:71:21
error: undefined variable "full_text_vector" lib/interim_iq/project_profile_matching/profile.ex:70:21error: misplaced operator ^search_vectorThe pin operator ^ is supported only inside matches or inside custom macros. Make sure you are inside a match or all necessary macros have been required lib/interim_iq/project_profile_matching/profile.ex:71:21
The Elixir backend framework for unparalleled productivity. Declarative tools that let you stop wasting time. Use with Phoenix LiveView or build APIs in minutes for your front-end of choice.