## Summary - Fix captain response builder not getting triggered for cases where responses are created as completed. ## Testing Instructions - Test articles with firecrawl - Test articles without firecrawl - Test PDF documents --------- Co-authored-by: Pranav <pranav@chatwoot.com>
29 lines
689 B
Ruby
29 lines
689 B
Ruby
class Captain::Tools::FirecrawlParserJob < ApplicationJob
|
|
queue_as :low
|
|
|
|
def perform(assistant_id:, payload:)
|
|
assistant = Captain::Assistant.find(assistant_id)
|
|
metadata = payload[:metadata]
|
|
|
|
canonical_url = normalize_link(metadata['url'])
|
|
document = assistant.documents.find_or_initialize_by(
|
|
external_link: canonical_url
|
|
)
|
|
|
|
document.update!(
|
|
external_link: canonical_url,
|
|
content: payload[:markdown],
|
|
name: metadata['title'],
|
|
status: :available
|
|
)
|
|
rescue StandardError => e
|
|
raise "Failed to parse FireCrawl data: #{e.message}"
|
|
end
|
|
|
|
private
|
|
|
|
def normalize_link(raw_url)
|
|
raw_url.to_s.delete_suffix('/')
|
|
end
|
|
end
|