#!/usr/bin/env python # -*- coding: utf-8 -*- """ 详细调试传递给模型的消息内容 """ import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from foundation.ai.rag.retrieval.query_rewrite import prompt_loader def debug_messages(): """ 调试实际传递给模型的消息 """ print("="*60) print("调试传递给模型的消息内容") print("="*60) # 测试数据 review_content = "深度大于3m的基坑开挖、有地下水侵扰的基坑清底封底,每个工作班至少巡查两遍。" print(f"原始输入内容: {review_content}") try: # 获取提示词模板 task_prompt = prompt_loader.get_prompt_template( reviewer_type="query_extract", review_content=review_content ) print(f"\n[DEBUG] 提示词模板类型: {type(task_prompt)}") # 检查模板的输入变量 print(f"[DEBUG] 模板输入变量: {task_prompt.input_variables}") # 尝试不同的格式化方式 print("\n=== 方法1: format_messages() (不传参数) ===") try: messages1 = task_prompt.format_messages() print(f"[DEBUG] 用户消息: {messages1[1].content}") except Exception as e: print(f"[ERROR] 方法1失败: {e}") print("\n=== 方法2: format_messages(review_content=...) ===") try: messages2 = task_prompt.format_messages(review_content=review_content) print(f"[DEBUG] 用户消息: {messages2[1].content}") print(f"[OK] 方法2成功!") except Exception as e: print(f"[ERROR] 方法2失败: {e}") print("\n=== 方法3: 手动构造消息 ===") try: # 获取提示词配置 cache_key = "query_extract_query_extract" prompt_config = prompt_loader._cache[cache_key] system_prompt = prompt_config['system_prompt'] user_template = prompt_config['user_prompt_template'] # 手动替换变量 user_prompt = user_template.replace("{{review_content}}", review_content) print(f"[DEBUG] 系统提示词: {system_prompt[:100]}...") print(f"[DEBUG] 用户提示词: {user_prompt}") print(f"[OK] 手动替换成功!") except Exception as e: print(f"[ERROR] 方法3失败: {e}") except Exception as e: print(f"[ERROR] 调试失败: {str(e)}") import traceback traceback.print_exc() def main(): debug_messages() if __name__ == "__main__": main()