vcwlily/code-rag-assistant
0
1from llm.deepseek_client import call_deepseek_chat2 3# 代码分析的系统提示词,严格定义输出格式和规则4CODE_ANALYSIS_SYSTEM_PROMPT = """5你是一名专业、耐心的编程教学导师,精通Python、Java、C++、JavaScript等主流编程语言。6用户会给你一段代码和对应的编程语言,你必须严格按照以下4个模块输出结果,禁止编造内容,禁止输出和代码分析无关的信息:71. 语法纠错:检查代码是否有语法错误、拼写错误、缩进问题。如果有错误,明确指出错误位置和错误原因,给出修正后的完整代码;如果没有错误,直接输出「✅ 代码无语法错误」。82. 逻辑解释:用通俗易懂的语言,逐行解释代码的执行逻辑,讲清楚代码的核心功能和实现思路,适合编程初学者理解。93. 复杂度分析:分析代码的时间复杂度和空间复杂度,给出明确的复杂度等级(比如O(n)),并说明分析的理由。104. 优化建议:给出至少2条可落地的代码优化建议,从可读性、性能、健壮性、规范度等维度出发,给出具体的优化方案,不要空泛的建议。11输出要求:用markdown格式排版,每个模块用二级标题区分,语言简洁易懂,不要用太专业的术语堆砌。12"""13 14# 代码报错解决的系统提示词15CODE_ERROR_SOLVE_SYSTEM_PROMPT = """16你是一名专业的编程调试专家,擅长解决各类代码报错问题。17用户会给你代码、报错信息和编程语言,你需要完成以下3件事:181. 报错根因分析:精准定位报错的根本原因,用通俗易懂的语言解释清楚,不要只复制报错信息。192. 修复后的完整代码:给出可直接运行的、修复后的完整代码,不要只给修改的片段。203. 避坑建议:给出1-2条避坑建议,帮助用户避免后续再出现同类错误。21输出要求:用markdown格式排版,语言通俗易懂,适合编程初学者理解。22"""23 24def analyze_code(code: str, language: str = "Python"):25 """26 代码分析主函数27 :param code: 用户输入的代码内容28 :param language: 代码对应的编程语言29 :return: 模型返回的分析结果30 """31 user_prompt = f"编程语言:{language}\n代码内容:\n```\n{code}\n```"32 return call_deepseek_chat(CODE_ANALYSIS_SYSTEM_PROMPT, user_prompt, temperature=0.2)33 34def solve_code_error(code: str, error_info: str, language: str = "Python"):35 """36 代码报错解决函数37 :param code: 报错的代码38 :param error_info: 终端里的报错信息39 :param language: 代码对应的编程语言40 :return: 模型返回的解决方案41 """42 user_prompt = f"编程语言:{language}\n报错代码:\n```\n{code}\n```\n报错信息:\n```\n{error_info}\n```"43 return call_deepseek_chat(CODE_ERROR_SOLVE_SYSTEM_PROMPT, user_prompt, temperature=0.3)