Blame view

providers/embedding.py 1.45 KB
ed948666   tangwang   tidy
1
  """Embedding provider - HTTP service."""
42e3aea6   tangwang   tidy
2
3
4
  
  from __future__ import annotations
  
7214c2e7   tangwang   mplemented**
5
6
7
8
9
  from config.services_config import (
      get_embedding_config,
      get_embedding_image_base_url,
      get_embedding_text_base_url,
  )
42e3aea6   tangwang   tidy
10
11
12
13
14
15
  
  
  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":
ed948666   tangwang   tidy
17
          raise ValueError(f"Unsupported embedding provider: {provider}")
42e3aea6   tangwang   tidy
18
19
20
21
22
23
24
25
26
27
      return EmbeddingProvider()
  
  
  class EmbeddingProvider:
      """
      Provides text and image encoders. Both use HTTP embedding service
      configured via services_config.
      """
  
      def __init__(self) -> None:
7214c2e7   tangwang   mplemented**
28
29
          self._text_base_url = get_embedding_text_base_url()
          self._image_base_url = get_embedding_image_base_url()
26b910bd   tangwang   refactor service ...
30
31
32
33
          from embeddings.text_encoder import TextEmbeddingEncoder
          from embeddings.image_encoder import CLIPImageEncoder
  
          # Initialize once; avoid per-access instantiation.
7214c2e7   tangwang   mplemented**
34
35
          self._text_encoder = TextEmbeddingEncoder(service_url=self._text_base_url)
          self._image_encoder = CLIPImageEncoder(service_url=self._image_base_url)
42e3aea6   tangwang   tidy
36
37
38
  
      @property
      def text_encoder(self):
26b910bd   tangwang   refactor service ...
39
40
          """Pre-initialized text encoder (TextEmbeddingEncoder)."""
          return self._text_encoder
42e3aea6   tangwang   tidy
41
42
43
  
      @property
      def image_encoder(self):
26b910bd   tangwang   refactor service ...
44
45
          """Pre-initialized image encoder (CLIPImageEncoder)."""
          return self._image_encoder