Table of Contents
Module spoon_ai.rag.embeddings
HashEmbeddingClient Objects​
class HashEmbeddingClient(EmbeddingClient)
Deterministic offline embedding via hashing.
Produces fixed-length vectors in [0,1] normalized range. Not semantically meaningful but stable for tests and offline demos.
get_embedding_client​
def get_embedding_client(
provider: Optional[str],
*,
openai_api_key: Optional[str] = None,
openai_model: str = "text-embedding-3-small") -> EmbeddingClient
Create an embedding client.
Provider selection rules:
- provider is None/"auto": pick the first configured embeddings provider using a dedicated priority order (OpenAI > OpenRouter > Gemini).
- provider is "openai" / "openrouter" / "gemini" / "ollama": force that provider (uses core env config when applicable).
- provider is "openai_compatible": use OpenAI-compatible embeddings via RAG_EMBEDDINGS_* env vars.
- otherwise: deterministic hash embeddings (offline).