Blame view

providers/embedding.py 1.33 KB
42e3aea6   tangwang   tidy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  """
  Embedding provider - HTTP service (vllm reserved).
  
  Returns text/image encoders configured via services_config.
  """
  
  from __future__ import annotations
  
  from config.services_config import get_embedding_config, get_embedding_base_url
  
  
  def create_embedding_provider() -> "EmbeddingProvider":
      """Create embedding provider from services config."""
      cfg = get_embedding_config()
      provider = (cfg.provider or "http").strip().lower()
950a640e   tangwang   embeddings
16
      if provider != "http":
42e3aea6   tangwang   tidy
17
          import logging
950a640e   tangwang   embeddings
18
19
20
          logging.getLogger(__name__).warning(
              "Unsupported embedding provider '%s', fallback to HTTP provider.", provider
          )
42e3aea6   tangwang   tidy
21
22
23
24
25
26
27
28
29
30
31
32
33
34
      return EmbeddingProvider()
  
  
  class EmbeddingProvider:
      """
      Provides text and image encoders. Both use HTTP embedding service
      configured via services_config.
      """
  
      def __init__(self) -> None:
          self._base_url = get_embedding_base_url()
  
      @property
      def text_encoder(self):
950a640e   tangwang   embeddings
35
36
37
          """Lazy-created text encoder (TextEmbeddingEncoder)."""
          from embeddings.text_encoder import TextEmbeddingEncoder
          return TextEmbeddingEncoder(service_url=self._base_url)
42e3aea6   tangwang   tidy
38
39
40
41
42
43
  
      @property
      def image_encoder(self):
          """Lazy-created image encoder (CLIPImageEncoder)."""
          from embeddings.image_encoder import CLIPImageEncoder
          return CLIPImageEncoder(service_url=self._base_url)