config.py
1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""
Embedding module configuration.
This module is intentionally a plain Python file (no env var parsing, no extra deps).
Edit values here to configure:
- server host/port
- local model settings (paths/devices/batch sizes)
"""
from typing import Optional
import os
class EmbeddingConfig(object):
# Server
HOST = os.getenv("EMBEDDING_HOST", "0.0.0.0")
PORT = int(os.getenv("EMBEDDING_PORT", 6005))
# Text backend defaults
TEXT_MODEL_ID = os.getenv("TEXT_MODEL_ID", "Qwen/Qwen3-Embedding-0.6B")
# Backward-compatible alias for old naming in docs/scripts.
TEXT_MODEL_DIR = TEXT_MODEL_ID
TEXT_DEVICE = os.getenv("TEXT_DEVICE", "cuda") # "cuda" or "cpu"
TEXT_BATCH_SIZE = int(os.getenv("TEXT_BATCH_SIZE", "32"))
TEXT_NORMALIZE_EMBEDDINGS = os.getenv("TEXT_NORMALIZE_EMBEDDINGS", "true").lower() in ("1", "true", "yes")
TEI_BASE_URL = os.getenv("TEI_BASE_URL", "http://127.0.0.1:8080")
TEI_TIMEOUT_SEC = int(os.getenv("TEI_TIMEOUT_SEC", "60"))
# Image embeddings
# Option A: clip-as-service (Jina CLIP server, recommended)
USE_CLIP_AS_SERVICE = os.getenv("USE_CLIP_AS_SERVICE", "true").lower() in ("1", "true", "yes")
CLIP_AS_SERVICE_SERVER = os.getenv("CLIP_AS_SERVICE_SERVER", "grpc://127.0.0.1:51000")
# Option B: local CN-CLIP (when USE_CLIP_AS_SERVICE=false)
IMAGE_MODEL_NAME = "ViT-H-14"
IMAGE_DEVICE = None # type: Optional[str] # "cuda" / "cpu" / None(auto)
# Service behavior
IMAGE_BATCH_SIZE = 8
CONFIG = EmbeddingConfig()