-
Notifications
You must be signed in to change notification settings - Fork 421
/
web_configs.py
138 lines (109 loc) · 6.64 KB
/
web_configs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import os
from dataclasses import dataclass
@dataclass
class WebConfigs:
"""
项目所有的配置
"""
# ==================================================================
# 服务器文件配置
# ==================================================================
SERVER_FILE_ROOT = r"./static"
# 商品文件
PRODUCT_FILE_DIR = "product_files"
INSTRUCTIONS_DIR = "instructions"
IMAGES_DIR = "images"
# 数字人文件
STREAMER_FILE_DIR = "digital_human"
STREAMER_INFO_FILES_DIR = "streamer_info_files"
# ASR文件
ASR_FILE_DIR = "asr"
# ==================================================================
# JWT 配置
# ==================================================================
# JWT Token 加密秘钥,生成命令:openssl rand -hex 32
TOKEN_JWT_SECURITY_KEY = "b4d77c499c312026406e5c683b6c458ba8ee62b798ab08e145b357b95c0e843b"
TOKEN_JWT_ALGORITHM = "HS256"
# ==================================================================
# 数据库配置
# ==================================================================
POSTGRES_SERVER = os.environ.get("POSTGRES_SERVER", "127.0.0.1") # 数据库 IP
POSTGRES_PORT = 5432 # 数据库端口号
POSTGRES_USER = os.environ.get("POSTGRES_USER", "postgres") # 数据库用户名
POSTGRES_PASSWORD = os.environ.get("POSTGRES_PASSWORD", "") # 数据库密码,自行填写
POSTGRES_DB = os.environ.get("POSTGRES_DB", "streamer_sales_db") # 数据库名字
# ==================================================================
# 配置文件路径
# ==================================================================
STREAMING_ROOM_CONFIG_PATH = r"./configs/streaming_room_cfg.yaml" # 直播间信息
CONVERSATION_MESSAGE_STORE_CONFIG_PATH = r"./configs/conversation_message_store.yaml" # 对话信息
CONVERSATION_CFG_YAML_PATH: str = r"./configs/conversation_cfg.yaml" # 微调数据集生成配置
# ==================================================================
# 组件配置
# ==================================================================
ENABLE_RAG: bool = True # True 启用 RAG 检索增强,False 不启用
ENABLE_TTS: bool = True # True 启动 tts,False 不启用
ENABLE_DIGITAL_HUMAN: bool = True # True 启动 数字人,False 不启用
ENABLE_AGENT: bool = os.environ.get("ENABLE_AGENT", "true") == "true" # True 启动 Agent,False 不启用
ENABLE_ASR: bool = os.environ.get("ENABLE_ASR", "true") == "true" # True 启动 语音转文字,False 不启用
# ==================================================================
# RAG 配置
# ==================================================================
RAG_CONFIG_PATH: str = r"./configs/rag_config.yaml"
RAG_VECTOR_DB_DIR: str = r"./work_dirs/instruction_db"
PRODUCT_INSTRUCTION_DIR_GEN_DB_TMP: str = r"./work_dirs/instructions_gen_db_tmp"
RAG_MODEL_DIR: str = r"./weights/rag_weights/"
# ==================================================================
# TTS 配置
# ==================================================================
TTS_WAV_GEN_PATH: str = r"./work_dirs/tts_wavs"
TTS_MODEL_DIR: str = r"./weights/gpt_sovits_weights/"
TTS_INF_NAME: str = "激动说话-列车巡游银河,我不一定都能帮上忙,但只要是花钱能解决的事,尽管和我说吧。.wav"
# ==================================================================
# 数字人 配置
# ==================================================================
DIGITAL_HUMAN_GEN_PATH: str = r"./work_dirs/digital_human"
DIGITAL_HUMAN_MODEL_DIR: str = r"./weights/digital_human_weights/"
DIGITAL_HUMAN_BBOX_SHIFT: int = 0
DIGITAL_HUMAN_VIDEO_PATH: str = rf"{SERVER_FILE_ROOT}/{STREAMER_FILE_DIR}/{STREAMER_INFO_FILES_DIR}/lelemiao.mp4"
DIGITAL_HUMAN_VIDEO_OUTPUT_PATH: str = rf"{SERVER_FILE_ROOT}/{STREAMER_FILE_DIR}/vid_output"
DIGITAL_HUMAN_FPS: str = 25
# ==================================================================
# Agent 配置
# ==================================================================
AGENT_WEATHER_API_KEY: str | None = os.environ.get("WEATHER_API_KEY", None) # 天气 API Key
AGENT_DELIVERY_TIME_API_KEY: str | None = os.environ.get("DELIVERY_TIME_API_KEY", None) # 快递查询 API Key
# ==================================================================
# ASR 配置
# ==================================================================
ASR_WAV_SAVE_PATH: str = r"./work_dirs/asr_wavs"
ASR_MODEL_DIR: str = r"./weights/asr_weights/"
@dataclass
class ApiConfig:
# ==================================================================
# URL 配置
# ==================================================================
API_V1_STR: str = "/api/v1"
USING_DOCKER_COMPOSE: bool = os.environ.get("USING_DOCKER_COMPOSE", "false") == "true"
# 路由名字和 compose.yaml 服务名对应
TTS_ROUTER_NAME: str = "tts" if USING_DOCKER_COMPOSE else "0.0.0.0"
DIGITAL_ROUTER_NAME: str = "digital_human" if USING_DOCKER_COMPOSE else "0.0.0.0"
ASR_ROUTER_NAME: str = "asr" if USING_DOCKER_COMPOSE else "0.0.0.0"
LLM_ROUTER_NAME: str = "llm" if USING_DOCKER_COMPOSE else "0.0.0.0"
BASE_ROUTER_NAME: str = "base" if USING_DOCKER_COMPOSE else "localhost"
TTS_URL: str = f"http://{TTS_ROUTER_NAME}:8001/tts"
ASR_URL: str = f"http://{ASR_ROUTER_NAME}:8003/asr"
LLM_URL: str = f"http://{LLM_ROUTER_NAME}:23333"
DIGITAL_HUMAN_URL: str = f"http://{DIGITAL_ROUTER_NAME}:8002/digital_human/gen"
DIGITAL_HUMAN_CHECK_URL: str = f"http://{DIGITAL_ROUTER_NAME}:8002/digital_human/check"
DIGITAL_HUMAN_PREPROCESS_URL: str = f"http://{DIGITAL_ROUTER_NAME}:8002/digital_human/preprocess"
BASE_SERVER_URL: str = f"http://{BASE_ROUTER_NAME}:8000{API_V1_STR}"
CHAT_URL: str = f"{BASE_SERVER_URL}/streamer-sales/chat"
UPLOAD_PRODUCT_URL: str = f"{BASE_SERVER_URL}/streamer-sales/upload_product"
GET_PRODUCT_INFO_URL: str = f"{BASE_SERVER_URL}/streamer-sales/get_product_info"
GET_SALES_INFO_URL: str = f"{BASE_SERVER_URL}/streamer-sales/get_sales_info"
PLUGINS_INFO_URL: str = f"{BASE_SERVER_URL}/streamer-sales/plugins_info"
REQUEST_FILES_URL = f"{BASE_SERVER_URL}/files"
# 实例化
WEB_CONFIGS = WebConfigs()
API_CONFIG = ApiConfig()