|
|
"""Application-wide constants and configuration.""" |
|
|
|
|
|
import os |
|
|
from typing import Final, List |
|
|
|
|
|
|
|
|
|
|
|
MODEL_NAME: Final[str] = "DragonLLM/Qwen-Open-Finance-R-8B" |
|
|
|
|
|
|
|
|
CACHE_DIR: Final[str] = os.getenv("HF_HOME", "/tmp/huggingface") |
|
|
|
|
|
|
|
|
HF_TOKEN_VARS: Final[List[str]] = [ |
|
|
"HF_TOKEN_LC2", |
|
|
"HF_TOKEN_LC", |
|
|
"HF_TOKEN", |
|
|
"HUGGING_FACE_HUB_TOKEN" |
|
|
] |
|
|
|
|
|
|
|
|
FRENCH_PHRASES: Final[List[str]] = [ |
|
|
"en français", |
|
|
"répondez en français", |
|
|
"réponse française", |
|
|
"répondez uniquement en français", |
|
|
"expliquez en français", |
|
|
] |
|
|
|
|
|
FRENCH_CHARS: Final[List[str]] = [ |
|
|
"é", "è", "ê", "à", "ç", "ù", "ô", "î", "â", "û", "ë", "ï" |
|
|
] |
|
|
|
|
|
FRENCH_PATTERNS: Final[List[str]] = [ |
|
|
"qu'est-ce", |
|
|
"qu'est", |
|
|
"expliquez", |
|
|
"comment", |
|
|
"pourquoi", |
|
|
"combien", |
|
|
"quel", |
|
|
"quelle", |
|
|
"quels", |
|
|
"quelles", |
|
|
"où", |
|
|
"quand", |
|
|
"définissez", |
|
|
] |
|
|
|
|
|
FRENCH_SYSTEM_PROMPT: Final[str] = ( |
|
|
"Vous êtes un assistant financier expert. " |
|
|
"Répondez TOUJOURS en français. " |
|
|
"Soyez concis et précis dans vos explications. " |
|
|
"Fournissez des réponses claires et complètes sans développements excessifs." |
|
|
) |
|
|
|
|
|
|
|
|
EOS_TOKENS: Final[List[int]] = [151645, 151643] |
|
|
PAD_TOKEN_ID: Final[int] = 151643 |
|
|
|
|
|
|
|
|
DEFAULT_MAX_TOKENS: Final[int] = 1000 |
|
|
DEFAULT_TEMPERATURE: Final[float] = 0.7 |
|
|
DEFAULT_TOP_P: Final[float] = 1.0 |
|
|
DEFAULT_TOP_K: Final[int] = 20 |
|
|
REPETITION_PENALTY: Final[float] = 1.05 |
|
|
|
|
|
|
|
|
MODEL_INIT_TIMEOUT_SECONDS = 300 |
|
|
MODEL_INIT_WAIT_INTERVAL_SECONDS = 1 |
|
|
|
|
|
|
|
|
RATE_LIMIT_REQUESTS_PER_MINUTE = 30 |
|
|
RATE_LIMIT_REQUESTS_PER_HOUR = 500 |
|
|
|
|
|
|
|
|
MIN_ANSWER_LENGTH_FOR_HIGH_CONFIDENCE = 50 |
|
|
|
|
|
|