chatwoot-develop/app/models/jasmine/document_chunk.rb

29 lines
888 B
Ruby

module Jasmine
require 'neighbor'
class DocumentChunk < ApplicationRecord
# Explicitly load Neighbor for development environment issues
extend Neighbor::Model
self.table_name = 'jasmine_document_chunks'
belongs_to :account
belongs_to :collection, class_name: 'Jasmine::Collection'
belongs_to :document, class_name: 'Jasmine::Document'
# Enable neighbor vector search
has_neighbors :embedding
validates :content, presence: true
validate :validate_consistency
private
def validate_consistency
return if document.nil? || collection.nil?
errors.add(:base, 'Document mismatch') if document.collection_id != collection_id
errors.add(:base, 'Collection account mismatch') if collection.account_id != account_id
errors.add(:base, 'Document account mismatch') if document.account_id != account_id
end
end
end