Module: Ragdoll

Defined in:
lib/ragdoll/core/model.rb,
lib/ragdoll.rb,
lib/ragdoll/core.rb,
lib/ragdoll/core/client.rb,
lib/ragdoll/core/errors.rb,
lib/ragdoll/core/version.rb,
app/models/ragdoll/search.rb,
lib/ragdoll/core/database.rb,
app/models/ragdoll/content.rb,
app/models/ragdoll/document.rb,
app/models/ragdoll/embedding.rb,
lib/ragdoll/core/configuration.rb,
app/models/ragdoll/text_content.rb,
app/lib/ragdoll/metadata_schemas.rb,
app/models/ragdoll/audio_content.rb,
app/models/ragdoll/image_content.rb,
app/models/ragdoll/search_result.rb,
app/jobs/ragdoll/extract_text_job.rb,
app/services/ragdoll/text_chunker.rb,
app/models/ragdoll/unified_content.rb,
app/services/ragdoll/search_engine.rb,
app/models/ragdoll/unified_document.rb,
app/services/ragdoll/model_resolver.rb,
app/jobs/ragdoll/extract_keywords_job.rb,
app/jobs/ragdoll/generate_summary_job.rb,
app/services/ragdoll/embedding_service.rb,
app/services/ragdoll/migration_service.rb,
app/services/ragdoll/document_converter.rb,
app/services/ragdoll/document_processor.rb,
app/services/ragdoll/metadata_generator.rb,
app/jobs/ragdoll/generate_embeddings_job.rb,
app/services/ragdoll/document_management.rb,
app/services/ragdoll/audio_to_text_service.rb,
app/services/ragdoll/configuration_service.rb,
app/services/ragdoll/image_to_text_service.rb,
app/services/ragdoll/text_extraction_service.rb,
app/services/ragdoll/text_generation_service.rb,
app/services/ragdoll/image_description_service.rb,
app/services/ragdoll/unified_document_management.rb

Overview

FIXME: This is crap. It does not focus on search.

Defined Under Namespace

Modules: Core, MetadataSchemas Classes: AudioContent, AudioToTextService, ConfigurationService, Content, Document, DocumentConverter, DocumentManagement, DocumentProcessor, Embedding, EmbeddingService, ExtractKeywordsJob, ExtractTextJob, GenerateEmbeddingsJob, GenerateSummaryJob, ImageContent, ImageDescriptionService, ImageToTextService, MetadataGenerator, MigrationService, ModelResolver, Search, SearchEngine, SearchResult, TextChunker, TextContent, TextExtractionService, TextGenerationService, UnifiedContent, UnifiedDocument, UnifiedDocumentManagement

Class Method Summary collapse

Class Method Details

.add_directory(*args, **kwargs) ⇒ Object

Add a directory of documents to the system.

Examples:

Ragdoll.add_directory(path: "/path/to/documents", recursive: true)

Parameters:

  • path (String)

    the path to the directory containing documents.

  • recursive (Boolean)

    whether to add documents from subdirectories.



65
66
67
# File 'lib/ragdoll.rb', line 65

def add_directory(*args, **kwargs)
  Ragdoll::Core.add_directory(*args, **kwargs)
end

.add_document(*args, **kwargs) ⇒ Object Also known as: add

Add a single document to the system.

Examples:

Ragdoll.add_document(path: "/path/to/document.txt")

Parameters:

  • path (String)

    the file path of the document to add.



73
74
75
# File 'lib/ragdoll.rb', line 73

def add_document(*args, **kwargs)
  Ragdoll::Core.add_document(*args, **kwargs)
end

.client(*args, **kwargs) ⇒ Ragdoll::Core::Client

Retrieve the client instance.

Examples:

client = Ragdoll.client
puts client.inspect

Returns:



243
244
245
# File 'lib/ragdoll.rb', line 243

def client(*args, **kwargs)
  Ragdoll::Core.client(*args, **kwargs)
end

.configRagdoll::Core::Configuration

Retrieve the current configuration.

Examples:

config = Ragdoll.config
puts config.database_config[:adapter]
current_config = Ragdoll.configuration
puts current_config.models[:default]

Returns:



25
26
27
# File 'lib/ragdoll.rb', line 25

def config
  Core.config
end

.configuration(*args, **kwargs) ⇒ Ragdoll::Core::Configuration

Access the current configuration.

