feat: Add .env.example configuration file and integrate Redis service into Docker Compose for improved task management. Update desktop application to support document indexing and extraction workflows, enhancing user experience with a new extraction wizard and stepper components. Revise README and documentation for clarity on setup and usage.
This commit is contained in:
@@ -89,7 +89,17 @@ class RetrySettings(BaseSettings):
|
||||
|
||||
class ProcessingSettings(BaseSettings):
|
||||
"""Configuración de procesamiento y concurrencia."""
|
||||
concurrency_limit: int = Field(100, validation_alias=AliasChoices("CONCURRENCY_LIMIT"))
|
||||
concurrency_limit: int = Field(50, validation_alias=AliasChoices("CONCURRENCY_LIMIT"))
|
||||
redis_url: str = Field("redis://localhost:6379/0", validation_alias=AliasChoices("REDIS_URL"))
|
||||
worker_concurrency: int = Field(25, validation_alias=AliasChoices("WORKER_CONCURRENCY"))
|
||||
# Límites OpenAI para el rate limiter distribuido
|
||||
openai_rpm_limit: int = Field(500, validation_alias=AliasChoices("OPENAI_RPM_LIMIT"))
|
||||
openai_tpm_limit: int = Field(800_000, validation_alias=AliasChoices("OPENAI_TPM_LIMIT"))
|
||||
# Directorio compartido entre API y workers para encolar archivos
|
||||
queue_dir: str = Field("/tmp/ips_queue", validation_alias=AliasChoices("QUEUE_DIR"))
|
||||
# False (default) = procesamiento sincrono sin Redis/workers.
|
||||
# True = cola ARQ distribuida (requiere Redis corriendo y workers activos).
|
||||
async_queue: bool = Field(False, validation_alias=AliasChoices("ASYNC_QUEUE"))
|
||||
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
||||
|
||||
|
||||
@@ -102,6 +112,23 @@ class AppSettings(BaseSettings):
|
||||
csv_delimiter: str = Field("|", validation_alias=AliasChoices("CSV_DELIMITER"))
|
||||
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
||||
|
||||
# Accesos directos para conveniencia
|
||||
@property
|
||||
def redis_url(self) -> str:
|
||||
return self.processing.redis_url
|
||||
|
||||
@property
|
||||
def openai_rpm_limit(self) -> int:
|
||||
return self.processing.openai_rpm_limit
|
||||
|
||||
@property
|
||||
def openai_tpm_limit(self) -> int:
|
||||
return self.processing.openai_tpm_limit
|
||||
|
||||
@property
|
||||
def queue_dir(self) -> str:
|
||||
return self.processing.queue_dir
|
||||
|
||||
|
||||
settings = AppSettings()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user