action :search_varieties_tool, :string do
argument :query, :string do
allow_nil?(false)
public?(true)
end
run(fn ash_query, _context ->
search_query = ash_query.arguments.query
IO.inspect(search_query, label: "AI Tool Search Query")
case embedding_search(search_query) do
{:ok, varieties} ->
# Return simplified data structure for AI
simplified_varieties =
varieties
|> Enum.take(10)
|> Enum.map(fn variety ->
struct(variety, %{
processing: Enum.join(variety.processing || [], ", "),
variety: Enum.join(variety.variety || [], ", "),
description: String.slice(variety.description || "", 0, 200)
})
end)
{:ok, simplified_varieties}
{:error, _error} ->
{:ok, []}
end
end)
end
action :search_varieties_tool, :string do
argument :query, :string do
allow_nil?(false)
public?(true)
end
run(fn ash_query, _context ->
search_query = ash_query.arguments.query
IO.inspect(search_query, label: "AI Tool Search Query")
case embedding_search(search_query) do
{:ok, varieties} ->
# Return simplified data structure for AI
simplified_varieties =
varieties
|> Enum.take(10)
|> Enum.map(fn variety ->
struct(variety, %{
processing: Enum.join(variety.processing || [], ", "),
variety: Enum.join(variety.variety || [], ", "),
description: String.slice(variety.description || "", 0, 200)
})
end)
{:ok, simplified_varieties}
{:error, _error} ->
{:ok, []}
end
end)
end