Parameters:

  • args (Array)

    additional arguments for configuration.

  • kwargs (Hash)

    keyword arguments for configuration.

Returns:



44
45
46
# File 'lib/ragdoll.rb', line 44

def configuration(*args, **kwargs)
  Ragdoll::Core.configuration(*args, **kwargs)
end

.configure(*args, **kwargs) {|Ragdoll::Core::Configuration| ... } ⇒ Object

Configure the Ragdoll module.

Examples:

Ragdoll.configure do |config|
  config.database_config[:adapter] = "postgres"
end

Yields:

Yield Parameters:



36
37
38
# File 'lib/ragdoll.rb', line 36

def configure(*args, **kwargs, &block)
  Ragdoll::Core.configure(*args, **kwargs, &block)
end

.delete_document(*args, **kwargs) ⇒ Boolean Also known as: delete

Delete a document by its identifier.

Examples:

success = Ragdoll.delete_document(id: "123")
puts "Deleted" if success

Parameters:

  • id (String)

    the identifier of the document to delete.

Returns:

  • (Boolean)

    true if the document was successfully deleted.



106
107
108
# File 'lib/ragdoll.rb', line 106

def delete_document(*args, **kwargs)
  Ragdoll::Core.delete_document(*args, **kwargs)
end

.document_status(*args, **kwargs) ⇒ Hash Also known as: status

Get the status of a document.

Examples:

status = Ragdoll.document_status(id: "123")
puts status[:status]

Parameters:

  • id (String)

    the identifier of the document to check status.

Returns:

  • (Hash)

    the status information of the document.



117
118
119
# File 'lib/ragdoll.rb', line 117

def document_status(*args, **kwargs)
  Ragdoll::Core.document_status(*args, **kwargs)
end

.documentsActiveRecord::Relation Also known as: docs

Retrieve all documents.

Examples:

all_docs = Ragdoll.documents
all_docs.each { |doc| puts doc.title }

Returns:

  • (ActiveRecord::Relation)

    a relation of all documents.



139
140
141
# File 'lib/ragdoll.rb', line 139

def documents
  Ragdoll::Document.all
end

.enhance_prompt(*args, **kwargs) ⇒ Hash

Enhance a prompt with additional context.

Examples:

enhanced = Ragdoll.enhance_prompt(prompt: "What is AI?", context_limit: 3)
puts enhanced[:enhanced_prompt]

Parameters:

  • prompt (String)

    the original prompt to enhance.

  • context_limit (Integer)

    the number of context chunks to include.

  • options (Hash)

    additional options for enhancing the prompt.

Returns:

  • (Hash)

    the enhanced prompt data.



172
173
174
# File 'lib/ragdoll.rb', line 172

def enhance_prompt(*args, **kwargs)
  Ragdoll::Core.enhance_prompt(*args, **kwargs)
end

.get_context(*args, **kwargs) ⇒ Hash

Retrieve context for a given query.

Examples:

context = Ragdoll.get_context(query: "AI", limit: 5)
puts context[:combined_context]

Parameters:

  • query (String)

    the query to retrieve context for.

  • limit (Integer)

    the number of context chunks to retrieve.

  • options (Hash)

    additional options for context retrieval.

Returns:

  • (Hash)

    the context data.



184
185
186
# File 'lib/ragdoll.rb', line 184

def get_context(*args, **kwargs)
  Ragdoll::Core.get_context(*args, **kwargs)
end

.get_document(*args, **kwargs) ⇒ Hash? Also known as: get

Retrieve a document by its identifier.

Examples:

document = Ragdoll.get_document(id: "123")
puts document[:title] if document

Parameters:

  • id (String)

    the identifier of the document to retrieve.

Returns:

  • (Hash, nil)

    the document data or nil if not found.



84
85
86
# File 'lib/ragdoll.rb', line 84

def get_document(*args, **kwargs)
  Ragdoll::Core.get_document(*args, **kwargs)
end

.healthy?(*args, **kwargs) ⇒ Boolean

Check if the system is healthy.

Examples:

puts "System is healthy" if Ragdoll.healthy?

Returns:

  • (Boolean)

    true if the system is healthy.



234
235
236
# File 'lib/ragdoll.rb', line 234

def healthy?(*args, **kwargs)
  Ragdoll::Core.healthy?(*args, **kwargs)
end

.hybrid_search(*args, **kwargs) ⇒ Array<Hash>

