"""Embedding 向量化模块 (M5)。

公共 API:
    - EmbeddingResult / EmbeddingError / EmbeddingProviderType
    - EmbeddingProvider / AsyncEmbeddingProvider (ABC)
    - compose_text                 (统一文本组装策略)
    - DashScopeEmbeddingProvider / DashScopeAsyncEmbeddingProvider
    - LocalBGEEmbeddingProvider / LocalBGEAsyncEmbeddingProvider (可选)
    - resolve_provider_type / make_sync_provider / make_async_provider
"""

from .base import (
    MAX_TEXT_CHARS,
    AsyncEmbeddingProvider,
    EmbeddingProvider,
    compose_text,
)
from .factory import (
    make_async_provider,
    make_sync_provider,
    resolve_provider_type,
)
from .models import (
    EmbeddingError,
    EmbeddingProviderType,
    EmbeddingResult,
)
from .remote import (
    DASHSCOPE_BATCH_LIMIT,
    DASHSCOPE_DEFAULT_DIM,
    DASHSCOPE_DEFAULT_MODEL,
    DashScopeAsyncEmbeddingProvider,
    DashScopeEmbeddingProvider,
)

__all__ = [
    "DASHSCOPE_BATCH_LIMIT",
    "DASHSCOPE_DEFAULT_DIM",
    "DASHSCOPE_DEFAULT_MODEL",
    "MAX_TEXT_CHARS",
    "AsyncEmbeddingProvider",
    "DashScopeAsyncEmbeddingProvider",
    "DashScopeEmbeddingProvider",
    "EmbeddingError",
    "EmbeddingProvider",
    "EmbeddingProviderType",
    "EmbeddingResult",
    "compose_text",
    "make_async_provider",
    "make_sync_provider",
    "resolve_provider_type",
]
