imetting_backend/app/core/config.py

112 lines
3.9 KiB
Python
Raw Normal View History

2025-08-05 01:46:40 +00:00
import os
2025-10-31 06:54:54 +00:00
import json
2025-08-05 01:46:40 +00:00
from pathlib import Path
# 基础路径配置
BASE_DIR = Path(__file__).parent.parent.parent
UPLOAD_DIR = BASE_DIR / "uploads"
AUDIO_DIR = UPLOAD_DIR / "audio"
2025-12-11 08:48:12 +00:00
TEMP_UPLOAD_DIR = UPLOAD_DIR / "temp_audio"
2025-08-06 07:07:02 +00:00
MARKDOWN_DIR = UPLOAD_DIR / "markdown"
2025-10-31 06:54:54 +00:00
VOICEPRINT_DIR = UPLOAD_DIR / "voiceprint"
2025-12-18 11:58:38 +00:00
CLIENT_DIR = UPLOAD_DIR / "clients"
2025-08-05 01:46:40 +00:00
# 文件上传配置
ALLOWED_EXTENSIONS = {".mp3", ".wav", ".m4a", ".mpeg", ".mp4"}
2025-08-06 07:07:02 +00:00
ALLOWED_IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".webp"}
2025-10-31 06:54:54 +00:00
ALLOWED_VOICEPRINT_EXTENSIONS = {".wav"}
2025-12-18 11:58:38 +00:00
ALLOWED_CLIENT_EXTENSIONS = {".apk", ".exe", ".dmg", ".deb", ".rpm", ".pkg", ".msi", ".zip", ".tar.gz"}
2025-08-05 01:46:40 +00:00
MAX_FILE_SIZE = 100 * 1024 * 1024 # 100MB
2025-08-06 07:07:02 +00:00
MAX_IMAGE_SIZE = 10 * 1024 * 1024 # 10MB
2025-12-18 11:58:38 +00:00
MAX_CLIENT_SIZE = 500 * 1024 * 1024 # 500MB for client installers
2025-08-05 01:46:40 +00:00
# 确保上传目录存在
UPLOAD_DIR.mkdir(exist_ok=True)
AUDIO_DIR.mkdir(exist_ok=True)
2025-08-06 07:07:02 +00:00
MARKDOWN_DIR.mkdir(exist_ok=True)
2025-10-31 06:54:54 +00:00
VOICEPRINT_DIR.mkdir(exist_ok=True)
2025-12-18 11:58:38 +00:00
CLIENT_DIR.mkdir(exist_ok=True)
2025-08-05 01:46:40 +00:00
# 数据库配置
DATABASE_CONFIG = {
2025-12-25 08:36:18 +00:00
'host': os.getenv('DB_HOST', '10.100.51.161'),
2025-08-05 01:46:40 +00:00
'user': os.getenv('DB_USER', 'root'),
2025-12-25 08:36:18 +00:00
'password': os.getenv('DB_PASSWORD', 'sagacity'),
2025-12-27 08:08:04 +00:00
'database': os.getenv('DB_NAME', 'imeeting'),
2025-08-05 01:46:40 +00:00
'port': int(os.getenv('DB_PORT', '3306')),
'charset': 'utf8mb4'
}
# API配置
API_CONFIG = {
'host': os.getenv('API_HOST', '0.0.0.0'),
2025-09-03 10:11:07 +00:00
'port': int(os.getenv('API_PORT', '8000'))
}
# 七牛云配置
QINIU_ACCESS_KEY = os.getenv('QINIU_ACCESS_KEY', 'A0tp96HCtg-wZCughTgi5vc2pJnw3btClwxRE_e8')
QINIU_SECRET_KEY = os.getenv('QINIU_SECRET_KEY', 'Lj-MSHpaVbmzpS86kMIjmwikvYOT9iPBjCk9hm6k')
QINIU_BUCKET = os.getenv('QINIU_BUCKET', 'imeeting_dev')
QINIU_DOMAIN = os.getenv('QINIU_DOMAIN', 't0vogyxkz.hn-bkt.clouddn.com')
2025-08-28 08:02:59 +00:00
# 应用配置
APP_CONFIG = {
2025-09-26 07:47:37 +00:00
'base_url': os.getenv('BASE_URL', 'http://dev.imeeting.unisspace.com')
2025-08-28 08:02:59 +00:00
}
# Redis配置
REDIS_CONFIG = {
2025-12-25 08:36:18 +00:00
'host': os.getenv('REDIS_HOST', '10.100.51.161'),
2025-08-28 08:02:59 +00:00
'port': int(os.getenv('REDIS_PORT', '6379')),
'db': int(os.getenv('REDIS_DB', '0')),
2025-12-25 08:36:18 +00:00
'password': os.getenv('REDIS_PASSWORD', ''),
2025-08-28 08:02:59 +00:00
'decode_responses': True
}
# Dashscope (Tongyi Qwen) API Key
2025-08-26 13:57:16 +00:00
QWEN_API_KEY = os.getenv('QWEN_API_KEY', 'sk-c2bf06ea56b4491ea3d1e37fdb472b8f')
2025-11-24 15:10:06 +00:00
# 转录轮询配置 - 用于 upload-audio-complete 接口
TRANSCRIPTION_POLL_CONFIG = {
'poll_interval': int(os.getenv('TRANSCRIPTION_POLL_INTERVAL', '10')), # 轮询间隔10秒
'max_wait_time': int(os.getenv('TRANSCRIPTION_MAX_WAIT_TIME', '1800')), # 最大等待30分钟
}
2025-08-26 13:57:16 +00:00
# LLM配置 - 阿里Qwen3大模型
LLM_CONFIG = {
'model_name': os.getenv('LLM_MODEL_NAME', 'qwen-plus'),
2025-09-25 03:48:02 +00:00
'time_out': int(os.getenv('LLM_TIMEOUT', '120')),
2025-08-26 13:57:16 +00:00
'temperature': float(os.getenv('LLM_TEMPERATURE', '0.7')),
'top_p': float(os.getenv('LLM_TOP_P', '0.9')),
'system_prompt': """你是一个专业的会议记录分析助手。请根据提供的会议转录内容,生成简洁明了的会议总结。
总结应该包括以下几个部分
1. 会议概述 - 简要说明会议的主要目的和背景
2. 主要讨论点 - 列出会议中讨论的重要话题和内容
3. 决策事项 - 明确记录会议中做出的决定和结论
4. 待办事项 - 列出需要后续跟进的任务和责任人
5. 关键信息 - 其他重要的信息点
要求
- 保持客观中性不添加个人观点
- 使用简洁的中文表达
- 按重要性排序各项内容
- 如果某个部分没有相关内容可以说明"无相关内容"
- 总字数控制在500字以内"""
2025-09-11 05:16:58 +00:00
}
# 密码重置配置
DEFAULT_RESET_PASSWORD = os.getenv('DEFAULT_RESET_PASSWORD', '111111')
2025-10-31 06:54:54 +00:00
# 加载系统配置文件
# 默认声纹配置
VOICEPRINT_CONFIG = {
"template_text": "我正在进行声纹采集,这段语音将用于身份识别和验证。\n\n声纹技术能够准确识别每个人独特的声音特征。",
"duration_seconds": 12,
"sample_rate": 16000,
"channels": 1
}
2025-11-07 09:12:29 +00:00
#首页TimeLine每页数量
TIMELINE_PAGESIZE=10