Perform hybrid search combining semantic and full-text search.

Examples:

results = Ragdoll.hybrid_search(
  query: "machine learning",
  semantic_weight: 0.7,
  text_weight: 0.3
)
results.each { |result| puts result[:document_title] }

Parameters:

  • query (String)

    the search query string.

  • semantic_weight (Float)

    weight for semantic search results (0.0 - 1.0).

  • text_weight (Float)

    weight for full-text search results (0.0 - 1.0).

  • options (Hash)

    additional search options, such as filters and limits.

Returns:

  • (Array<Hash>)

    an array of search results combining semantic and text search.



212
213
214
# File 'lib/ragdoll.rb', line 212

def hybrid_search(*args, **kwargs)
  Ragdoll::Core.hybrid_search(*args, **kwargs)
end

.list_documents(*args, **kwargs) ⇒ Array<Hash> Also known as: list

List all documents in the system.

Examples:

documents = Ragdoll.list_documents(limit: 10)
documents.each { |doc| puts doc[:title] }

Parameters:

  • options (Hash)

    options for listing documents, such as limit and offset.

Returns:

  • (Array<Hash>)

    an array of document data.



95
96
97
# File 'lib/ragdoll.rb', line 95

def list_documents(*args, **kwargs)
  Ragdoll::Core.list_documents(*args, **kwargs)
end

.reset_configuration!(*args, **kwargs) ⇒ Object

Examples:

Ragdoll.reset_configuration!
puts Ragdoll.config.models[:default]


51
52
53
# File 'lib/ragdoll.rb', line 51

def reset_configuration!(*args, **kwargs)
  Ragdoll::Core.reset_configuration!(*args, **kwargs)
end

.search(*args, **kwargs) ⇒ Hash

Perform a search for documents based on a query.

Examples:

response = Ragdoll.search(query: "example search")
response[:results].each { |result| puts result[:document_title] }

Parameters:

  • query (String)

    the search query string.

  • options (Hash)

    additional search options, such as filters and limits.

Returns:

  • (Hash)

    the search results.



160
161
162
# File 'lib/ragdoll.rb', line 160

def search(*args, **kwargs)
  Ragdoll::Core.search(*args, **kwargs)
end

.search_similar_content(*args, **kwargs) ⇒ Array<Hash>

Search for content similar to a given query.

Examples:

similar_content = Ragdoll.search_similar_content(query: "AI")
similar_content.each { |content| puts content[:document_title] }

Parameters:

  • query (String)

    the query to find similar content for.

  • options (Hash)

    additional options for the search, such as filters and limits.

Returns:

  • (Array<Hash>)

    an array of similar content data.



195
196
197
# File 'lib/ragdoll.rb', line 195

def search_similar_content(*args, **kwargs)
  Ragdoll::Core.search_similar_content(*args, **kwargs)
end

.stats(*args, **kwargs) ⇒ Hash

Retrieve statistics about the system.

Examples:

stats = Ragdoll.stats
puts stats[:total_documents]

Returns:

  • (Hash)

    the system statistics.



226
227
228
# File 'lib/ragdoll.rb', line 226

def stats(*args, **kwargs)
  Ragdoll::Core.stats(*args, **kwargs)
end

.update_document(*args, **kwargs) ⇒ Hash Also known as: update

Update a document’s information.

Examples:

updated_doc = Ragdoll.update_document(id: "123", title: "New Title")
puts updated_doc[:title]

Parameters:

  • id (String)

    the identifier of the document to update.

  • updates (Hash)

    the fields to update in the document.

Returns:

  • (Hash)

    the updated document data.



129
130
131
# File 'lib/ragdoll.rb', line 129

def update_document(*args, **kwargs)
  Ragdoll::Core.update_document(*args, **kwargs)
end

.versionArray<String>

Retrieve the version information of the Ragdoll modules.

Examples:

versions = Ragdoll.version
versions.each { |version| puts version }

Returns:

  • (Array<String>)

    an array of version strings for each module.



252
253
254
255
256
257
258
259
260
261
262
263
264
# File 'lib/ragdoll.rb', line 252

def version
  versions = []

  ObjectSpace.each_object(Module) do |mod|
    if mod.name =~ /^Ragdoll::\w+$/
      if defined?(mod::VERSION) && mod::VERSION.is_a?(String)
        versions << "#{mod.name}: #{mod::VERSION}"
      end
    end
  end

  versions
end