config.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. """
  2. NER 服务配置
  3. """
  4. import os
  5. from pydantic_settings import BaseSettings
  6. from typing import Optional, List
  7. class Settings(BaseSettings):
  8. """应用配置"""
  9. # 服务配置
  10. app_name: str = "NER Service"
  11. app_version: str = "1.0.0"
  12. debug: bool = False
  13. host: str = "0.0.0.0"
  14. port: int = 8001
  15. # NER 模型配置
  16. # rule: 基于规则的简单 NER(开发测试用)
  17. # ollama: 使用本地 Ollama LLM(推荐生产环境)
  18. # api: 使用远程 API(如百炼)
  19. ner_model: str = "rule"
  20. use_gpu: bool = False
  21. max_text_length: int = 50000
  22. # Ollama 配置(用于 ollama 模式)
  23. ollama_url: str = "http://localhost:11434"
  24. ollama_model: str = "qwen2.5:7b" # 推荐中文 NER 使用 qwen2.5
  25. ollama_timeout: int = 120 # 秒
  26. # 文本分块配置(用于长文本处理)
  27. chunk_size: int = 2000 # 每个分块的最大字符数
  28. chunk_overlap: int = 200 # 分块重叠字符数
  29. # API 配置(用于 api 模式)
  30. api_base_url: Optional[str] = None
  31. api_key: Optional[str] = None
  32. api_model: str = "qwen-plus"
  33. # 实体类型配置
  34. entity_types: List[str] = [
  35. "PERSON", # 人名
  36. "ORG", # 机构/组织
  37. "LOC", # 地点
  38. "DATE", # 日期
  39. "NUMBER", # 数值
  40. "DEVICE", # 设备
  41. "PROJECT", # 项目
  42. "METHOD", # 方法/标准
  43. ]
  44. # 日志配置
  45. log_level: str = "INFO"
  46. class Config:
  47. env_file = ".env"
  48. env_file_encoding = "utf-8"
  49. settings = Settings()