debug_messages.py 2.5 KB

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