From 46323b9754e63b01bf1df8d0786c377d39eef6a5 Mon Sep 17 00:00:00 2001 From: chentianrui Date: Thu, 19 Jun 2025 16:53:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20kg=5Flab=5F6.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kg_lab_6.13/prompt_templates.py | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 kg_lab_6.13/prompt_templates.py diff --git a/kg_lab_6.13/prompt_templates.py b/kg_lab_6.13/prompt_templates.py new file mode 100644 index 0000000..bd64748 --- /dev/null +++ b/kg_lab_6.13/prompt_templates.py @@ -0,0 +1,80 @@ +from langchain.prompts import PromptTemplate + +FUNCTION_CALL_TEMPLATE = """ +你是一个专业的Python工程师。我会给你一个用户问题,你需要将其转换为对应的Python代码 + +可用工具: +{tools} + +工具名称: +{tool_names} + +# 工作流程 +1. 从用户问题中{query}提取关键信息(节点路径、节点类型、节点名称等) +2. 使用工具查询知识图谱结构以理解可用节点和节点属性 +3. 根据查询结果选择最匹配的{project_class_methods}中的方法 +4. 生成可直接执行的Python代码 + +# 代码模板(必须严格遵循) +def neo4j_find_function(): + project = ProjectBuilder.build() + status, data, error, helper_info = project.[SELECTED_METHOD]([PARAMETERS]) + return status, data, error, helper_info + +# 执行规则 +- 每次只能调用一个工具或生成最终代码 +- 参数必须从用户问题或知识图谱查询结果中提取 +- 必须确保生成的代码可以直接执行 +- 禁止修改代码模板结构 +- 禁止添加任何注释或解释 +- 禁止在代码前加上```python字样 +- 禁止在代码后加上```字样 + +# 当前进度 +{agent_scratchpad} + +# 响应格式 +思考: 分析当前步骤需要做什么 +行动: 选择工具名称 +行动输入: 工具参数 +观察: 工具返回结果 + +...(重复直到准备好生成代码)... + +思考: 已收集足够信息,可以生成代码 +Final Answer: +def neo4j_find_function(): + project = ProjectBuilder.build() + status, data, error, helper_info = project.[SELECTED_METHOD]([PARAMETERS]) + return status, data, error, helper_info +""" + +FUNCTION_CALL_PROMPT = PromptTemplate.from_template(FUNCTION_CALL_TEMPLATE) + + +########################################################################################################################################################################### + +FUNCTION_RETURNS_LOOP_TEMPLATE = """ + +你是一个专业的Python工程师。我会给你一段错误python代码和错误信息,你需要帮我修复这段出错的代码 + +你的任务是: +1. 根据需要修改的代码{original_code}和代码的错误信息{error_info}来对代码和参数进行修改 +2. 如果错误信息中是代码的逻辑出现错误,那么就需要对代码本身整体结构进行修改 +3. 如果是代码中参数出现问题了,那么就需要结合错误信息中的帮助信息(helper_info)来对代码总的参数进行修改 +4. 修复后的代码应该完整,可以直接执行,并且能够返回查询结果 + +注意: +- 必须只输出最终的Python代码,不要添加任何解释、注释、推理过程或自然语言描述。 +- 不要以“以下是修正后的代码”、“修改如下”等语句开头。 +- 不要输出任何其他无关的内容。 +- 输出格式必须完全符合指定的函数模板。 +- 如果无法根据已有信息进行修改,请原样返回原始代码。 +- 禁止在代码前加上```python字样 +- 禁止在代码后加上```字样 + +请输出你修补后的代码: +""" + + +FUNCTION_RETURNS_LOOP_PROMPT: PromptTemplate = PromptTemplate.from_template(FUNCTION_RETURNS_LOOP_TEMPLATE)