File size: 1,914 Bytes
1bc3f18
 
96cc3c6
1bc3f18
 
 
 
96cc3c6
1bc3f18
 
96cc3c6
1bc3f18
 
96cc3c6
1bc3f18
96cc3c6
 
 
1bc3f18
 
1153571
96cc3c6
1bc3f18
 
 
 
 
 
96cc3c6
 
1bc3f18
96cc3c6
1bc3f18
 
96cc3c6
1bc3f18
96cc3c6
1bc3f18
96cc3c6
1bc3f18
96cc3c6
 
 
1bc3f18
 
96cc3c6
1bc3f18
96cc3c6
1bc3f18
96cc3c6
1bc3f18
 
 
 
 
96cc3c6
 
 
1bc3f18
 
 
 
 
 
 
96cc3c6
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from pydantic_settings import BaseSettings
from functools import lru_cache
from typing import Optional


class Settings(BaseSettings):
    DEBUG: bool = False
    APP_NAME: str = "IntegraRAG"
    QDRANT_COLLECTION: str = "docs"

    CustomLoaders: Optional[bool] = None
    QDRANT_TYPE: str = "docker"
    QDRANT_DOCKER_URL: str = "http://localhost:6333"
    QDRANT_API_KEY: Optional[str] = None
    CHUNK_SIZE: int = 1000
    CHUNK_OVERLAP: Optional[int] = None
    CHUNK_METHOD: Optional[str] = None
    GRADE_WEBHOOK_URL: Optional[str] = None
    REDIS_HOST: str = "localhost"
    REDIS_PORT: int = 6379
    REDIS_PASSWORD: Optional[str] = None
    CALLBACK_URL: Optional[str] = None

    # ---------- BACKENDS ----------
    GENERATION_BACKEND: str = "OLLAMA"
    EMBEDDING_BACKEND: str = "OLLAMA"

    # ---------- API KEYS ----------
    OPENAI_API_KEY: Optional[str] = None
    OPENAI_API_URL: Optional[str] = None

    COHERE_API_KEY: Optional[str] = None

    OLLAMA_URL: str = "http://localhost:11434"
    OLLAMA_API_KEY: Optional[str] = None

    MISTRAL_API_KEY: Optional[str] = None

    GROQ_API_KEY: Optional[str] = None

    OPENROUTER_API_KEY: Optional[str] = None
    OPENROUTER_SITE_URL: str = "http://localhost"
    OPENROUTER_APP_NAME: str = "IntegraRAG"
    OPENROUTER_SEARCH_MODEL: str = "perplexity/sonar-online"

    HF_API_KEY: Optional[str] = None

    DEEPSEEK_API_KEY: Optional[str] = None

    GEMINI_API_KEY: Optional[str] = None

    # ---------- MODELS ----------
    GENERATION_MODEL_ID: str = "deepseek-v3.1:671b-cloud"
    EMBEDDING_MODEL_ID: str = "embeddinggemma:latest"
    EMBEDDING_MODEL_SIZE: int = 768
    INPUT_DAFAULT_MAX_CHARACTERS: Optional[int] = None
    GENERATION_DAFAULT_MAX_TOKENS: Optional[int] = None
    GENERATION_DAFAULT_TEMPERATURE: Optional[float] = None

    class Config:
        env_file = ".env"


@lru_cache
def get_settings():
    return Settings()