Module: ClaudeMemory::Embeddings
- Defined in:
- lib/claude_memory/embeddings/resolver.rb,
lib/claude_memory/embeddings/generator.rb,
lib/claude_memory/embeddings/inspector.rb,
lib/claude_memory/embeddings/similarity.rb,
lib/claude_memory/embeddings/api_adapter.rb,
lib/claude_memory/embeddings/model_registry.rb,
lib/claude_memory/embeddings/dimension_check.rb,
lib/claude_memory/embeddings/fastembed_adapter.rb
Defined Under Namespace
Classes: ApiAdapter, DimensionCheck, FastembedAdapter, Generator, Inspector, ModelRegistry, Similarity
Class Method Summary collapse
-
.resolve(name = nil, model: nil, env: ENV) ⇒ Object
Resolves an embedding provider by name, model, or ENV.
Class Method Details
.resolve(name = nil, model: nil, env: ENV) ⇒ Object
Resolves an embedding provider by name, model, or ENV.
Provider selection (in priority order):
1. Explicit name parameter
2. CLAUDE_MEMORY_EMBEDDING_PROVIDER env var
3. Default: "tfidf"
Model selection is forwarded to the provider via CLAUDE_MEMORY_EMBEDDING_MODEL or the model parameter. The model can also imply the provider:
- "BAAI/bge-small-en-v1.5" → fastembed
- "text-embedding-3-small" → api
Examples:
Embeddings.resolve # tfidf default
Embeddings.resolve("fastembed") # fastembed with default model
Embeddings.resolve("fastembed", model: "BAAI/bge-base-en-v1.5")
Embeddings.resolve(model: "text-embedding-3-small") # auto-detects api provider
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/claude_memory/embeddings/resolver.rb', line 23 def self.resolve(name = nil, model: nil, env: ENV) model ||= env["CLAUDE_MEMORY_EMBEDDING_MODEL"] provider = name || env["CLAUDE_MEMORY_EMBEDDING_PROVIDER"] || infer_provider(model) || "tfidf" case provider when "tfidf" then Generator.new when "fastembed" then FastembedAdapter.new(model_name: model, env: env) when "api" then ApiAdapter.new(model: model, env: env) else raise ArgumentError, "Unknown embedding provider: #{provider}. Available: tfidf, fastembed, api" end end |