File size: 991 Bytes
ce45eb0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Configuration model. from_env reads MATRIX_CONTEXT_* variables."""
from __future__ import annotations
import os
from dataclasses import dataclass


@dataclass
class Config:
    name: str = "default"
    backend: str = "sqlite"          # sqlite | postgres(v1) | milvus(v2)
    path: str = ""                   # sqlite file path
    embedder: str = "hashing"        # hashing | sentence-transformers | watsonx(v1)
    max_tokens: int = 600
    top_experts: int = 2            # promoted from the bake-off (moc_rag winner)

    @classmethod
    def from_env(cls) -> "Config":
        g = os.environ.get
        return cls(
            name=g("MATRIX_CONTEXT_NAME", "default"),
            backend=g("MATRIX_CONTEXT_BACKEND", "sqlite"),
            path=g("MATRIX_CONTEXT_PATH", ""),
            embedder=g("MATRIX_CONTEXT_EMBEDDER", "hashing"),
            max_tokens=int(g("MATRIX_CONTEXT_MAX_TOKENS", "600")),
            top_experts=int(g("MATRIX_CONTEXT_TOP_EXPERTS", "2")),
        )