tool_utils.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import time
  2. from math import log
  3. import os
  4. from dotenv import load_dotenv
  5. from foundation.core_enums import ErrorCodeEnum
  6. from functools import wraps
  7. from foundation.logger.loggering import server_logger
  8. from foundation.utils.common import handler_err
  9. from foundation.base.config import config_handler
  10. import json
  11. from datetime import datetime
  12. # 获取当前文件的目录
  13. current_dir = os.path.dirname(__file__)
  14. # 构建到 .env 的相对路径
  15. conf_file_path = os.path.join(current_dir , '../', '.env')
  16. #server_logger.info(f"当前目录: {conf_file_path}")
  17. # 加载环境变量
  18. load_dotenv(dotenv_path=conf_file_path)
  19. def verify_param(param: dict):
  20. """
  21. 验证请求参数
  22. """
  23. input_data = param.get("input")
  24. session_id = param.get("config").get("session_id")
  25. if input_data is None:
  26. raise ValueError(ErrorCodeEnum.INPUT_INFO_EMPTY.__str__)
  27. if session_id is None:
  28. raise ValueError(ErrorCodeEnum.SESSION_ID_EMPTY.__str__)
  29. def get_system_prompt() -> str:
  30. """
  31. 获取系统提示语
  32. """
  33. system_prompt = config_handler.get("system", "SYSTEM_PROMPT")
  34. server_logger.info(f"获取系统提示语: {system_prompt}")
  35. return str(system_prompt)
  36. class DateTimeEncoder(json.JSONEncoder):
  37. def default(self, obj):
  38. if isinstance(obj, datetime):
  39. return obj.isoformat() # 转换为 ISO 8601 格式字符串
  40. return super().default(obj)