Avoid auto-categorizing without user categories (#261)

This commit is contained in:
Juan José Mata
2025-11-01 10:15:56 +01:00
committed by GitHub
parent dfe60fa07d
commit 0327552a9a
2 changed files with 14 additions and 2 deletions

View File

@@ -16,9 +16,16 @@ class Family::AutoCategorizer
Rails.logger.info("Auto-categorizing #{scope.count} transactions for family #{family.id}")
end
categories_input = user_categories_input
if categories_input.empty?
Rails.logger.error("Cannot auto-categorize transactions for family #{family.id}: no categories available")
return
end
result = llm_provider.auto_categorize(
transactions: transactions_input,
user_categories: user_categories_input,
user_categories: categories_input,
family: family
)
@@ -30,7 +37,7 @@ class Family::AutoCategorizer
scope.each do |transaction|
auto_categorization = result.data.find { |c| c.transaction_id == transaction.id }
category_id = user_categories_input.find { |c| c[:name] == auto_categorization&.category_name }&.dig(:id)
category_id = categories_input.find { |c| c[:name] == auto_categorization&.category_name }&.dig(:id)
if category_id.present?
transaction.enrich_attribute(

View File

@@ -54,6 +54,11 @@ class Provider::Openai < Provider
def auto_categorize(transactions: [], user_categories: [], model: "", family: nil)
with_provider_response do
raise Error, "Too many transactions to auto-categorize. Max is 25 per request." if transactions.size > 25
if user_categories.blank?
family_id = family&.id || "unknown"
Rails.logger.error("Cannot auto-categorize transactions for family #{family_id}: no categories available")
raise Error, "No categories available for auto-categorization"
end
effective_model = model.presence || @default_model