feature:新增提示词工坊功能

This commit is contained in:
xiamuceer-j
2026-01-27 13:57:32 +08:00
parent 0c3fc6c912
commit 7b72691080
15 changed files with 2252 additions and 27 deletions
+30
View File
@@ -4,6 +4,7 @@ from typing import Optional
from pathlib import Path
import logging
import os
import uuid
# 获取项目根目录(从backend/app/config.py向上两级)
PROJECT_ROOT = Path(__file__).parent.parent
@@ -106,6 +107,11 @@ class Settings(BaseSettings):
SESSION_EXPIRE_MINUTES: int = 120 # 会话过期时间(分钟),默认2小时
SESSION_REFRESH_THRESHOLD_MINUTES: int = 30 # 会话刷新阈值(分钟),剩余时间少于此值时可刷新
# 提示词工坊配置
WORKSHOP_MODE: str = "client" # client: 本地部署实例, server: 云端中央服务器
WORKSHOP_CLOUD_URL: str = "https://mumuverse.space:1566" # 云端服务地址
WORKSHOP_API_TIMEOUT: int = 30 # 云端API请求超时时间(秒)
class Config:
env_file = ".env"
case_sensitive = False
@@ -117,3 +123,27 @@ settings = Settings()
config_logger.info(f"配置加载完成: {settings.app_name} v{settings.app_version}")
config_logger.debug(f"调试模式: {settings.debug}")
config_logger.debug(f"AI提供商: {settings.default_ai_provider}")
# ==================== 提示词工坊实例标识 ====================
def get_or_create_instance_id() -> str:
"""获取或创建实例唯一标识"""
instance_file = PROJECT_ROOT / ".instance_id"
if instance_file.exists():
with open(instance_file, 'r') as f:
return f.read().strip()
else:
instance_id = str(uuid.uuid4())[:12]
with open(instance_file, 'w') as f:
f.write(instance_id)
config_logger.info(f"生成新的实例标识: {instance_id}")
return instance_id
INSTANCE_ID = get_or_create_instance_id()
def is_workshop_server() -> bool:
"""判断当前实例是否为工坊服务端"""
return settings.WORKSHOP_MODE.lower() == "server"
config_logger.info(f"提示词工坊模式: {settings.WORKSHOP_MODE}, 实例ID: {INSTANCE_ID}")