Enterprise Meeting Knowledge Management System with: Backend (FastAPI): - Authentication proxy with JWT (pj-auth-api integration) - MySQL database with 4 tables (users, meetings, conclusions, actions) - Meeting CRUD with system code generation (C-YYYYMMDD-XX, A-YYYYMMDD-XX) - Dify LLM integration for AI summarization - Excel export with openpyxl - 20 unit tests (all passing) Client (Electron): - Login page with company auth - Meeting list with create/delete - Meeting detail with real-time transcription - Editable transcript textarea (single block, easy editing) - AI summarization with conclusions/action items - 5-second segment recording (efficient for long meetings) Sidecar (Python): - faster-whisper medium model with int8 quantization - ONNX Runtime VAD (lightweight, ~20MB vs PyTorch ~2GB) - Chinese punctuation processing - OpenCC for Traditional Chinese conversion - Anti-hallucination parameters - Auto-cleanup of temp audio files OpenSpec: - add-meeting-assistant-mvp (47 tasks, archived) - add-realtime-transcription (29 tasks, archived) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
25 lines
753 B
Python
25 lines
753 B
Python
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Settings:
|
|
DB_HOST: str = os.getenv("DB_HOST", "mysql.theaken.com")
|
|
DB_PORT: int = int(os.getenv("DB_PORT", "33306"))
|
|
DB_USER: str = os.getenv("DB_USER", "A060")
|
|
DB_PASS: str = os.getenv("DB_PASS", "")
|
|
DB_NAME: str = os.getenv("DB_NAME", "db_A060")
|
|
|
|
AUTH_API_URL: str = os.getenv(
|
|
"AUTH_API_URL", "https://pj-auth-api.vercel.app/api/auth/login"
|
|
)
|
|
DIFY_API_URL: str = os.getenv("DIFY_API_URL", "https://dify.theaken.com/v1")
|
|
DIFY_API_KEY: str = os.getenv("DIFY_API_KEY", "")
|
|
|
|
ADMIN_EMAIL: str = os.getenv("ADMIN_EMAIL", "ymirliu@panjit.com.tw")
|
|
JWT_SECRET: str = os.getenv("JWT_SECRET", "meeting-assistant-secret")
|
|
|
|
|
|
settings = Settings()
|