debug_messages.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 详细调试传递给模型的消息内容
  5. """
  6. import sys
  7. import os
  8. sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  9. from foundation.ai.rag.retrieval.query_rewrite import prompt_loader
  10. def debug_messages():
  11. """
  12. 调试实际传递给模型的消息
  13. """
  14. print("="*60)
  15. print("调试传递给模型的消息内容")
  16. print("="*60)
  17. # 测试数据
  18. review_content = "深度大于3m的基坑开挖、有地下水侵扰的基坑清底封底,每个工作班至少巡查两遍。"
  19. print(f"原始输入内容: {review_content}")
  20. try:
  21. # 获取提示词模板
  22. task_prompt = prompt_loader.get_prompt_template(
  23. reviewer_type="query_extract",
  24. review_content=review_content
  25. )
  26. print(f"\n[DEBUG] 提示词模板类型: {type(task_prompt)}")
  27. # 检查模板的输入变量
  28. print(f"[DEBUG] 模板输入变量: {task_prompt.input_variables}")
  29. # 尝试不同的格式化方式
  30. print("\n=== 方法1: format_messages() (不传参数) ===")
  31. try:
  32. messages1 = task_prompt.format_messages()
  33. print(f"[DEBUG] 用户消息: {messages1[1].content}")
  34. except Exception as e:
  35. print(f"[ERROR] 方法1失败: {e}")
  36. print("\n=== 方法2: format_messages(review_content=...) ===")
  37. try:
  38. messages2 = task_prompt.format_messages(review_content=review_content)
  39. print(f"[DEBUG] 用户消息: {messages2[1].content}")
  40. print(f"[OK] 方法2成功!")
  41. except Exception as e:
  42. print(f"[ERROR] 方法2失败: {e}")
  43. print("\n=== 方法3: 手动构造消息 ===")
  44. try:
  45. # 获取提示词配置
  46. cache_key = "query_extract_query_extract"
  47. prompt_config = prompt_loader._cache[cache_key]
  48. system_prompt = prompt_config['system_prompt']
  49. user_template = prompt_config['user_prompt_template']
  50. # 手动替换变量
  51. user_prompt = user_template.replace("{{review_content}}", review_content)
  52. print(f"[DEBUG] 系统提示词: {system_prompt[:100]}...")
  53. print(f"[DEBUG] 用户提示词: {user_prompt}")
  54. print(f"[OK] 手动替换成功!")
  55. except Exception as e:
  56. print(f"[ERROR] 方法3失败: {e}")
  57. except Exception as e:
  58. print(f"[ERROR] 调试失败: {str(e)}")
  59. import traceback
  60. traceback.print_exc()
  61. def main():
  62. debug_messages()
  63. if __name__ == "__main__":
  64. main()