config.py 1.8 KB

123456789101112131415161718192021222324252627282930313233
  1. # -*- coding: utf-8 -*-
  2. """系统配置:MySQL、Neo4j、JWT、Celery、大模型"""
  3. import os
  4. class Settings:
  5. API_V1_PREFIX: str = "/api/v1"
  6. # 使用 maple@localhost:3306,密码 123456,数据库 ai_system
  7. MYSQL_URI: str = os.getenv("MYSQL_URI", "mysql+pymysql://maple:123456@localhost:3306/ai_system")
  8. NEO4J_URI: str = os.getenv("NEO4J_URI", "neo4j://localhost:7687")
  9. NEO4J_USER: str = os.getenv("NEO4J_USER", "neo4j")
  10. NEO4J_PASSWORD: str = os.getenv("NEO4J_PASSWORD", "12345678")
  11. JWT_SECRET_KEY: str = os.getenv("JWT_SECRET_KEY", "dev-jwt-secret-change-in-production")
  12. JWT_ALGORITHM: str = "HS256"
  13. # 将访问令牌有效期收紧为 4 小时,减少长时间挂着不退出带来的风险
  14. JWT_ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 4
  15. CELERY_BROKER_URL: str = os.getenv("CELERY_BROKER_URL", "redis://localhost:6379/0")
  16. CELERY_RESULT_BACKEND: str = os.getenv("CELERY_RESULT_BACKEND", "redis://localhost:6379/0")
  17. # 大模型:默认直连 DeepSeek OpenAI 兼容接口,环境变量可覆盖
  18. LLM_PROVIDER: str = os.getenv("LLM_PROVIDER", "deepseek")
  19. # TODO:DeepSeek API Key
  20. LLM_API_KEY: str = os.getenv("LLM_API_KEY", "sk-50497a43a04e4a7db3af2e8437445658")
  21. LLM_BASE_URL: str = os.getenv("LLM_BASE_URL", "https://api.deepseek.com")
  22. TTS_API_URL: str = os.getenv("TTS_API_URL", "")
  23. ASR_API_URL: str = os.getenv("ASR_API_URL", "")
  24. # 百度语音合成(TTS)配置:可通过环境变量覆盖,未设置时使用当前开发测试的默认值
  25. BAIDU_TTS_APP_ID: str = os.getenv("BAIDU_TTS_APP_ID", "7498032")
  26. BAIDU_TTS_API_KEY: str = os.getenv("BAIDU_TTS_API_KEY", "sZCf8uTlvsyyHFBlfl7beIKS")
  27. BAIDU_TTS_SECRET_KEY: str = os.getenv("BAIDU_TTS_SECRET_KEY", "5swdYUeDAHxVXwG3O1kGcTlEoOXJoXA4")
  28. def get_settings() -> Settings:
  29. return Settings()