Class HTM::EmbeddingService ¶
| Inherits | Object |
| Defined in | lib/htm/embedding_service.rb |
Embedding Service - Processes and validates vector embeddings
This service wraps the configured embedding generator and provides: * Response validation * Dimension handling (padding/truncation) * Error handling and logging * Storage formatting * Circuit breaker protection for external LLM failures
The actual LLM call is delegated to HTM.configuration.embedding_generator
Public Class Methods¶
circuit_breaker() ¶
Get or create the circuit breaker for embedding service
- @return [HTM::CircuitBreaker] The circuit breaker instance
format_for_storage(embedding) ¶
Format embedding for database storage
- @param embedding [Array@return [String] PostgreSQL array format
generate(text) ¶
Generate embedding with validation and processing
- @param text [String] Text to embed
- @raise [CircuitBreakerOpenError] If circuit breaker is open
- @return [Hash] Processed embedding with metadata
{
embedding: Array
max_dimension() ¶
Maximum embedding dimension (configurable, default 2000)
- @return [Integer] Max dimensions for pgvector HNSW index
pad_embedding(embedding) ¶
Pad embedding to max_dimension with zeros
- @param embedding [Array@return [Array
reset_circuit_breaker!() ¶
Reset the circuit breaker (useful for testing)
- @return [void]
validate_embedding!(embedding) ¶
Validate embedding response format
- @param embedding [Object] Raw embedding from generator
- @raise [HTM::EmbeddingError] if invalid