- Add new models for `KnowledgeDocument` and `KnowledgeChunk` to manage document ingestion and chunking. - Implement S3-compatible storage integration for knowledge documents, allowing for file uploads and retrieval. - Introduce API endpoints for managing knowledge bases and documents, including creation, deletion, and searching. - Update frontend components to support knowledge base configuration and document management, improving user interaction. - Enhance backend services for knowledge processing and retrieval, ensuring robust handling of document statuses and errors.
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
"""Runtime settings for backend infrastructure.
|
|
|
|
Model provider credentials live in ``model_resources`` and are resolved per
|
|
assistant. Keep this module limited to process-level settings such as database,
|
|
CORS, server bind address, and WebRTC ICE/TURN configuration.
|
|
"""
|
|
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
def _split(value: str) -> list[str]:
|
|
return [item.strip() for item in value.split(",") if item.strip()]
|
|
|
|
|
|
# ---- Database ----
|
|
DATABASE_URL = os.getenv(
|
|
"DATABASE_URL",
|
|
"postgresql+asyncpg://postgres:postgres@localhost:5432/postgres",
|
|
)
|
|
|
|
# ---- Service ----
|
|
HOST = os.getenv("HOST", "0.0.0.0")
|
|
PORT = int(os.getenv("PORT", "8000"))
|
|
CORS_ORIGINS = _split(
|
|
os.getenv("CORS_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000")
|
|
)
|
|
|
|
# ---- Admin auth ----
|
|
ADMIN_USERNAME = os.getenv("ADMIN_USERNAME", "admin")
|
|
ADMIN_PASSWORD = os.getenv("ADMIN_PASSWORD", "znjj189981$")
|
|
AUTH_SECRET_KEY = os.getenv("AUTH_SECRET_KEY", "dev-secret-change-me")
|
|
AUTH_COOKIE_NAME = os.getenv("AUTH_COOKIE_NAME", "ai_video_admin_token")
|
|
AUTH_TOKEN_EXPIRE_MINUTES = int(os.getenv("AUTH_TOKEN_EXPIRE_MINUTES", "1440"))
|
|
AUTH_COOKIE_SECURE = os.getenv("AUTH_COOKIE_SECURE", "false").lower() == "true"
|
|
AUTH_COOKIE_SAMESITE = os.getenv("AUTH_COOKIE_SAMESITE", "lax")
|
|
|
|
# ---- WebRTC TURN ----
|
|
# TURN_URLS example:
|
|
# turn:182.92.86.220:3478?transport=udp,turn:182.92.86.220:3478?transport=tcp
|
|
TURN_URLS = _split(os.getenv("TURN_URLS", ""))
|
|
TURN_SECRET = os.getenv("TURN_SECRET", "")
|
|
TURN_USERNAME = os.getenv("TURN_USERNAME", "")
|
|
TURN_PASSWORD = os.getenv("TURN_PASSWORD", "")
|
|
TURN_CREDENTIAL_TTL = int(os.getenv("TURN_CREDENTIAL_TTL", "86400"))
|
|
|
|
# ---- S3-compatible object storage (RustFS in local compose) ----
|
|
S3_ENDPOINT_URL = os.getenv("S3_ENDPOINT_URL", "http://localhost:9000")
|
|
S3_ACCESS_KEY = os.getenv("S3_ACCESS_KEY", "rustfsadmin")
|
|
S3_SECRET_KEY = os.getenv("S3_SECRET_KEY", "rustfsadmin")
|
|
S3_BUCKET = os.getenv("S3_BUCKET", "ai-video")
|
|
S3_REGION = os.getenv("S3_REGION", "us-east-1")
|
|
KNOWLEDGE_MAX_FILE_BYTES = int(os.getenv("KNOWLEDGE_MAX_FILE_BYTES", "20971520"))
|
|
KNOWLEDGE_TOP_K = int(os.getenv("KNOWLEDGE_TOP_K", "5"))
|