yaml_utils.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # !/usr/bin/ python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. @Project : lq-agent-api
  5. @File :yaml_utils.py
  6. @IDE :PyCharm
  7. @Author :
  8. @Date :2025/7/10 17:32
  9. '''
  10. import os
  11. import yaml
  12. from foundation.logger.loggering import server_logger
  13. import os
  14. from dotenv import load_dotenv
  15. from functools import wraps
  16. from foundation.logger.loggering import server_logger
  17. from foundation.utils.common import handler_err
  18. from foundation.base.config import config_handler
  19. # 获取当前文件的目录
  20. current_dir = os.path.dirname(__file__)
  21. # 获取项目根目录
  22. project_root = os.path.dirname(os.path.dirname(current_dir))
  23. # 构建到 .env 的相对路径
  24. conf_file_path = os.path.join(project_root, '.env')
  25. #server_logger.info(f"当前目录: {conf_file_path}")
  26. def get_system_prompt() -> dict:
  27. """
  28. 获取系统提示语
  29. """
  30. # 构建文件路径 判断文件是否存在
  31. yaml_file = get_yaml_file_path("system_prompt.yaml")
  32. try:
  33. with open(yaml_file, 'r', encoding='utf-8') as f:
  34. prompt_config = yaml.safe_load(f)
  35. # 验证必需字段
  36. #validate_prompt_config(prompt_config, prompt_name)
  37. server_logger.info(f"成功加载系统system_prompt配置: {prompt_config["system_prompt"]}")
  38. return prompt_config
  39. except Exception as e:
  40. server_logger.error(f"加载system_prompt文件失败: {yaml_file}, 错误: {str(e)}")
  41. raise
  42. def get_yaml_file_path(file_name: str) -> str:
  43. """
  44. 获取yaml文件路径
  45. :param file_name:
  46. :return:
  47. """
  48. yaml_file = os.path.join(project_root, 'config', 'prompt' , file_name)
  49. if not os.path.exists(yaml_file):
  50. raise FileNotFoundError(f"Prompt文件不存在: {file_name}")
  51. return yaml_file
  52. def get_intent_prompt() -> dict:
  53. """
  54. 获取意图识别 系统提示语
  55. """
  56. # 构建文件路径 判断文件是否存在
  57. yaml_file = get_yaml_file_path("intent_prompt.yaml")
  58. try:
  59. with open(yaml_file, 'r', encoding='utf-8') as f:
  60. prompt_config = yaml.safe_load(f)
  61. # 验证必需字段
  62. #validate_prompt_config(prompt_config, prompt_name)
  63. server_logger.info(f"成功加载[意图识别]系统.system_prompt配置: {prompt_config["system_prompt"]}")
  64. server_logger.info(f"成功加载[意图识别]系统配置.examples: {prompt_config["intent_examples"]}")
  65. return prompt_config
  66. except Exception as e:
  67. server_logger.error(f"加载意图识别intent_prompt文件失败: {yaml_file}, 错误: {str(e)}")
  68. raise
  69. #获取系统提示语
  70. system_prompt_config = get_system_prompt()