Adds a hosted Mistral embedding option (mistral-embed, 1024-dim) alongside the existing Bedrock / OpenAI / Ollama / Simple providers. Implementation mirrors OpenAIProvider: lazy dimension detection with a known-models lookup, chunked batch requests, defensive index sort, and a 429-aware retry decorator. In the same change, ProviderRegistry switches from os.getenv to the dynaconf-backed Settings dataclass so all five providers share a single configuration path. config.py gains the previously-uncovered Bedrock keys, the new Mistral keys, the missing OPENAI_GENERATION_MODEL / OLLAMA_GENERATION_MODEL, and SIMPLE_EMBEDDING_DIMENSION. Auto-detection priority: Bedrock → OpenAI → Mistral → Ollama → Simple. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
583 B
Python
23 lines
583 B
Python
"""Unified provider infrastructure for embeddings and text generation."""
|
|
|
|
from .anthropic import AnthropicProvider
|
|
from .base import Provider
|
|
from .bedrock import BedrockProvider
|
|
from .mistral import MistralProvider
|
|
from .ollama import OllamaProvider
|
|
from .openai import OpenAIProvider
|
|
from .registry import get_provider, reset_provider
|
|
from .simple import SimpleProvider
|
|
|
|
__all__ = [
|
|
"Provider",
|
|
"OllamaProvider",
|
|
"OpenAIProvider",
|
|
"AnthropicProvider",
|
|
"MistralProvider",
|
|
"SimpleProvider",
|
|
"BedrockProvider",
|
|
"get_provider",
|
|
"reset_provider",
|
|
]
|