66 lines
1.8 KiB
Ruby
66 lines
1.8 KiB
Ruby
# Usage: rails runner scripts/debug_faq_flow.rb
|
|
|
|
puts '--- START DEBUG FAQ FLOW ---'
|
|
|
|
account = Account.first
|
|
assistant = Captain::Assistant.first || Captain::Assistant.create!(
|
|
account: account,
|
|
name: 'Debug Assistant',
|
|
llm_provider: 'openai',
|
|
llm_model: 'gpt-4o-mini',
|
|
api_key: 'sk-debug'
|
|
)
|
|
user = User.first
|
|
|
|
puts "Account: #{account.name} (ID: #{account.id})"
|
|
puts "Assistant: #{assistant.name} (ID: #{assistant.id})"
|
|
|
|
# 1. Create FAQ
|
|
puts "\n--- 1. Creating FAQ ---"
|
|
faq_question = 'Qual o telefone da unidade debug?'
|
|
faq_answer = 'O telefone é 9999-8888'
|
|
|
|
current_faq = assistant.responses.find_by(question: faq_question)
|
|
current_faq&.destroy
|
|
|
|
faq = assistant.responses.create!(
|
|
question: faq_question,
|
|
answer: faq_answer,
|
|
account: account,
|
|
documentable: user
|
|
)
|
|
|
|
puts "FAQ Created: ID #{faq.id}, Status: #{faq.status}"
|
|
|
|
# 2. Check Embedding Generation (Sync)
|
|
puts "\n--- 2. Triggering Embedding Job (Sync) ---"
|
|
if faq.embedding.nil?
|
|
puts 'Embedding is nil. Running job manually...'
|
|
begin
|
|
Captain::Llm::UpdateEmbeddingJob.perform_now(faq, "#{faq.question}: #{faq.answer}")
|
|
faq.reload
|
|
puts "Job finished. Embedding size: #{faq.embedding&.size}"
|
|
rescue StandardError => e
|
|
puts "Error generating embedding: #{e.message}"
|
|
puts e.backtrace.take(5)
|
|
end
|
|
else
|
|
puts "Embedding already exists: #{faq.embedding.size}"
|
|
end
|
|
|
|
# 3. Test Search
|
|
puts "\n--- 3. Testing SearchDocumentationService ---"
|
|
search_service = Captain::Tools::SearchDocumentationService.new(assistant)
|
|
query = 'qual telefone debug'
|
|
|
|
begin
|
|
puts "Searching for: '#{query}'"
|
|
results = search_service.execute(query: query)
|
|
puts "Search Results:\n#{results}"
|
|
rescue StandardError => e
|
|
puts "Error during search: #{e.message}"
|
|
puts e.backtrace.take(5)
|
|
end
|
|
|
|
puts "\n--- END DEBUG FAQ FLOW ---"
|